@grafana/runtime
Version:
Grafana Runtime Library
1 lines • 2.99 kB
Source Map (JSON)
{"version":3,"file":"usePluginExtensions.mjs","sources":["../../../../src/services/pluginExtensions/usePluginExtensions.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { PluginExtensionComponent, PluginExtensionLink } from '@grafana/data';\n\nimport { GetPluginExtensionsOptions, UsePluginExtensions, UsePluginExtensionsResult } from './getPluginExtensions';\nimport { isPluginExtensionComponent, isPluginExtensionLink } from './utils';\n\nlet singleton: UsePluginExtensions | undefined;\n\nexport function setPluginExtensionsHook(hook: UsePluginExtensions): void {\n // We allow overriding the registry in tests\n if (singleton && process.env.NODE_ENV !== 'test') {\n throw new Error('setPluginExtensionsHook() function should only be called once, when Grafana is starting.');\n }\n singleton = hook;\n}\n\n/**\n * @deprecated Use either usePluginLinks() or usePluginComponents() instead.\n */\nexport function usePluginExtensions(options: GetPluginExtensionsOptions): UsePluginExtensionsResult {\n if (!singleton) {\n throw new Error('usePluginExtensions(options) can only be used after the Grafana instance has started.');\n }\n return singleton(options);\n}\n\n/**\n * @deprecated Use usePluginLinks() instead.\n */\nexport function usePluginLinkExtensions(\n options: GetPluginExtensionsOptions\n): UsePluginExtensionsResult<PluginExtensionLink> {\n const { extensions, isLoading } = usePluginExtensions(options);\n\n return useMemo(() => {\n return {\n extensions: extensions.filter(isPluginExtensionLink),\n isLoading,\n };\n }, [extensions, isLoading]);\n}\n\n/**\n * @deprecated Use usePluginComponents() instead.\n */\nexport function usePluginComponentExtensions<Props = {}>(\n options: GetPluginExtensionsOptions\n): { extensions: Array<PluginExtensionComponent<Props>>; isLoading: boolean } {\n const { extensions, isLoading } = usePluginExtensions(options);\n\n return useMemo(\n () => ({\n extensions: extensions.filter(isPluginExtensionComponent) as Array<PluginExtensionComponent<Props>>,\n isLoading,\n }),\n [extensions, isLoading]\n );\n}\n"],"names":[],"mappings":";;;AAOA,IAAI,SAAA;AAEG,SAAS,wBAAwB,IAAiC,EAAA;AAEvE,EAAA,IAAI,SAAa,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,MAAQ,EAAA;AAChD,IAAM,MAAA,IAAI,MAAM,0FAA0F,CAAA;AAAA;AAE5G,EAAY,SAAA,GAAA,IAAA;AACd;AAKO,SAAS,oBAAoB,OAAgE,EAAA;AAClG,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAM,MAAA,IAAI,MAAM,uFAAuF,CAAA;AAAA;AAEzG,EAAA,OAAO,UAAU,OAAO,CAAA;AAC1B;AAKO,SAAS,wBACd,OACgD,EAAA;AAChD,EAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAI,oBAAoB,OAAO,CAAA;AAE7D,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAO,OAAA;AAAA,MACL,UAAA,EAAY,UAAW,CAAA,MAAA,CAAO,qBAAqB,CAAA;AAAA,MACnD;AAAA,KACF;AAAA,GACC,EAAA,CAAC,UAAY,EAAA,SAAS,CAAC,CAAA;AAC5B;AAKO,SAAS,6BACd,OAC4E,EAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAI,oBAAoB,OAAO,CAAA;AAE7D,EAAO,OAAA,OAAA;AAAA,IACL,OAAO;AAAA,MACL,UAAA,EAAY,UAAW,CAAA,MAAA,CAAO,0BAA0B,CAAA;AAAA,MACxD;AAAA,KACF,CAAA;AAAA,IACA,CAAC,YAAY,SAAS;AAAA,GACxB;AACF;;;;"}