UNPKG

@grafana/runtime

Version:
1 lines 2.84 kB
{"version":3,"file":"QueryEditorWithMigration.mjs","sources":["../../../src/components/QueryEditorWithMigration.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport Skeleton from 'react-loading-skeleton';\n\nimport { DataSourceApi, DataSourceOptionsType, DataSourceQueryType, QueryEditorProps } from '@grafana/data';\nimport { DataQuery, DataSourceJsonData } from '@grafana/schema';\n\nimport { isMigrationHandler, migrateQuery } from '../utils/migrationHandler';\n\n/**\n * @alpha Experimental: QueryEditorWithMigration is a higher order component that wraps the QueryEditor component\n * and ensures that the query is migrated before being passed to the QueryEditor.\n */\nexport function QueryEditorWithMigration<\n DSType extends DataSourceApi<TQuery, TOptions>,\n TQuery extends DataQuery = DataSourceQueryType<DSType>,\n TOptions extends DataSourceJsonData = DataSourceOptionsType<DSType>,\n>(QueryEditor: React.ComponentType<QueryEditorProps<DSType, TQuery, TOptions>>) {\n const WithExtra = (props: QueryEditorProps<DSType, TQuery, TOptions>) => {\n const [migrated, setMigrated] = useState(false);\n const [query, setQuery] = useState(props.query);\n\n useEffect(() => {\n if (props.query && isMigrationHandler(props.datasource)) {\n migrateQuery(props.datasource, props.query).then((migrated) => {\n props.onChange(migrated);\n setQuery(migrated);\n setMigrated(true);\n });\n } else {\n setMigrated(true);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n setQuery(props.query);\n }, [props.query]);\n\n if (!migrated) {\n return <Skeleton containerTestId=\"react-loading-skeleton-testid\" height={75} />;\n }\n return <QueryEditor {...props} query={query} />;\n };\n return WithExtra;\n}\n"],"names":["migrated"],"mappings":";;;;;AAYO,SAAS,yBAId,WAA8E,EAAA;AAC9E,EAAM,MAAA,SAAA,GAAY,CAAC,KAAsD,KAAA;AACvE,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,IAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAE9C,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,KAAM,CAAA,KAAA,IAAS,kBAAmB,CAAA,KAAA,CAAM,UAAU,CAAG,EAAA;AACvD,QAAA,YAAA,CAAa,MAAM,UAAY,EAAA,KAAA,CAAM,KAAK,CAAE,CAAA,IAAA,CAAK,CAACA,SAAa,KAAA;AAC7D,UAAA,KAAA,CAAM,SAASA,SAAQ,CAAA;AACvB,UAAA,QAAA,CAASA,SAAQ,CAAA;AACjB,UAAA,WAAA,CAAY,IAAI,CAAA;AAAA,SACjB,CAAA;AAAA,OACI,MAAA;AACL,QAAA,WAAA,CAAY,IAAI,CAAA;AAAA;AAClB,KACF,EAAG,EAAE,CAAA;AAEL,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA,KACnB,EAAA,CAAC,KAAM,CAAA,KAAK,CAAC,CAAA;AAEhB,IAAA,IAAI,CAAC,QAAU,EAAA;AACb,MAAA,uBAAQ,GAAA,CAAA,QAAA,EAAA,EAAS,eAAgB,EAAA,+BAAA,EAAgC,QAAQ,EAAI,EAAA,CAAA;AAAA;AAE/E,IAAA,uBAAQ,GAAA,CAAA,WAAA,EAAA,EAAa,GAAG,KAAA,EAAO,KAAc,EAAA,CAAA;AAAA,GAC/C;AACA,EAAO,OAAA,SAAA;AACT;;;;"}