UNPKG

svelte-craftcms-headless-formie

Version:

Svelte Package for using Craft CMS with the Formie Plugin in headless configuration

54 lines (53 loc) 1.33 kB
/** * @class FormStore * @description * custom error class, which can be used to map the errors to its field * * @example * ```svelte * <script> * const error = $derived(formStore.errorByHandle(field?.handle)); * </script> * <input * type="text" * aria-invalid={!!error} * aria-errormessage={error} * /> * <FieldError {error} /> <!-- will only be shown if errors are present --> */ export class FormStore { #errors = $state(undefined); /** * ERROR */ clearErrors() { this.#errors = undefined; } // set errorobject set errors(value) { this.#errors = value; } // get errorobject get errors() { return this.#errors; } getErrorByHandle(handle) { if (!handle) return undefined; const obj = this.#errors; if (!obj || !obj[handle] || obj[handle].length === 0) return undefined; return obj[handle][0]; } setErrorByHandle(handle, message) { if (!handle) return; const obj = this.#errors; if (!obj || !obj[handle]) return (this.#errors = { [handle]: [message] }); // if (obj && obj[handle]) { // const prevErr: string[] = obj[handle] // const newErrors: string[] = [message, ...prevErr] // } } }