cetirizine

An experimental matrix client written in reactjs utilizing tailwind and storybook
git clone git://archive.git.mtrnord.blog/MTRNord/cetirizine.git
Log | Files | Refs | README | LICENSE

commit 3dc4f61194eee68f6e69fe19ec6d8c6a3928b95c
parent e9c574e17bf27fa6d58fe2eec2598e9dcb609bac
Author: MTRNord <mtrnord1@gmail.com>
Date:   Fri,  5 May 2023 14:44:11 +0200

Add percy storybook integration

Diffstat:
M.storybook/main.ts | 6+++++-
MREADME.md | 1+
Mpackage-lock.json | 447+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mpackage.json | 3+++
Msrc/components/roomList/roomList.stories.tsx | 2++
Msrc/pages/MainPage.stories.tsx | 3+++
6 files changed, 454 insertions(+), 8 deletions(-)

diff --git a/.storybook/main.ts b/.storybook/main.ts @@ -10,6 +10,7 @@ const config: StorybookConfig = { '@storybook/addon-a11y', '@geometricpanda/storybook-addon-badges', '@storybook/addon-styling', + 'storybook-addon-react-router-v6' ], framework: { name: '@storybook/react-vite', @@ -37,6 +38,9 @@ const config: StorybookConfig = { check: true, skipBabel: true, }, - staticDirs: ["../public"] + staticDirs: ["../public"], + features: { + storyStoreV7: false, + } }; export default config; \ No newline at end of file diff --git a/README.md b/README.md @@ -1,3 +1,4 @@ +[![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/33db3ec3/cetirizine) # Cetirizine A Matrix client using sliding sync build for MTRNords spepcific workflow. diff --git a/package-lock.json b/package-lock.json @@ -32,6 +32,8 @@ }, "devDependencies": { "@geometricpanda/storybook-addon-badges": "^2.0.0", + "@percy/cli": "^1.24.0", + "@percy/storybook": "^4.3.6", "@storybook/addon-a11y": "^7.0.7", "@storybook/addon-essentials": "^7.0.7", "@storybook/addon-interactions": "^7.0.7", @@ -52,6 +54,7 @@ "sass": "^1.62.0", "sass-loader": "^13.2.2", "storybook": "^7.0.7", + "storybook-addon-react-router-v6": "^1.3.6--canary.ffa6de3.0", "storybook-tailwind-dark-mode": "^1.0.22", "tailwindcss": "^3.3.1", "vite": "^4.3.0" @@ -3092,6 +3095,336 @@ "node": ">= 8" } }, + "node_modules/@percy/cli": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.24.0.tgz", + "integrity": "sha512-n8dxQfA2GoPk468EQ+sO7P/P5sBl3Q+s7UrljQhf4wPt4l+CBmoxMML8Ib71MyISzwxY7bOSw2QMr26r6n06/A==", + "dev": true, + "dependencies": { + "@percy/cli-app": "1.24.0", + "@percy/cli-build": "1.24.0", + "@percy/cli-command": "1.24.0", + "@percy/cli-config": "1.24.0", + "@percy/cli-exec": "1.24.0", + "@percy/cli-snapshot": "1.24.0", + "@percy/cli-upload": "1.24.0", + "@percy/client": "1.24.0", + "@percy/logger": "1.24.0" + }, + "bin": { + "percy": "bin/run.cjs" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-app": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.24.0.tgz", + "integrity": "sha512-z7ksv+SvdgDuAZ4WDnluuLuS72xb18DKauuwikSKipdICHHFQuXdRc0ngloADC/6IFzp0JhiukiRanntbBkPvg==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.24.0", + "@percy/cli-exec": "1.24.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-build": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.24.0.tgz", + "integrity": "sha512-p/wmO0OzqJ2Uou7QNAdxioqKmxu7U+6Al02GvVhYcPja/MkVjfJT/jDl+XstXawR76txQW9QWrNsK5YOAWUupQ==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.24.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-command": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.24.0.tgz", + "integrity": "sha512-n4qyDdUc+TiX/YykGg59IS1DBmm4UdA7ZaiTdw/D5AZohzwwVbwL+Q4QMYqcohtfYZ/F8UT7Qy3Jma3+YKTnxw==", + "dev": true, + "dependencies": { + "@percy/config": "1.24.0", + "@percy/core": "1.24.0", + "@percy/logger": "1.24.0" + }, + "bin": { + "percy-cli-readme": "bin/readme.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-config": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.24.0.tgz", + "integrity": "sha512-7T70Y3vC0hIGBe+WOmdzspN8N5uflBRwuPoRXn2PdzxvH55hUhCGFT/Wxb8C6rTMJ9k++POkxMoQaSErVANYYg==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.24.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-exec": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.24.0.tgz", + "integrity": "sha512-T5B8HLjPde0js5lkO14uk02QZKmgxILjALh5SX9VFL2Qx4cUXw+A29epPPv6OLI2x2oww8e5nTdlnmykX8n4kQ==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.24.0", + "cross-spawn": "^7.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-snapshot": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.24.0.tgz", + "integrity": "sha512-zxoE1SbdTvUlP7QAjTs7+M7U8cHEDF1ec7ov06m1i+bul68YhZ0S+P4a1Mbt6oWBsAxjYz06h4jnq32JitbSDg==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.24.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-snapshot/node_modules/yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@percy/cli-upload": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.24.0.tgz", + "integrity": "sha512-/4XNzMAhbccYSsPhw/KWRVjnd13nd17LB178dVNX4UEtaETDbBF+VZSlU3scgs8mlpuqY8b8bHDaSJNfI71UwQ==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.24.0", + "fast-glob": "^3.2.11", + "image-size": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-upload/node_modules/image-size": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", + "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "dev": true, + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@percy/client": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.24.0.tgz", + "integrity": "sha512-mCMIGryE+0oxJN6v+riZ+XqnubEL9rajLOJI7xNOj5gNBNNvwgvkpTiNId9d6LNZVhA7dN9ZHTW+zFK+i4nU8A==", + "dev": true, + "dependencies": { + "@percy/env": "1.24.0", + "@percy/logger": "1.24.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/config": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.24.0.tgz", + "integrity": "sha512-FOV8VkW/MjLI7PXzKSjxFBK7z0ND1s8LtXuLQNIrux3oiCKHIVBAQWIV86LLnXSSn+G5i3tfQua9YED5ATyNFQ==", + "dev": true, + "dependencies": { + "@percy/logger": "1.24.0", + "ajv": "^8.6.2", + "cosmiconfig": "^7.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@percy/config/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@percy/config/node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@percy/config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/@percy/config/node_modules/yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@percy/core": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.24.0.tgz", + "integrity": "sha512-wys1k3RmENOWT4MeS2+8yGHNqzYuy64lqPi36dFoHwZHzSGHH52+6EPPDb+gXLFIxBUHVTwbdaNimstIO3F9Ww==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@percy/client": "1.24.0", + "@percy/config": "1.24.0", + "@percy/dom": "1.24.0", + "@percy/logger": "1.24.0", + "content-disposition": "^0.5.4", + "cross-spawn": "^7.0.3", + "extract-zip": "^2.0.1", + "fast-glob": "^3.2.11", + "micromatch": "^4.0.4", + "mime-types": "^2.1.34", + "path-to-regexp": "^6.2.0", + "rimraf": "^3.0.2", + "ws": "^8.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/core/node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/@percy/core/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@percy/core/node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "node_modules/@percy/dom": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.24.0.tgz", + "integrity": "sha512-URMLvsOPkCKayx/Wtyj5IymmIhzrtf4en6IKeW2sSTsm7X+kJQ+3wOa3017mX3HXJPIS5xEJKpiCR7hP9BtcUA==", + "dev": true + }, + "node_modules/@percy/env": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.24.0.tgz", + "integrity": "sha512-fUUWWDZJ71kv+Po5yOaoS8t7eLmQL5NN6hqRdLhgqN9PZnu+OKIGaeK1GNaTWiHL9+zANRBc1pZjQWhRlleWVA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/logger": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.24.0.tgz", + "integrity": "sha512-yaAo08FMED1o8jZycTEnTob1CZIVGaNluJc4R9fCRw7wWS88IAu4F9sdbzUZQZwZ/QGvtfI+55dNQaaesk69Bw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/storybook": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@percy/storybook/-/storybook-4.3.6.tgz", + "integrity": "sha512-tLAVH86schBfq4NTMNIEDVABTnuVbrx9IKL7s5/2ONZqKsgJfgVBPBjSF38A1HyomSnD2mwYzZ1xR76G3usyxA==", + "dev": true, + "dependencies": { + "@percy/cli-command": "^1.24.0", + "cross-spawn": "^7.0.3", + "qs": "^6.11.0" + }, + "bin": { + "percy-storybook": "bin/percy-storybook.cjs" + } + }, "node_modules/@remix-run/router": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", @@ -5595,6 +5928,12 @@ "integrity": "sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==", "dev": true }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "node_modules/@types/pretty-hrtime": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", @@ -5692,6 +6031,16 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@vitejs/plugin-react": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", @@ -6755,9 +7104,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001481", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", + "version": "1.0.30001482", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", + "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", "dev": true, "funding": [ { @@ -8144,8 +8493,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fast-glob": { "version": "3.2.12", @@ -9242,6 +9590,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", + "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "dev": true, + "dependencies": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -9343,6 +9701,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -9489,6 +9856,12 @@ "dev": true, "peer": true }, + "node_modules/is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==", + "dev": true + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -11885,7 +12258,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -12023,6 +12395,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -12606,6 +12987,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", @@ -13255,6 +13645,50 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/storybook-addon-react-router-v6": { + "version": "1.3.6--canary.ffa6de3.0", + "resolved": "https://registry.npmjs.org/storybook-addon-react-router-v6/-/storybook-addon-react-router-v6-1.3.6--canary.ffa6de3.0.tgz", + "integrity": "sha512-pIiLWWS2ieTqHjG8TxVGThshNPFZtnm+cFFufhuTl5GkTMbBmc4dw4XaCtiWqGeg0i6NL9bt3Rx/JdwRenCpng==", + "dev": true, + "dependencies": { + "react-inspector": "^5.1.1" + }, + "peerDependencies": { + "@storybook/blocks": "^7.0.0-rc.3", + "@storybook/components": "^7.0.0-rc.3", + "@storybook/core-events": "^7.0.0-rc.3", + "@storybook/manager-api": "^7.0.0-rc.3", + "@storybook/preview-api": "^7.0.0-rc.3", + "@storybook/theming": "^7.0.0-rc.3", + "@storybook/types": "^7.0.0-rc.3", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-router": "^6.3.0", + "react-router-dom": "^6.3.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/storybook-addon-react-router-v6/node_modules/react-inspector": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.1.tgz", + "integrity": "sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "is-dom": "^1.0.0", + "prop-types": "^15.0.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0" + } + }, "node_modules/storybook-tailwind-dark-mode": { "version": "1.0.22", "resolved": "https://registry.npmjs.org/storybook-tailwind-dark-mode/-/storybook-tailwind-dark-mode-1.0.22.tgz", @@ -14336,7 +14770,6 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "peer": true, "dependencies": { "punycode": "^2.1.0" } diff --git a/package.json b/package.json @@ -63,6 +63,8 @@ }, "devDependencies": { "@geometricpanda/storybook-addon-badges": "^2.0.0", + "@percy/cli": "^1.24.0", + "@percy/storybook": "^4.3.6", "@storybook/addon-a11y": "^7.0.7", "@storybook/addon-essentials": "^7.0.7", "@storybook/addon-interactions": "^7.0.7", @@ -83,6 +85,7 @@ "sass": "^1.62.0", "sass-loader": "^13.2.2", "storybook": "^7.0.7", + "storybook-addon-react-router-v6": "^1.3.6--canary.ffa6de3.0", "storybook-tailwind-dark-mode": "^1.0.22", "tailwindcss": "^3.3.1", "vite": "^4.3.0" diff --git a/src/components/roomList/roomList.stories.tsx b/src/components/roomList/roomList.stories.tsx @@ -1,11 +1,13 @@ import { Meta, StoryObj } from '@storybook/react'; import RoomList from './roomList'; import { BADGE } from '@geometricpanda/storybook-addon-badges'; +import { withRouter } from 'storybook-addon-react-router-v6'; const meta: Meta<typeof RoomList> = { title: 'Chat/RoomList', tags: ['autodocs'], component: RoomList, + decorators: [withRouter], parameters: { badges: [BADGE.EXPERIMENTAL] }, diff --git a/src/pages/MainPage.stories.tsx b/src/pages/MainPage.stories.tsx @@ -1,10 +1,13 @@ import { Meta, StoryObj } from '@storybook/react'; import MainPage from './MainPage'; +import { withRouter } from 'storybook-addon-react-router-v6'; const meta: Meta<typeof MainPage> = { title: 'Pages/MainPage', tags: ['autodocs'], component: MainPage, + decorators: [withRouter], + }; export default meta;