diff --git a/frontend/.storybook/decorators/DocumentDecorator.tsx b/frontend/.storybook/decorators/DocumentDecorator.tsx
new file mode 100644
index 000000000..13f4dc8c7
--- /dev/null
+++ b/frontend/.storybook/decorators/DocumentDecorator.tsx
@@ -0,0 +1,12 @@
+import { useEffect } from "react";
+import type { Decorator } from "@storybook/react-vite";
+
+export const DocumentDecorator: Decorator = (Story) => {
+ useEffect(() => {
+ const root = document.getElementsByTagName("html")[0];
+
+ root.setAttribute("class", "overflow-visible");
+ }, []);
+
+ return ;
+};
diff --git a/frontend/.storybook/decorators/RouterDecorator.tsx b/frontend/.storybook/decorators/RouterDecorator.tsx
index 06f8d7575..a559c5cd1 100644
--- a/frontend/.storybook/decorators/RouterDecorator.tsx
+++ b/frontend/.storybook/decorators/RouterDecorator.tsx
@@ -1,17 +1,17 @@
+import { useMemo } from "react";
import type { Decorator } from "@storybook/react-vite";
import { createRootRoute, createRouter, RouterProvider } from "@tanstack/react-router";
export const RouterDecorator: Decorator = (Story) => {
- const rootRoute = createRootRoute({
- component: Story
- });
+ const router = useMemo(() => {
+ const routeTree = createRootRoute({
+ component: Story
+ });
- const routeTree = rootRoute;
+ return createRouter({
+ routeTree
+ });
+ }, [Story]);
- const router = createRouter({
- routeTree
- });
-
- // @ts-expect-error just to make Links happy :)
- return ;
+ return ;
};
diff --git a/frontend/.storybook/decorators/index.ts b/frontend/.storybook/decorators/index.ts
index b613f5c6a..7bbb10f15 100644
--- a/frontend/.storybook/decorators/index.ts
+++ b/frontend/.storybook/decorators/index.ts
@@ -1 +1,2 @@
+export * from "./DocumentDecorator";
export * from "./RouterDecorator";
diff --git a/frontend/.storybook/preview.tsx b/frontend/.storybook/preview.tsx
index 67157339d..d2aaca582 100644
--- a/frontend/.storybook/preview.tsx
+++ b/frontend/.storybook/preview.tsx
@@ -1,20 +1,11 @@
import type { Preview } from "@storybook/react-vite";
-import { RouterDecorator } from "./decorators";
+import { DocumentDecorator, RouterDecorator } from "./decorators";
import "../src/index.css";
const preview: Preview = {
- decorators: [
- (Story) => {
- const root = document.getElementsByTagName("html")[0];
-
- root.setAttribute("class", "overflow-visible");
-
- return ;
- },
- RouterDecorator
- ],
+ decorators: [DocumentDecorator, RouterDecorator],
parameters: {
controls: {
matchers: {
diff --git a/frontend/src/components/v3/generic/Badge/Badge.stories.tsx b/frontend/src/components/v3/generic/Badge/Badge.stories.tsx
index 86905b1ea..da0743a66 100644
--- a/frontend/src/components/v3/generic/Badge/Badge.stories.tsx
+++ b/frontend/src/components/v3/generic/Badge/Badge.stories.tsx
@@ -222,7 +222,7 @@ export const AsExternalLink: Story = {
variant: "info",
asChild: true,
children: (
-
+
Link
)
@@ -263,7 +263,7 @@ export const AsButton: Story = {
variant: "org",
asChild: true,
children: (
-