From b4ecf4b2a99b36b13c40dd8cde21fa50f2456f55 Mon Sep 17 00:00:00 2001 From: Jim Moffet Date: Tue, 27 Feb 2024 13:38:00 -0800 Subject: [PATCH] Add mock extracted PDF data * mock api * remove comments * comments * Trying to get the PDF import to work * Add paragraph pattern * Stub fieldset element type * Wire mock PDF data to typesafe objects --------- Co-authored-by: Daniel Naab --- packages/design/src/Form/index.tsx | 8 +- .../FormManager/FormEdit/FormElementEdit.tsx | 2 +- .../src/FormManager/FormEdit/Preview.tsx | 16 +- .../design/src/FormManager/FormEdit/index.tsx | 8 +- .../src/config/edit/InputElementEdit.tsx | 84 +- .../src/config/edit/ParagraphElementEdit.tsx | 38 + packages/design/src/config/edit/index.ts | 2 +- .../design/src/config/view/Fieldset/index.tsx | 17 + .../src/config/view/FormSummary/index.tsx | 6 +- .../src/config/view/Paragraph/index.tsx | 17 + .../view/SubmissionConfirmation/index.tsx | 4 +- .../view/TextInput/TestInput.stories.tsx | 4 +- .../src/config/view/TextInput/index.tsx | 30 +- .../src/config/view/additional-fields.tsx | 3 + packages/design/src/config/view/index.tsx | 4 +- packages/design/vite.config.ts | 1 + packages/documents/package.json | 3 +- .../documents/src/__tests__/fill-pdf.test.ts | 1 + packages/documents/src/document.ts | 84 +- .../documents/src/pdf/al_name_change.json | 1157 +++++++++++++++++ packages/documents/src/pdf/extract.ts | 9 + packages/documents/src/pdf/generate.ts | 5 + packages/documents/src/pdf/index.ts | 9 +- packages/documents/src/pdf/mock-api.ts | 190 +++ packages/documents/src/suggestions.ts | 77 +- packages/forms/src/config/config.ts | 2 + .../forms/src/config/elements/fieldset.ts | 37 + packages/forms/src/config/elements/input.ts | 2 + .../forms/src/config/elements/paragraph.ts | 35 + packages/forms/src/documents/index.ts | 21 + packages/forms/src/pattern.ts | 13 + pnpm-lock.yaml | 32 +- tsconfig.json | 12 +- 33 files changed, 1811 insertions(+), 122 deletions(-) create mode 100644 packages/design/src/config/edit/ParagraphElementEdit.tsx create mode 100644 packages/design/src/config/view/Fieldset/index.tsx create mode 100644 packages/design/src/config/view/Paragraph/index.tsx create mode 100644 packages/documents/src/pdf/al_name_change.json create mode 100644 packages/documents/src/pdf/mock-api.ts create mode 100644 packages/forms/src/config/elements/fieldset.ts create mode 100644 packages/forms/src/config/elements/paragraph.ts diff --git a/packages/design/src/Form/index.tsx b/packages/design/src/Form/index.tsx index c44d590c4..decb8d7ee 100644 --- a/packages/design/src/Form/index.tsx +++ b/packages/design/src/Form/index.tsx @@ -25,7 +25,7 @@ export type ComponentForPattern> = Record< export type FormElementComponent> = React.ComponentType<{ - prompt: T; + pattern: T; }>; const usePrompt = ( @@ -103,12 +103,8 @@ export default function Form({
{prompt.parts .map((pattern, index) => { - if (pattern.type === 'text') { - console.log('skipping', pattern.type); - return null; - } const Component = context.components[pattern.type]; - return ; + return ; }) .filter(a => a)} {/* Add submit button or other controls as needed */} diff --git a/packages/design/src/FormManager/FormEdit/FormElementEdit.tsx b/packages/design/src/FormManager/FormEdit/FormElementEdit.tsx index a18d55538..7f0ad4740 100644 --- a/packages/design/src/FormManager/FormEdit/FormElementEdit.tsx +++ b/packages/design/src/FormManager/FormEdit/FormElementEdit.tsx @@ -37,7 +37,7 @@ export const FormElementEdit = ({ formElement.id, formData ); - //onChange(updatedForm); + onChange(updatedForm); })} > diff --git a/packages/design/src/FormManager/FormEdit/Preview.tsx b/packages/design/src/FormManager/FormEdit/Preview.tsx index 100bcba4a..39ec2e544 100644 --- a/packages/design/src/FormManager/FormEdit/Preview.tsx +++ b/packages/design/src/FormManager/FormEdit/Preview.tsx @@ -26,7 +26,6 @@ export const PreviewForm = ({ uiContext, form }: PreviewFormProps) => { // don't have to regenerate it every time we render the form. components: createPreviewComponents(uiContext.components), }; - console.log('creating session'); const disposable = createFormSession(form); // nullSession instead? return
; }; @@ -56,24 +55,29 @@ export const PreviewContext = createContext( ); const createPatternPreviewComponent = (Component: FormElementComponent) => { - return function PatternPreviewComponent({ prompt }: { prompt: Pattern }) { + const PatternPreviewComponent: FormElementComponent = ({ + pattern, + }: { + pattern: Pattern; + }) => { const { selectedId, setSelectedId } = useContext(PreviewContext); return (
{ - setSelectedId(prompt._elementId); + setSelectedId(pattern._elementId); }} className={classNames({ - 'bg-primary-lighter': selectedId === prompt._elementId, + 'bg-primary-lighter': selectedId === pattern._elementId, })} //onKeyDown={handleKeyDown} role="button" - aria-pressed={selectedId === prompt._elementId} + aria-pressed={selectedId === pattern._elementId} aria-label="Select this pattern" tabIndex={0} > - +
); }; + return PatternPreviewComponent; }; diff --git a/packages/design/src/FormManager/FormEdit/index.tsx b/packages/design/src/FormManager/FormEdit/index.tsx index f6bee9ceb..61372618b 100644 --- a/packages/design/src/FormManager/FormEdit/index.tsx +++ b/packages/design/src/FormManager/FormEdit/index.tsx @@ -1,12 +1,9 @@ import React, { useState } from 'react'; -import { FormProvider, useForm } from 'react-hook-form'; import { type FormService } from '@atj/form-service'; import { type FormDefinition, - type FormElementMap, getRootFormElement, - updateElements, FormElementId, getFormElement, } from '@atj/forms'; @@ -78,8 +75,9 @@ const EditForm = ({ context={context} initialForm={currentForm} formElement={formElement} - onChange={function (form: FormDefinition): void { - setCurrentForm(form); + onChange={(form: FormDefinition) => { + //setCurrentForm(form); + console.log('setting form onChange', form); }} /> )} diff --git a/packages/design/src/config/edit/InputElementEdit.tsx b/packages/design/src/config/edit/InputElementEdit.tsx index db5ec764c..bf490d94f 100644 --- a/packages/design/src/config/edit/InputElementEdit.tsx +++ b/packages/design/src/config/edit/InputElementEdit.tsx @@ -10,52 +10,58 @@ const InputElementEdit: FormElementEditComponent = ({ }) => { const { register } = useFormContext(); return ( -
-
- -
-
- -
-
- -
-
- +
+
+
+ +
+ {/*
+ +
*/} +
+ +
-
+
+
+ +