import * as schema from '@/db/schema'
import { AnyMySqlTable } from 'drizzle-orm/mysql-core' // just found this, testing now
import { eq } from 'drizzle-orm'
export function CheckboxUpdate<T extends AnyMySqlTable>({ ...args }: {
model: T
keyName: keyof T & string
id: number
}) {
return (
<input
type='checkbox'
onChange={async (e) => {
'use server' // pseudo code
await db
.update(args.model)
.set({ [args.keyName]: e.target.checked })
.where(eq(args.model.id, args.id))
}}
/>
)
}
await CheckboxUpdate<typeof users>({
model: users,
keyName: 'isSubscriber',
id: 1,
})
import * as schema from '@/db/schema'
import { AnyMySqlTable } from 'drizzle-orm/mysql-core' // just found this, testing now
import { eq } from 'drizzle-orm'
export function CheckboxUpdate<T extends AnyMySqlTable>({ ...args }: {
model: T
keyName: keyof T & string
id: number
}) {
return (
<input
type='checkbox'
onChange={async (e) => {
'use server' // pseudo code
await db
.update(args.model)
.set({ [args.keyName]: e.target.checked })
.where(eq(args.model.id, args.id))
}}
/>
)
}
await CheckboxUpdate<typeof users>({
model: users,
keyName: 'isSubscriber',
id: 1,
})