{"version":3,"file":"useFlag.mjs","sources":["../../../../src/querybuilder/hooks/useFlag.ts"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/querybuilder/hooks/useFlag.ts\nimport { useCallback, useState } from 'react';\n\nimport { store } from '@grafana/data';\n\nexport const promQueryEditorExplainKey = 'PrometheusQueryEditorExplainDefault';\n\ntype QueryEditorFlags = typeof promQueryEditorExplainKey;\n\nfunction getFlagValue(key: QueryEditorFlags, defaultValue = false): boolean {\n  const val = store.get(key);\n  return val === undefined ? defaultValue : Boolean(parseInt(val, 10));\n}\n\nfunction setFlagValue(key: QueryEditorFlags, value: boolean) {\n  store.set(key, value ? '1' : '0');\n}\n\ntype UseFlagHookReturnType = { flag: boolean; setFlag: (val: boolean) => void };\n\n/**\n *\n * Use and store value of explain switch in local storage.\n * Needs to be a hook with local state to trigger re-renders.\n */\nexport function useFlag(key: QueryEditorFlags, defaultValue = false): UseFlagHookReturnType {\n  const [flag, updateFlag] = useState(getFlagValue(key, defaultValue));\n  const setter = useCallback(\n    (value: boolean) => {\n      setFlagValue(key, value);\n      updateFlag(value);\n    },\n    [key]\n  );\n\n  return { flag, setFlag: setter };\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,yBAAA,GAA4B;AAIzC,SAAS,YAAA,CAAa,GAAA,EAAuB,YAAA,GAAe,KAAA,EAAgB;AAC1E,EAAA,MAAM,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AACzB,EAAA,OAAO,QAAQ,KAAA,CAAA,GAAY,YAAA,GAAe,QAAQ,QAAA,CAAS,GAAA,EAAK,EAAE,CAAC,CAAA;AACrE;AAEA,SAAS,YAAA,CAAa,KAAuB,KAAA,EAAgB;AAC3D,EAAA,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,KAAA,GAAQ,GAAA,GAAM,GAAG,CAAA;AAClC;AASO,SAAS,OAAA,CAAQ,GAAA,EAAuB,YAAA,GAAe,KAAA,EAA8B;AAC1F,EAAA,MAAM,CAAC,MAAM,UAAU,CAAA,GAAI,SAAS,YAAA,CAAa,GAAA,EAAK,YAAY,CAAC,CAAA;AACnE,EAAA,MAAM,MAAA,GAAS,WAAA;AAAA,IACb,CAAC,KAAA,KAAmB;AAClB,MAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AACvB,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,MAAA,EAAO;AACjC;;;;"}