{"version":3,"file":"useDialogState.cjs","sources":["../../../../src/lib/Dialog/useDialogState.tsx"],"sourcesContent":["import {useCallback} from 'react';\n\nimport {last} from '@/internal/utils/last.ts';\n\nimport {useDialogContext} from './DialogContext';\nimport type {DialogState, DialogParams} from './DialogReducer';\nimport {Actions} from './DialogReducer';\n\nconst useSelector = <TResult,>(callback: (arg0: DialogState) => TResult) => {\n    const {state} = useDialogContext();\n    return callback(state);\n};\n\nexport const useDialogState = (id: string) => {\n    const {dispatch} = useDialogContext();\n    const openDialog = useCallback(\n        (params?: DialogParams) => {\n            dispatch({\n                type: Actions.DIALOG_OPEN,\n                id,\n                params,\n            });\n        },\n        [id, dispatch]\n    );\n    const closeDialog = useCallback(() => {\n        dispatch({\n            type: Actions.DIALOG_CLOSE,\n            id,\n        });\n    }, [id, dispatch]);\n    const topDialogId = useSelector((state: DialogState) => {\n        const topDialog = last(state.open);\n        return topDialog?.id;\n    });\n    const isOpen = id === topDialogId;\n    const dialogParams = useSelector((state: DialogState) => {\n        const topDialog = state.open.find(({id: dialogId}) => id === dialogId);\n        return topDialog?.params;\n    });\n    return {\n        openDialog,\n        closeDialog,\n        isOpen,\n        dialogParams,\n    };\n};\n"],"names":["useSelector","callback","state","useDialogContext","useDialogState","id","dispatch","openDialog","useCallback","params","Actions","closeDialog","topDialogId","topDialog","last","isOpen","dialogParams","dialogId"],"mappings":"mOAQMA,EAAyBC,GAA6C,CAClE,KAAA,CAAC,MAAAC,CAAK,EAAIC,mBAAiB,EACjC,OAAOF,EAASC,CAAK,CACzB,EAEaE,EAAkBC,GAAe,CACpC,KAAA,CAAC,SAAAC,CAAQ,EAAIH,mBAAiB,EAC9BI,EAAaC,EAAA,YACdC,GAA0B,CACdH,EAAA,CACL,KAAMI,EAAQ,QAAA,YACd,GAAAL,EACA,OAAAI,CAAA,CACH,CACL,EACA,CAACJ,EAAIC,CAAQ,CACjB,EACMK,EAAcH,EAAAA,YAAY,IAAM,CACzBF,EAAA,CACL,KAAMI,EAAQ,QAAA,aACd,GAAAL,CAAA,CACH,CAAA,EACF,CAACA,EAAIC,CAAQ,CAAC,EACXM,EAAcZ,EAAaE,GAAuB,CAC9C,MAAAW,EAAYC,EAAAA,KAAKZ,EAAM,IAAI,EACjC,OAAOW,GAAA,YAAAA,EAAW,EAAA,CACrB,EACKE,EAASV,IAAOO,EAChBI,EAAehB,EAAaE,GAAuB,CAC/C,MAAAW,EAAYX,EAAM,KAAK,KAAK,CAAC,CAAC,GAAIe,CAAA,IAAcZ,IAAOY,CAAQ,EACrE,OAAOJ,GAAA,YAAAA,EAAW,MAAA,CACrB,EACM,MAAA,CACH,WAAAN,EACA,YAAAI,EACA,OAAAI,EACA,aAAAC,CACJ,CACJ"}