begin working on form

This commit is contained in:
Gabriel Brown 2024-09-01 21:41:44 -05:00
parent 3272c83f09
commit 70b99228e6
3 changed files with 84 additions and 2 deletions

View File

@ -0,0 +1,70 @@
"use client"
import {
DrawerClose,
DrawerContent,
DrawerFooter,
DrawerHeader,
DrawerTitle,
} from "~/components/ui/drawer"
import { z } from "zod"
import { zodResolver } from "@hookform/resolvers/zod"
import { useForm } from "react-hook-form"
import { Input } from "~/components/ui/input"
import { Button } from "~/components/ui/button"
import {
Form,
FormControl,
FormDescription,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "~/components/ui/form"
type CreateBillDrawerProps = {
date: Date;
};
const formSchema = z.object({
billType: z.enum(["Rent", "Power", "Internet", "Gas", "Water", "Phone Bill", "Cable",
"Security Deposit", "Other"]),
billDescription: z.string().optional(),
amount: z.number(),
recurrence: z.enum(["Monthly", "Bi-weekly", "Weekly", "Annually"]).optional(),
includeUserInSplit: z.boolean().optional(),
roommates: z.array(z.object({
userID: z.string(),
includeInSplit: z.boolean(),
})).optional(),
});
export default function CreateBillDrawer({date}: CreateBillDrawerProps) {
const form = useForm<z.infer<typeof formSchema>>({
resolver: zodResolver(formSchema),
defaultValues: {
billType: "Rent",
recurrence: "Monthly",
includeUserInSplit: true,
},
});
return (
<DrawerContent>
<DrawerHeader>
<DrawerTitle className="text-center md:text-2xl">
{date.toDateString()}
</DrawerTitle>
</DrawerHeader>
<div className="flex flex-row w-full mx-auto">
<div className="w-1/2 mx-auto text-center">
<h3>Test</h3>
</div>
<div className="w-1/2 mx-auto text-center">
<h3>Test</h3>
</div>
</div>
<DrawerFooter>
<DrawerClose />
</DrawerFooter>
</DrawerContent>
);
}

View File

@ -1,4 +1,10 @@
import React from "react"; import React from "react";
import {
Drawer,
DrawerTrigger,
} from "~/components/ui/drawer"
import CreateBillDrawer from "~/components/billtracker/CreateBillDrawer"
import { Button } from "~/components/ui/button"
type CreateBillFormProps = { type CreateBillFormProps = {
date: Date; date: Date;
@ -21,7 +27,14 @@ export default function CreateBillForm({date, setIsOpen}: CreateBillFormProps) {
x x
</button> </button>
</div> </div>
<h1>Create Bill</h1> <Drawer>
<DrawerTrigger className="w-full">
<Button variant="outline" size="icon" className="border-none w-full">
Create new Bill
</Button>
</DrawerTrigger>
<CreateBillDrawer date={date} />
</Drawer>
</div> </div>
); );
} }

View File

@ -237,7 +237,6 @@ export const bills = pgTable(
createdAt: timestamp("createdAt").notNull().defaultNow(), createdAt: timestamp("createdAt").notNull().defaultNow(),
dueDate: timestamp("dueDate").notNull(), dueDate: timestamp("dueDate").notNull(),
amount: numeric("amount").notNull(), amount: numeric("amount").notNull(),
currency: text("currency").notNull().default("USD"),
recurrence: billRecurrenceEnum("recurrence"), recurrence: billRecurrenceEnum("recurrence"),
attachmentUrl: text("attachmentUrl"), attachmentUrl: text("attachmentUrl"),
} }