@etchteam/storybook-addon-marker
Version:
Add a Marker.io feedback button to the storybook UI
1 lines • 2.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/constants.js","../src/hideDefaultMarkerButton.js","../src/withMarker.js","../src/preview.js"],"names":["ADDON_ID","EVENTS","hideDefaultMarkerButton","markerBtn","withMarker","storyFn","globals","useGlobals","project","mode","config","emit","useChannel","markerSDK","preview","preview_default"],"mappings":"6MAAO,IAAMA,CAAAA,CAAW,QAAA,CAGXC,CAAAA,CAAS,CACpB,MAAA,CAAQ,CAAA,EAAGD,CAAQ,CAAA,OAAA,CAAA,CACnB,OAAA,CAAS,CAAA,EAAGA,CAAQ,CAAA,QAAA,CACtB,ECNO,IAAME,CAAAA,CAA0B,IAAM,CACxB,CACjB,GAAG,QAAA,CAAS,gBAAA,CAAiB,8BAA8B,CAC7D,CAAA,CACW,OAAA,CAASC,CAAAA,EAAeA,CAAAA,CAAU,KAAA,CAAM,OAAA,CAAU,MAAO,EACtE,CAAA,CCEO,IAAMC,CAAAA,CAAcC,CAAAA,EAAY,CACrC,GAAM,CAACC,CAAO,CAAA,CAAIC,qBAAAA,EAAW,CACvB,CAAE,OAAA,CAAAC,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,GAAGC,CAAO,CAAA,CAAIJ,CAAAA,CAAQ,MAAA,EAAU,EAAC,CAElDK,CAAAA,CAAOC,qBAAAA,CAAW,CACtB,CAACX,CAAAA,CAAO,OAAO,EAAG,IAAM,CACtB,MAAA,CAAO,MAAA,EAAQ,OAAA,CAAQQ,CAAI,CAAA,EAAG,IAAA,CAAK,IAAM,CACvCP,CAAAA,GACF,CAAC,EACH,CACF,CAAC,CAAA,CAED,OAAI,CAACM,GAAW,MAAA,CAAO,MAAA,EAIvBK,kBAAAA,CAAU,UAAA,CAAW,CAAE,OAAA,CAAAL,CAAAA,CAAS,GAAGE,CAAO,CAAC,CAAA,CAAE,IAAA,CAAK,IAAM,CACtDR,CAAAA,EAAwB,CACxBS,CAAAA,CAAKV,CAAAA,CAAO,MAAM,EACpB,CAAC,CAAA,CAEMI,CAAAA,EACT,CAAA,CCxBA,IAAMS,CAAAA,CAAU,CACd,UAAA,CAAY,CAACV,CAAU,CACzB,EAEOW,CAAAA,CAAQD","file":"preview.cjs","sourcesContent":["export const ADDON_ID = 'marker';\nexport const TOOL_ID = `${ADDON_ID}/tool`;\n\nexport const EVENTS = {\n LOADED: `${ADDON_ID}/loaded`,\n CAPTURE: `${ADDON_ID}/capture`,\n};\n","export const hideDefaultMarkerButton = () => {\n const markerBtns = [\n ...document.querySelectorAll('.marker-app #feedback-button'),\n ];\n markerBtns.forEach((markerBtn) => (markerBtn.style.display = 'none'));\n};\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport markerSDK from '@marker.io/browser';\nimport { useChannel, useGlobals } from 'storybook/preview-api';\n\nimport { EVENTS } from './constants';\nimport { hideDefaultMarkerButton } from './hideDefaultMarkerButton';\n\nexport const withMarker = (storyFn) => {\n const [globals] = useGlobals();\n const { project, mode, ...config } = globals.marker ?? {};\n\n const emit = useChannel({\n [EVENTS.CAPTURE]: () => {\n window.Marker?.capture(mode)?.then(() => {\n hideDefaultMarkerButton(); // This sometimes reappears after capturing\n });\n },\n });\n\n if (!project || window.Marker) {\n return storyFn();\n }\n\n markerSDK.loadWidget({ project, ...config }).then(() => {\n hideDefaultMarkerButton();\n emit(EVENTS.LOADED);\n });\n\n return storyFn();\n};\n","/**\n * https://storybook.js.org/docs/react/writing-stories/decorators\n */\nimport { withMarker } from './withMarker';\n\nconst preview = {\n decorators: [withMarker],\n};\n\nexport default preview;\n"]}