From 1eeb5fb103f81be2866177cc9aa9b4004b918e1c Mon Sep 17 00:00:00 2001 From: Mythie Date: Thu, 14 Dec 2023 15:28:27 +1100 Subject: [PATCH] fix: tidy code and base on main --- .../templates/[id]/edit-template.tsx | 27 ++++--- .../app/(dashboard)/templates/[id]/page.tsx | 2 +- .../templates/data-table-action-dropdown.tsx | 2 +- .../templates/data-table-templates.tsx | 4 +- .../templates/new-template-dialog.tsx | 39 ++++++---- .../src/app/(dashboard)/templates/page.tsx | 9 ++- .../(dashboard)/layout/desktop-nav.tsx | 37 +++++---- .../components/(dashboard)/layout/header.tsx | 2 +- .../add-template-fields.action.ts | 4 +- .../add-template-placeholders.action.ts | 4 +- packages/ui/primitives/dialog.tsx | 2 +- .../template-flow/add-template-fields.tsx | 22 +++--- .../add-template-placeholder-recipients.tsx | 78 ++++++++----------- 13 files changed, 121 insertions(+), 111 deletions(-) diff --git a/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx b/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx index b4d20b60d..920cac247 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx @@ -4,19 +4,20 @@ import { useState } from 'react'; import { useRouter } from 'next/navigation'; -import { DocumentData, Field, Recipient, Template, User } from '@documenso/prisma/client'; +import type { DocumentData, Field, Recipient, Template, User } from '@documenso/prisma/client'; import { cn } from '@documenso/ui/lib/utils'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { DocumentFlowFormContainer, DocumentFlowFormContainerHeader, } from '@documenso/ui/primitives/document-flow/document-flow-root'; -import { DocumentFlowStep } from '@documenso/ui/primitives/document-flow/types'; +import type { DocumentFlowStep } from '@documenso/ui/primitives/document-flow/types'; import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; +import { Stepper } from '@documenso/ui/primitives/stepper'; import { AddTemplateFieldsFormPartial } from '@documenso/ui/primitives/template-flow/add-template-fields'; -import { TAddTemplateFieldsFormSchema } from '@documenso/ui/primitives/template-flow/add-template-fields.types'; +import type { TAddTemplateFieldsFormSchema } from '@documenso/ui/primitives/template-flow/add-template-fields.types'; import { AddTemplatePlaceholderRecipientsFormPartial } from '@documenso/ui/primitives/template-flow/add-template-placeholder-recipients'; -import { TAddTemplatePlacholderRecipientsFormSchema } from '@documenso/ui/primitives/template-flow/add-template-placeholder-recipients.types'; +import type { TAddTemplatePlacholderRecipientsFormSchema } from '@documenso/ui/primitives/template-flow/add-template-placeholder-recipients.types'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { addTemplateFields } from '~/components/forms/edit-template/add-template-fields.action'; @@ -32,6 +33,7 @@ export type EditTemplateFormProps = { }; type EditTemplateStep = 'signers' | 'fields'; +const EditTemplateSteps: EditTemplateStep[] = ['signers', 'fields']; export const EditTemplateForm = ({ className, @@ -56,7 +58,6 @@ export const EditTemplateForm = ({ title: 'Add Fields', description: 'Add all relevant fields for each recipient.', stepIndex: 2, - onBackStep: () => setStep('signers'), }, }; @@ -118,33 +119,35 @@ export const EditTemplateForm = ({
- e.preventDefault()}> + e.preventDefault()} + > - {step === 'signers' && ( + setStep(EditTemplateSteps[step - 1])} + > - )} - {step === 'fields' && ( - )} +
diff --git a/apps/web/src/app/(dashboard)/templates/[id]/page.tsx b/apps/web/src/app/(dashboard)/templates/[id]/page.tsx index b8c645c80..15eaa6f3c 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/page.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/page.tsx @@ -5,7 +5,7 @@ import { redirect } from 'next/navigation'; import { ChevronLeft } from 'lucide-react'; -import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session'; +import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getFieldsForTemplate } from '@documenso/lib/server-only/field/get-fields-for-template'; import { getRecipientsForTemplate } from '@documenso/lib/server-only/recipient/get-recipients-for-template'; import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id'; diff --git a/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx b/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx index 15ad9b58b..9f26d632c 100644 --- a/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx +++ b/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx @@ -7,7 +7,7 @@ import Link from 'next/link'; import { Copy, Edit, MoreHorizontal, Trash2 } from 'lucide-react'; import { useSession } from 'next-auth/react'; -import { Template } from '@documenso/prisma/client'; +import type { Template } from '@documenso/prisma/client'; import { DropdownMenu, DropdownMenuContent, diff --git a/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx b/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx index 3cc8102e7..629204c2a 100644 --- a/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx +++ b/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx @@ -7,7 +7,7 @@ import { useRouter } from 'next/navigation'; import { Loader, Plus } from 'lucide-react'; import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; -import { Template } from '@documenso/prisma/client'; +import type { Template } from '@documenso/prisma/client'; import { trpc } from '@documenso/trpc/react'; import { Button } from '@documenso/ui/primitives/button'; import { DataTable } from '@documenso/ui/primitives/data-table'; @@ -109,7 +109,7 @@ export const TemplatesDataTable = ({ }} > {!isRowLoading && } - Use + Use Template diff --git a/apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx b/apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx index 7de1355a7..19a465001 100644 --- a/apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx +++ b/apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx @@ -1,11 +1,12 @@ 'use client'; -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { zodResolver } from '@hookform/resolvers/zod'; import { FilePlus, X } from 'lucide-react'; +import { useSession } from 'next-auth/react'; import { useForm } from 'react-hook-form'; import * as z from 'zod'; @@ -18,7 +19,6 @@ import { Card, CardContent } from '@documenso/ui/primitives/card'; import { Dialog, DialogContent, - DialogDescription, DialogHeader, DialogTitle, DialogTrigger, @@ -45,7 +45,9 @@ type TCreateTemplateFormSchema = z.infer; export const NewTemplateDialog = () => { const router = useRouter(); + const { data: session } = useSession(); const { toast } = useToast(); + const form = useForm({ resolver: zodResolver(ZCreateTemplateFormSchema), defaultValues: { @@ -128,23 +130,29 @@ export const NewTemplateDialog = () => { setUploadedFile(null); }; + useEffect(() => { + if (!showNewTemplateDialog) { + form.reset(); + } + }, [form, showNewTemplateDialog]); + return ( - + New Template - + +
- + {
+
{uploadedFile ? ( -
resetForm()} - className="absolute right-2 top-2 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none" + title="Remove Template" + className="text-muted-foreground absolute right-2.5 top-2.5 rounded-sm opacity-60 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none" > - + Remove Template -
+
+

Uploaded Document

@@ -210,7 +221,7 @@ export const NewTemplateDialog = () => {
- +
); diff --git a/apps/web/src/app/(dashboard)/templates/page.tsx b/apps/web/src/app/(dashboard)/templates/page.tsx index bc6a90b12..f4167e42a 100644 --- a/apps/web/src/app/(dashboard)/templates/page.tsx +++ b/apps/web/src/app/(dashboard)/templates/page.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session'; +import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getTemplates } from '@documenso/lib/server-only/template/get-templates'; import { TemplatesDataTable } from './data-table-templates'; @@ -27,9 +27,12 @@ export default async function TemplatesPage({ searchParams = {} }: TemplatesPage return (
-
+

Templates

- + +
+ +
diff --git a/apps/web/src/components/(dashboard)/layout/desktop-nav.tsx b/apps/web/src/components/(dashboard)/layout/desktop-nav.tsx index bb3384d0a..e04bc2818 100644 --- a/apps/web/src/components/(dashboard)/layout/desktop-nav.tsx +++ b/apps/web/src/components/(dashboard)/layout/desktop-nav.tsx @@ -41,9 +41,29 @@ export const DesktopNav = ({ className, ...props }: DesktopNavProps) => { return (
- - {navigationLinks.map(({ href, label }) => ( - - {label} - - ))}
); }; diff --git a/apps/web/src/components/(dashboard)/layout/header.tsx b/apps/web/src/components/(dashboard)/layout/header.tsx index 25f260575..cf8873a1a 100644 --- a/apps/web/src/components/(dashboard)/layout/header.tsx +++ b/apps/web/src/components/(dashboard)/layout/header.tsx @@ -49,7 +49,7 @@ export const Header = ({ className, user, ...props }: HeaderProps) => { -
+
{/*