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(); 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); } }