{"version":3,"file":"use-modals-stack.cjs","sources":["../../../src/components/Modal/use-modals-stack.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\ninterface ModalStackReturnType<T extends string> {\n  state: Record<T, boolean>;\n  open: (id: T) => void;\n  close: (id: T) => void;\n  toggle: (id: T) => void;\n  closeAll: () => void;\n  register: (id: T) => { opened: boolean; onClose: () => void; stackId: T };\n}\n\nexport function useModalsStack<const T extends string>(modals: T[]): ModalStackReturnType<T> {\n  const initialState = modals.reduce(\n    (acc, modal) => ({ ...acc, [modal]: false }),\n    {} as Record<T, boolean>\n  );\n\n  const [state, setState] = useState(initialState);\n\n  const open = useCallback((modal: T) => {\n    setState((current) => ({ ...current, [modal]: true }));\n  }, []);\n\n  const close = useCallback(\n    (modal: T) => setState((current) => ({ ...current, [modal]: false })),\n    []\n  );\n\n  const toggle = useCallback(\n    (modal: T) => setState((current) => ({ ...current, [modal]: !current[modal] })),\n    []\n  );\n\n  const closeAll = useCallback(() => setState(initialState), []);\n\n  const register = useCallback(\n    (modal: T) => ({\n      opened: state[modal],\n      onClose: () => close(modal),\n      stackId: modal,\n    }),\n    [state]\n  );\n\n  return { state, open, close, closeAll, toggle, register };\n}\n\nexport const useDrawersStack = useModalsStack;\n"],"names":["useState","useCallback"],"mappings":";;;;AAWO,SAAS,eAAuC,MAAsC,EAAA;AAC3F,EAAA,MAAM,eAAe,MAAO,CAAA,MAAA;AAAA,IAC1B,CAAC,KAAK,KAAW,MAAA,EAAE,GAAG,GAAK,EAAA,CAAC,KAAK,GAAG,KAAM,EAAA,CAAA;AAAA,IAC1C;AAAC,GACH;AAEA,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,YAAY,CAAA;AAE/C,EAAM,MAAA,IAAA,GAAOC,iBAAY,CAAA,CAAC,KAAa,KAAA;AACrC,IAAS,QAAA,CAAA,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC,KAAK,GAAG,IAAA,EAAO,CAAA,CAAA;AAAA,GACvD,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,KAAQ,GAAAA,iBAAA;AAAA,IACZ,CAAC,KAAA,KAAa,QAAS,CAAA,CAAC,OAAa,MAAA,EAAE,GAAG,OAAA,EAAS,CAAC,KAAK,GAAG,KAAA,EAAQ,CAAA,CAAA;AAAA,IACpE;AAAC,GACH;AAEA,EAAA,MAAM,MAAS,GAAAA,iBAAA;AAAA,IACb,CAAC,KAAA,KAAa,QAAS,CAAA,CAAC,aAAa,EAAE,GAAG,OAAS,EAAA,CAAC,KAAK,GAAG,CAAC,OAAQ,CAAA,KAAK,GAAI,CAAA,CAAA;AAAA,IAC9E;AAAC,GACH;AAEA,EAAA,MAAM,WAAWA,iBAAY,CAAA,MAAM,SAAS,YAAY,CAAA,EAAG,EAAE,CAAA;AAE7D,EAAA,MAAM,QAAW,GAAAA,iBAAA;AAAA,IACf,CAAC,KAAc,MAAA;AAAA,MACb,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,MACnB,OAAA,EAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AAAA,MAC1B,OAAS,EAAA;AAAA,KACX,CAAA;AAAA,IACA,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,OAAO,EAAE,KAAO,EAAA,IAAA,EAAM,KAAO,EAAA,QAAA,EAAU,QAAQ,QAAS,EAAA;AAC1D;AAEO,MAAM,eAAkB,GAAA;;;;;"}