Changes
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
co-authored by
renee-png
parent
c4a0abc898
commit
6860e1a2cd
@@ -2,6 +2,8 @@ import { Link, useLocation, useNavigate } from "@tanstack/react-router";
|
||||
import { useAuth } from "@/lib/auth";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Briefcase, Users, FileText, Receipt, ShieldCheck, LogOut, Scale, LayoutDashboard, Calendar as CalendarIcon } from "lucide-react";
|
||||
// FileText is used for Forms & Letters
|
||||
void FileText;
|
||||
import { cn } from "@/lib/utils";
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ import { Route as StatusIndexRouteImport } from './routes/status.index'
|
||||
import { Route as SettingsIndexRouteImport } from './routes/settings.index'
|
||||
import { Route as MessagesIndexRouteImport } from './routes/messages.index'
|
||||
import { Route as InvoicesIndexRouteImport } from './routes/invoices.index'
|
||||
import { Route as FormsIndexRouteImport } from './routes/forms.index'
|
||||
import { Route as FilesIndexRouteImport } from './routes/files.index'
|
||||
import { Route as DocumentsIndexRouteImport } from './routes/documents.index'
|
||||
import { Route as ContactsIndexRouteImport } from './routes/contacts.index'
|
||||
@@ -86,6 +87,11 @@ const InvoicesIndexRoute = InvoicesIndexRouteImport.update({
|
||||
path: '/invoices/',
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any)
|
||||
const FormsIndexRoute = FormsIndexRouteImport.update({
|
||||
id: '/forms/',
|
||||
path: '/forms/',
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any)
|
||||
const FilesIndexRoute = FilesIndexRouteImport.update({
|
||||
id: '/files/',
|
||||
path: '/files/',
|
||||
@@ -221,6 +227,7 @@ export interface FileRoutesByFullPath {
|
||||
'/contacts/': typeof ContactsIndexRoute
|
||||
'/documents/': typeof DocumentsIndexRoute
|
||||
'/files/': typeof FilesIndexRoute
|
||||
'/forms/': typeof FormsIndexRoute
|
||||
'/invoices/': typeof InvoicesIndexRoute
|
||||
'/messages/': typeof MessagesIndexRoute
|
||||
'/settings/': typeof SettingsIndexRoute
|
||||
@@ -253,6 +260,7 @@ export interface FileRoutesByTo {
|
||||
'/contacts': typeof ContactsIndexRoute
|
||||
'/documents': typeof DocumentsIndexRoute
|
||||
'/files': typeof FilesIndexRoute
|
||||
'/forms': typeof FormsIndexRoute
|
||||
'/invoices': typeof InvoicesIndexRoute
|
||||
'/messages': typeof MessagesIndexRoute
|
||||
'/settings': typeof SettingsIndexRoute
|
||||
@@ -287,6 +295,7 @@ export interface FileRoutesById {
|
||||
'/contacts/': typeof ContactsIndexRoute
|
||||
'/documents/': typeof DocumentsIndexRoute
|
||||
'/files/': typeof FilesIndexRoute
|
||||
'/forms/': typeof FormsIndexRoute
|
||||
'/invoices/': typeof InvoicesIndexRoute
|
||||
'/messages/': typeof MessagesIndexRoute
|
||||
'/settings/': typeof SettingsIndexRoute
|
||||
@@ -322,6 +331,7 @@ export interface FileRouteTypes {
|
||||
| '/contacts/'
|
||||
| '/documents/'
|
||||
| '/files/'
|
||||
| '/forms/'
|
||||
| '/invoices/'
|
||||
| '/messages/'
|
||||
| '/settings/'
|
||||
@@ -354,6 +364,7 @@ export interface FileRouteTypes {
|
||||
| '/contacts'
|
||||
| '/documents'
|
||||
| '/files'
|
||||
| '/forms'
|
||||
| '/invoices'
|
||||
| '/messages'
|
||||
| '/settings'
|
||||
@@ -387,6 +398,7 @@ export interface FileRouteTypes {
|
||||
| '/contacts/'
|
||||
| '/documents/'
|
||||
| '/files/'
|
||||
| '/forms/'
|
||||
| '/invoices/'
|
||||
| '/messages/'
|
||||
| '/settings/'
|
||||
@@ -417,6 +429,7 @@ export interface RootRouteChildren {
|
||||
ContactsIndexRoute: typeof ContactsIndexRoute
|
||||
DocumentsIndexRoute: typeof DocumentsIndexRoute
|
||||
FilesIndexRoute: typeof FilesIndexRoute
|
||||
FormsIndexRoute: typeof FormsIndexRoute
|
||||
InvoicesIndexRoute: typeof InvoicesIndexRoute
|
||||
MessagesIndexRoute: typeof MessagesIndexRoute
|
||||
StatusIndexRoute: typeof StatusIndexRoute
|
||||
@@ -492,6 +505,13 @@ declare module '@tanstack/react-router' {
|
||||
preLoaderRoute: typeof InvoicesIndexRouteImport
|
||||
parentRoute: typeof rootRouteImport
|
||||
}
|
||||
'/forms/': {
|
||||
id: '/forms/'
|
||||
path: '/forms'
|
||||
fullPath: '/forms/'
|
||||
preLoaderRoute: typeof FormsIndexRouteImport
|
||||
parentRoute: typeof rootRouteImport
|
||||
}
|
||||
'/files/': {
|
||||
id: '/files/'
|
||||
path: '/files'
|
||||
@@ -688,6 +708,7 @@ const rootRouteChildren: RootRouteChildren = {
|
||||
ContactsIndexRoute: ContactsIndexRoute,
|
||||
DocumentsIndexRoute: DocumentsIndexRoute,
|
||||
FilesIndexRoute: FilesIndexRoute,
|
||||
FormsIndexRoute: FormsIndexRoute,
|
||||
InvoicesIndexRoute: InvoicesIndexRoute,
|
||||
MessagesIndexRoute: MessagesIndexRoute,
|
||||
StatusIndexRoute: StatusIndexRoute,
|
||||
@@ -700,3 +721,12 @@ const rootRouteChildren: RootRouteChildren = {
|
||||
export const routeTree = rootRouteImport
|
||||
._addFileChildren(rootRouteChildren)
|
||||
._addFileTypes<FileRouteTypes>()
|
||||
|
||||
import type { getRouter } from './router.tsx'
|
||||
import type { createStart } from '@tanstack/react-start'
|
||||
declare module '@tanstack/react-start' {
|
||||
interface Register {
|
||||
ssr: true
|
||||
router: Awaited<ReturnType<typeof getRouter>>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
import { createFileRoute } from "@tanstack/react-router";
|
||||
import { useState } from "react";
|
||||
import { ProtectedLayout } from "@/components/protected-layout";
|
||||
import { PageContainer, PageHeader } from "@/components/app-shell";
|
||||
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs";
|
||||
import { CustomFormBuilder } from "@/components/forms/custom-form-builder";
|
||||
import { LetterGenerator } from "@/components/forms/letter-generator";
|
||||
import { NolaForm } from "@/components/forms/nola-form";
|
||||
import { ItlForm } from "@/components/forms/itl-form";
|
||||
import { AffidavitForm } from "@/components/forms/affidavit-form";
|
||||
import { EstoppelForm } from "@/components/forms/estoppel-form";
|
||||
|
||||
export const Route = createFileRoute("/forms/")({
|
||||
component: FormsPage,
|
||||
});
|
||||
|
||||
function FormsPage() {
|
||||
const [tab, setTab] = useState("custom");
|
||||
return (
|
||||
<ProtectedLayout>
|
||||
<PageContainer>
|
||||
<PageHeader
|
||||
title="Forms & Letters"
|
||||
description="Generate notices, letters, and statutory forms wired to your clients and homeowners."
|
||||
/>
|
||||
<Tabs value={tab} onValueChange={setTab}>
|
||||
<TabsList className="flex-wrap h-auto">
|
||||
<TabsTrigger value="custom">Custom Forms</TabsTrigger>
|
||||
<TabsTrigger value="letters">Letters</TabsTrigger>
|
||||
<TabsTrigger value="nola">NOLA</TabsTrigger>
|
||||
<TabsTrigger value="itl">ITL</TabsTrigger>
|
||||
<TabsTrigger value="affidavit">Affidavit</TabsTrigger>
|
||||
<TabsTrigger value="estoppel">Estoppel</TabsTrigger>
|
||||
</TabsList>
|
||||
<div className="mt-6">
|
||||
<TabsContent value="custom"><CustomFormBuilder /></TabsContent>
|
||||
<TabsContent value="letters"><LetterGenerator /></TabsContent>
|
||||
<TabsContent value="nola"><NolaForm /></TabsContent>
|
||||
<TabsContent value="itl"><ItlForm /></TabsContent>
|
||||
<TabsContent value="affidavit"><AffidavitForm /></TabsContent>
|
||||
<TabsContent value="estoppel"><EstoppelForm /></TabsContent>
|
||||
</div>
|
||||
</Tabs>
|
||||
</PageContainer>
|
||||
</ProtectedLayout>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user