From 93e74150cb12e297c26c3ba4bfb3dbcc77062f93 Mon Sep 17 00:00:00 2001 From: Preston Goforth Date: Sat, 21 Sep 2024 11:41:11 -0400 Subject: [PATCH 1/2] fix: remove multiple `console.log` and fix reference to undefined `submitButtonLabel` (#12) --- packages/form/src/json-schema-form.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/form/src/json-schema-form.ts b/packages/form/src/json-schema-form.ts index fd43534..7e03b85 100644 --- a/packages/form/src/json-schema-form.ts +++ b/packages/form/src/json-schema-form.ts @@ -352,14 +352,12 @@ export class Jsf extends LitElement { /* When user hit "Enter" while in some adequate inputs */ protected _handleKeydown(event: KeyboardEvent) { - console.log('cccccccccccccc'); const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey; if (event.key === 'Enter' && !hasModifier) { setTimeout(() => { if (!event.defaultPrevented && !event.isComposing) { - console.log({ event }); const form = this.#formRef.value!; // const valid = form.reportValidity(); let valid = true; @@ -398,7 +396,7 @@ export class Jsf extends LitElement { #submit = () => { const options: Widgets['submit'] = { id: '__submit_button', - label: this.submitButtonLabel, + label: this.submitButtonText, }; const error = 'Missing submit widget.'; return ( @@ -421,7 +419,6 @@ export class Jsf extends LitElement { ${ref(this.#formRef)} part="base" @submit=${(event: Event) => { - console.log('hey'); event.preventDefault(); const valid = (event.target as HTMLFormElement).reportValidity(); From 31ba78b2075a1d964077cb45620c782a2bd3845a Mon Sep 17 00:00:00 2001 From: Preston Goforth Date: Wed, 18 Sep 2024 10:59:06 -0400 Subject: [PATCH 2/2] feat: Add custom widget handler for `object` --- packages/form/src/triage/object.ts | 14 +++++++++++++- packages/form/src/triage/primitive.ts | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/form/src/triage/object.ts b/packages/form/src/triage/object.ts index 9d13bc1..277aa7a 100644 --- a/packages/form/src/triage/object.ts +++ b/packages/form/src/triage/object.ts @@ -17,6 +17,13 @@ export const fieldObject = ( if (typeof schema.properties !== 'object') return widgets.callout?.({ id: '', message: error }) ?? html`${error}`; + const id = path.join('.'); + + function missing(widgetName: string) { + const options = { id, message: `Missing ${widgetName} widget.` }; + return widgets?.callout?.(options) ?? html`

${options.message}

`; + } + const children = Object.entries(schema.properties).map( ([propName, propValue]) => { if (Array.isArray(propValue) || typeof propValue === 'boolean') @@ -59,13 +66,18 @@ export const fieldObject = ( if (typeof uiSchema?.['ui:title'] === 'string') label = uiSchema['ui:title']; const options = { - id: path.join('.'), + id, label, helpText: schema.description, children, level, }; + if (typeof uiSchema?.['ui:widget'] === 'string') { + const customWidgetName = uiSchema?.['ui:widget']; + return widgets?.[customWidgetName]?.(options) || missing(customWidgetName); + } + return ( widgets?.object?.(options) ?? widgets?.callout?.({ id: '', message: error }) ?? diff --git a/packages/form/src/triage/primitive.ts b/packages/form/src/triage/primitive.ts index 0566931..2eb8674 100644 --- a/packages/form/src/triage/primitive.ts +++ b/packages/form/src/triage/primitive.ts @@ -189,7 +189,7 @@ export const fieldPrimitive = ( if (typeof uiOptions?.['ui:widget'] === 'string') { const customWidgetName = uiOptions?.['ui:widget']; if (customWidgetName !== 'password') { - return widgets?.[customWidgetName]?.(options) || missing('custom'); + return widgets?.[customWidgetName]?.(options) || missing(customWidgetName); } }