@grafana/ui
Version:
Grafana Components Library
1 lines • 3.03 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":";;;;AAUa,MAAA,aAAA,GAAgB,MAAM,aAAkC,CAAA;AAAA,EACnE,SAAW,EAAA,IAAA;AAAA,EACX,OAAO,EAAC;AAAA,EACR,WAAW,MAAM;AAAA,GAAC;AAAA,EAClB,WAAW,MAAM;AAAA;AACnB,CAAC;AAcM,MAAM,uBAAuB,SAAmD,CAAA;AAAA,EACrF,YAAY,KAA4B,EAAA;AACtC,IAAA,KAAA,CAAM,KAAK,CAAA;AASb,IAAY,IAAA,CAAA,SAAA,GAAA,CAAK,WAAmC,KAAa,KAAA;AAC/D,MAAA,IAAA,CAAK,QAAS,CAAA;AAAA,QACZ,SAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,KACH;AAEA,IAAA,IAAA,CAAA,SAAA,GAAY,MAAM;AAChB,MAAA,IAAA,CAAK,QAAS,CAAA;AAAA,QACZ,SAAW,EAAA,IAAA;AAAA,QACX,OAAO;AAAC,OACT,CAAA;AAAA,KACH;AApBE,IAAA,IAAA,CAAK,KAAQ,GAAA;AAAA,MACX,SAAA,EAAW,MAAM,SAAa,IAAA,IAAA;AAAA,MAC9B,KAAA,EAAO,KAAM,CAAA,KAAA,IAAS,EAAC;AAAA,MACvB,WAAW,IAAK,CAAA,SAAA;AAAA,MAChB,WAAW,IAAK,CAAA;AAAA,KAClB;AAAA;AACF,EAgBA,MAAS,GAAA;AACP,IAAO,uBAAA,GAAA,CAAC,cAAc,QAAd,EAAA,EAAuB,OAAO,IAAK,CAAA,KAAA,EAAQ,QAAK,EAAA,IAAA,CAAA,KAAA,CAAM,QAAS,EAAA,CAAA;AAAA;AAE3E;AAEa,MAAA,SAAA,GAAY,sBACvB,GAAA,CAAC,aAAc,CAAA,QAAA,EAAd,EACE,QAAA,EAAA,CAAC,EAAE,SAAA,EAAWA,UAAW,EAAA,KAAA,EAAY,KAAA;AACpC,EAAA,OAAOA,6BAAaA,GAAAA,CAAAA,UAAAA,EAAA,EAAW,GAAG,OAAO,CAAK,GAAA,IAAA;AAChD,CACF,EAAA;AAGK,MAAM,mBAAmB,aAAc,CAAA;;;;"}