"use client";
import * as React from "react";
import BaseForm from "@/components/BaseForm";
import { Field, FieldLabel, FieldContent } from "@/components/ui/field";
import { Input } from "@/components/ui/input";
import db from "@/lib/dbClient";
import { useRouter } from "next/navigation";
import { useFormContext, Controller } from "react-hook-form";
import AsyncSelectPaginate from "@/components/AsyncSelectPaginate";
function BankFields() {
const { control } = useFormContext();
return (
);
}
export default function BaseBankForm({ id }: { id?: string }) {
const router = useRouter();
const [defaults, setDefaults] = React.useState(undefined);
React.useEffect(() => {
let mounted = true;
(async () => {
if (id && id !== "new") {
try {
const resp = await db.banks.findFirst({ where: { bank_id: id } });
if (mounted) setDefaults(resp || {});
} catch (e) {
console.error("failed to load bank", e);
if (mounted) setDefaults({});
}
} else {
if (mounted) setDefaults({});
}
})();
return () => {
mounted = false;
};
}, [id]);
const onSubmit = async (values: any) => {
if (id === "new") await db.banks.create({ data: values });
else await db.banks.update({ where: { bank_id: id }, data: values });
router.push("/d/bank");
};
if (id && id !== "new" && defaults === undefined)
return Loading...
;
return (
);
}