diff --git a/.storybook/main.js b/.storybook/main.js index 88949ad..9f6e2d6 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,7 +1,16 @@ module.exports = { - stories: [ - "../stories/**/*.stories.mdx", - "../stories/**/*.stories.@(js|jsx|ts|tsx)", + stories: ["../stories/**/*.mdx", "../stories/**/*.stories.@(js|jsx|ts|tsx)"], + addons: [ + "@storybook/addon-links", + "@storybook/addon-essentials", + "@storybook/addon-interactions", + "../preset" ], - addons: ["../preset"], -}; + core: { + builder: "webpack5", + }, + framework: { + name: "@storybook/react-webpack5", + options: {} + } +}; \ No newline at end of file diff --git a/package.json b/package.json index 042e075..f874760 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-google-analytics", - "version": "6.3.0-next.0", + "version": "7.0.0", "description": "Storybook addon for google analytics", "keywords": [ "storybook-addons", @@ -23,14 +23,14 @@ "buildTsc": "tsc --declaration --emitDeclarationOnly --outDir ./dist", "build": "concurrently \"npm run buildBabel\" \"npm run buildTsc\"", "test": "echo \"Error: no test specified\" && exit 1", - "storybook": "start-storybook -p 6006", + "start:dev": "storybook dev -p 6006", "start": "concurrently \"npm run storybook -- --no-manager-cache --quiet\" \"npm run build -- --watch\"", - "build-storybook": "build-storybook", + "build-storybook": "storybook build", "prerelease": "node check-metadata.js", "release": "npm run build && auto shipit" }, "dependencies": { - "react-ga": "^2.7.0" + "react-ga4": "^2.0.0" }, "devDependencies": { "@babel/cli": "^7.12.1", @@ -38,24 +38,24 @@ "@babel/preset-env": "^7.12.1", "@babel/preset-react": "^7.12.5", "@babel/preset-typescript": "^7.13.0", - "@storybook/react": "^6.1.14", + "@storybook/addon-essentials": "^7.0.0-beta.55", + "@storybook/addon-interactions": "^7.0.0-beta.55", + "@storybook/addon-links": "^7.0.0-beta.55", + "@storybook/blocks": "^7.0.0-alpha.8", + "@storybook/react": "^7.0.0-beta.55", + "@storybook/react-webpack5": "^7.0.0-beta.55", + "@storybook/testing-library": "^0.0.14-next.1", "auto": "^10.3.0", "babel-loader": "^8.1.0", "chalk": "^2.4.2", "concurrently": "^5.3.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", "rimraf": "^3.0.2", + "storybook": "^7.0.0-beta.55", "typescript": "^4.2.4" }, "peerDependencies": { - "@storybook/addons": "^6.1.14", - "@storybook/api": "^6.1.14", - "@storybook/components": "^6.1.14", - "@storybook/core-events": "^6.1.14", - "@storybook/theming": "^6.1.14", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" + "react": "16.8.0 - 18", + "react-dom": "16.8.0 - 18" }, "peerDependenciesMeta": { "react": { diff --git a/src/register.ts b/src/register.ts index ecfd185..e07ea2d 100644 --- a/src/register.ts +++ b/src/register.ts @@ -2,7 +2,13 @@ import { window as globalWindow } from 'global'; import { addons } from '@storybook/addons'; import { STORY_CHANGED, STORY_ERRORED, STORY_MISSING } from '@storybook/core-events'; -import ReactGA from 'react-ga'; +import ReactGA from 'react-ga4'; + +declare global { + interface Window { + STORYBOOK_GA_OPTIONS: object + } +} addons.register('storybook/google-analytics', (api) => { ReactGA.initialize(globalWindow.STORYBOOK_GA_ID, globalWindow.STORYBOOK_REACT_GA_OPTIONS); @@ -15,16 +21,16 @@ addons.register('storybook/google-analytics', (api) => { api.on(STORY_CHANGED, () => { const { path } = api.getUrlState(); - ReactGA.pageview(path); + ReactGA.send({ hitType: "pageview", page: path }); }); api.on(STORY_ERRORED, ({ description }: { description: string }) => { - ReactGA.exception({ + ReactGA.event("exception", { description, fatal: true, }); }); api.on(STORY_MISSING, (id: string) => { - ReactGA.exception({ + ReactGA.event("exception", { description: `attempted to render ${id}, but it is missing`, fatal: false, });