@grafana/ui
Version:
Grafana Components Library
1 lines • 3.06 kB
Source Map (JSON)
{"version":3,"file":"ModalsContext.mjs","sources":["../../../../src/components/Modal/ModalsContext.tsx"],"sourcesContent":["import { Component } 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 /** Set default component to render as modal. Useful when rendering modals from Angular */\n component?: React.ComponentType<any> | null;\n /** Set default component props. Useful when rendering modals from Angular */\n props?: any;\n}\n\n/**\n * @deprecated.\n * Not the real implementation used by core.\n */\nexport class ModalsProvider extends Component<ModalsProviderProps, ModalsContextState> {\n constructor(props: ModalsProviderProps) {\n super(props);\n this.state = {\n component: props.component || null,\n props: props.props || {},\n showModal: this.showModal,\n hideModal: this.hideModal,\n };\n }\n\n showModal = <T,>(component: React.ComponentType<T>, props: T) => {\n this.setState({\n component,\n props,\n });\n };\n\n hideModal = () => {\n this.setState({\n component: null,\n props: {},\n });\n };\n\n render() {\n return <ModalsContext.Provider value={this.state}>{this.props.children}</ModalsContext.Provider>;\n }\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"],"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;AAcM,MAAM,uBAAuB,SAAA,CAAmD;AAAA,EACrF,YAAY,KAAA,EAA4B;AACtC,IAAA,KAAA,CAAM,KAAK,CAAA;AASb,IAAA,IAAA,CAAA,SAAA,GAAY,CAAK,WAAmC,KAAA,KAAa;AAC/D,MAAA,IAAA,CAAK,QAAA,CAAS;AAAA,QACZ,SAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,IAAA,CAAA,SAAA,GAAY,MAAM;AAChB,MAAA,IAAA,CAAK,QAAA,CAAS;AAAA,QACZ,SAAA,EAAW,IAAA;AAAA,QACX,OAAO;AAAC,OACT,CAAA;AAAA,IACH,CAAA;AApBE,IAAA,IAAA,CAAK,KAAA,GAAQ;AAAA,MACX,SAAA,EAAW,MAAM,SAAA,IAAa,IAAA;AAAA,MAC9B,KAAA,EAAO,KAAA,CAAM,KAAA,IAAS,EAAC;AAAA,MACvB,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,WAAW,IAAA,CAAK;AAAA,KAClB;AAAA,EACF;AAAA,EAgBA,MAAA,GAAS;AACP,IAAA,uBAAO,GAAA,CAAC,cAAc,QAAA,EAAd,EAAuB,OAAO,IAAA,CAAK,KAAA,EAAQ,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,QAAA,EAAS,CAAA;AAAA,EACzE;AACF;AAEO,MAAM,SAAA,GAAY,sBACvB,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EACE,QAAA,EAAA,CAAC,EAAE,SAAA,EAAWA,UAAAA,EAAW,KAAA,EAAM,KAAM;AACpC,EAAA,OAAOA,6BAAY,GAAA,CAACA,UAAAA,EAAA,EAAW,GAAG,OAAO,CAAA,GAAK,IAAA;AAChD,CAAA,EACF;AAGK,MAAM,mBAAmB,aAAA,CAAc;;;;"}