UNPKG

@grafana/ui

Version:
1 lines 2.82 kB
{"version":3,"file":"ModalsContext.mjs","sources":["../../../../src/components/Modal/ModalsContext.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport * as React from 'react';\n\nexport interface ModalsContextState {\n component: React.ComponentType<any> | null;\n props: any;\n showModal: <T>(component: React.ComponentType<T>, props: T) => void;\n hideModal: () => void;\n}\n\nexport const ModalsContext = React.createContext<ModalsContextState>({\n component: null,\n props: {},\n showModal: () => {},\n hideModal: () => {},\n});\n\ninterface ModalsProviderProps {\n children: React.ReactNode;\n}\n\n/**\n * @deprecated.\n * Not the real implementation used by core.\n */\nexport function ModalsProvider({ children }: ModalsProviderProps) {\n const [component, setComponent] = useState<ModalsContextState['component']>(null);\n const [props, setProps] = useState<ModalsContextState['props']>({});\n\n const showModal = useCallback(<T,>(component: React.ComponentType<T>, props: T) => {\n setComponent(() => component);\n setProps(props);\n }, []);\n\n const hideModal = useCallback(() => {\n setComponent(null);\n setProps({});\n }, []);\n\n const value = useMemo(() => ({ component, props, showModal, hideModal }), [component, props, showModal, hideModal]);\n\n return <ModalsContext.Provider value={value}>{children}</ModalsContext.Provider>;\n}\n\nexport const ModalRoot = () => (\n <ModalsContext.Consumer>\n {({ component: Component, props }) => {\n return Component ? <Component {...props} /> : null;\n }}\n </ModalsContext.Consumer>\n);\n\nexport const ModalsController = ModalsContext.Consumer;\n"],"names":["component","props"],"mappings":";;;;;AAUO,MAAM,aAAA,GAAgB,MAAM,aAAA,CAAkC;AAAA,EACnE,SAAA,EAAW,IAAA;AAAA,EACX,OAAO,EAAC;AAAA,EACR,WAAW,MAAM;AAAA,EAAC,CAAA;AAAA,EAClB,WAAW,MAAM;AAAA,EAAC;AACpB,CAAC;AAUM,SAAS,cAAA,CAAe,EAAE,QAAA,EAAS,EAAwB;AAChE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA0C,IAAI,CAAA;AAChF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAA,CAAsC,EAAE,CAAA;AAElE,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,CAAKA,UAAAA,EAAmCC,MAAAA,KAAa;AACjF,IAAA,YAAA,CAAa,MAAMD,UAAS,CAAA;AAC5B,IAAA,QAAA,CAASC,MAAK,CAAA;AAAA,EAChB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,SAAA,GAAY,YAAY,MAAM;AAClC,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,OAAO,EAAE,WAAW,KAAA,EAAO,SAAA,EAAW,SAAA,EAAU,CAAA,EAAI,CAAC,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,SAAS,CAAC,CAAA;AAElH,EAAA,uBAAO,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,OAAe,QAAA,EAAS,CAAA;AACzD;AAEO,MAAM,SAAA,GAAY,sBACvB,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EACE,QAAA,EAAA,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,KAAA,EAAM,KAAM;AACpC,EAAA,OAAO,SAAA,mBAAY,GAAA,CAAC,SAAA,EAAA,EAAW,GAAG,OAAO,CAAA,GAAK,IAAA;AAChD,CAAA,EACF;AAGK,MAAM,mBAAmB,aAAA,CAAc;;;;"}