"use client" import { Input } from "@/components/ui/input"; import { CellContext } from "@tanstack/react-table"; import { updateField } from "app/lib/update"; import { useState } from "react"; import { z } from "zod"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { toast } from "@/components/ui/use-toast"; import { Form, FormControl, FormField, FormItem, FormMessage } from "@/components/ui/form"; import TitleContainer from "app/ui/titleContainer"; export function TextInputCell(props: CellContext) { const [isActive, setIsActive] = useState(false) const table = props.table.options.meta.tableName const id = props.row.original.id const column = props.column.id const pathname = props.table.options.meta.pathname const value = props.cell.getValue() const formSchema = props.column.columnDef.meta.formSchema.pick({ [column]: true }) const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { [column]: props.cell.getValue() }, }) async function onSubmit(value: z.infer) { toast({ title: "You submitted the following values:", description: (
          {JSON.stringify(value, null, 2)}
        
), }) const res = await updateField({ id, table, datum: value[column], column, pathname }) setIsActive(false) } function onErrors(errors) { toast({ title: "You have errors", description: (
          {JSON.stringify(errors, null, 2)}
        
), }) console.log(JSON.stringify(errors)) } return (
setIsActive(prev => !prev)} className="w-full h-fit flex items-center justify-left" tabIndex={0} onKeyDown={e => { if (e.code === "Enter" && !isActive) { e.preventDefault() setIsActive(true) } }} > {isActive ?
( setIsActive(false)} > )} /> : {props.cell.getValue()} }
) }