tav-ui
Version:
1 lines • 2.12 kB
Source Map (JSON)
{"version":3,"file":"useAutoFocus2.mjs","sources":["../../../../../../../../packages/components/form/src/hooks/useAutoFocus.ts"],"sourcesContent":["import { nextTick, unref, watchEffect } from 'vue'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { FormActionType, FormProps, FormSchema } from '../types/form'\n\ninterface UseAutoFocusContext {\n getSchema: ComputedRef<FormSchema[]>\n getProps: ComputedRef<FormProps>\n isInitedDefault: Ref<boolean>\n formElRef: Ref<FormActionType>\n}\ntype Nullable<T> = T | null\nexport async function useAutoFocus({\n getSchema,\n getProps,\n formElRef,\n isInitedDefault,\n}: UseAutoFocusContext) {\n watchEffect(async () => {\n if (unref(isInitedDefault) || !unref(getProps).autoFocusFirstItem) return\n\n await nextTick()\n const schemas = unref(getSchema)\n const formEl = unref(formElRef)\n const el = (formEl as any)?.$el as HTMLElement\n if (!formEl || !el || !schemas || schemas.length === 0) return\n\n const firstItem = schemas[0]\n // Only open when the first form item is input type\n if (!(firstItem.component as any).includes('Input')) return\n\n const inputEl = el.querySelector('.ant-row:first-child input') as Nullable<HTMLInputElement>\n if (!inputEl) return\n inputEl?.focus()\n })\n}\n"],"names":[],"mappings":";;AACO,eAAe,YAAY,CAAC;AACnC,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,eAAe;AACjB,CAAC,EAAE;AACH,EAAE,WAAW,CAAC,YAAY;AAC1B,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB;AACrE,MAAM,OAAO;AACb,IAAI,MAAM,QAAQ,EAAE,CAAC;AACrB,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AACpC,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAC1D,MAAM,OAAO;AACb,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9C,MAAM,OAAO;AACb,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,OAAO;AAChB,MAAM,OAAO;AACb,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,GAAG,CAAC,CAAC;AACL;;;;"}