@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 1.58 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-restore-active/index.ts"],"sourcesContent":["import { isRef, watch } from 'vue'\nimport type { Ref } from 'vue'\n\n/**\n * This method provides dialogable components the ability to restore previously activated element before\n * the dialog gets opened\n */\nexport const useRestoreActive = (\n toggle: Ref<boolean>,\n initialFocus?: Ref<HTMLElement>\n) => {\n let previousActive: HTMLElement\n watch(\n () => toggle.value,\n (val) => {\n if (val) {\n previousActive = document.activeElement as HTMLElement\n if (isRef(initialFocus)) {\n initialFocus.value.focus?.()\n }\n } else {\n if (process.env.NODE_ENV === 'test') {\n previousActive.focus.call(previousActive)\n } else {\n previousActive.focus()\n }\n }\n }\n )\n}\n"],"names":[],"mappings":";;AAOa,MAAA,gBAAA,GAAmB,CAC9B,MAAA,EACA,YACG,KAAA;AACH,EAAI,IAAA,cAAA,CAAA;AACJ,EAAA,KAAA;AAAA,IACE,MAAM,MAAO,CAAA,KAAA;AAAA,IACb,CAAC,GAAQ,KAAA;AAdb,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAeM,MAAA,IAAI,GAAK,EAAA;AACP,QAAA,cAAA,GAAiB,QAAS,CAAA,aAAA,CAAA;AAC1B,QAAI,IAAA,KAAA,CAAM,YAAY,CAAG,EAAA;AACvB,UAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,YAAA,CAAa,OAAM,KAAnB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SACF;AAAA,OACK,MAAA;AACL,QAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,MAAQ,EAAA;AACnC,UAAe,cAAA,CAAA,KAAA,CAAM,KAAK,cAAc,CAAA,CAAA;AAAA,SACnC,MAAA;AACL,UAAA,cAAA,CAAe,KAAM,EAAA,CAAA;AAAA,SACvB;AAAA,OACF;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}