{"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","last","isOpen","dialogParams","dialogId"],"mappings":"mOAQMA,EAAyBC,GAA6C,CACxE,KAAM,CAAC,MAAAC,CAAA,EAASC,mBAAA,EAChB,OAAOF,EAASC,CAAK,CACzB,EAEaE,EAAkBC,GAAe,CAC1C,KAAM,CAAC,SAAAC,CAAA,EAAYH,mBAAA,EACbI,EAAaC,EAAAA,YACdC,GAA0B,CACvBH,EAAS,CACL,KAAMI,EAAAA,QAAQ,YACd,GAAAL,EACA,OAAAI,CAAA,CACH,CACL,EACA,CAACJ,EAAIC,CAAQ,CAAA,EAEXK,EAAcH,EAAAA,YAAY,IAAM,CAClCF,EAAS,CACL,KAAMI,EAAAA,QAAQ,aACd,GAAAL,CAAA,CACH,CACL,EAAG,CAACA,EAAIC,CAAQ,CAAC,EACXM,EAAcZ,EAAaE,GACXW,EAAAA,KAAKX,EAAM,IAAI,GACf,EACrB,EACKY,EAAST,IAAOO,EAChBG,EAAef,EAAaE,GACZA,EAAM,KAAK,KAAK,CAAC,CAAC,GAAIc,CAAA,IAAcX,IAAOW,CAAQ,GACnD,MACrB,EACD,MAAO,CACH,WAAAT,EACA,YAAAI,EACA,OAAAG,EACA,aAAAC,CAAA,CAER"}