Skip to content

Commit 0d5dafc

Browse files
amir-ghasemiclaude
andcommitted
refactor: extract shared args in ShareDialog stories
Deduplicate callback handlers across 7 story exports by extracting common args into a sharedArgs object. Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent 954e555 commit 0d5dafc

File tree

1 file changed

+18
-58
lines changed

1 file changed

+18
-58
lines changed

client/webui/frontend/src/stories/chat/ShareDialog.stories.tsx

Lines changed: 18 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ const mockViewerRecent = {
2929
access_level: "read-only" as const,
3030
};
3131

32+
/** Shared args across all stories */
33+
const sharedArgs = {
34+
sessionId: "test-session-123",
35+
sessionTitle: "My Chat Session",
36+
sessionUpdatedTime: new Date().toISOString(),
37+
open: true,
38+
onOpenChange: () => {},
39+
onError: (error: string) => console.error(error),
40+
onSuccess: (message: string) => console.log(message),
41+
} satisfies Partial<typeof ShareDialog extends React.ComponentType<infer P> ? P : never>;
42+
3243
const meta: Meta<typeof ShareDialog> = {
3344
title: "Chat/ShareDialog",
3445
component: ShareDialog,
@@ -69,55 +80,24 @@ type Story = StoryObj<typeof ShareDialog>;
6980

7081
// Default state with owner and 1 viewer
7182
export const Default: Story = {
72-
args: {
73-
sessionId: "test-session-123",
74-
sessionTitle: "My Chat Session",
75-
sessionUpdatedTime: new Date().toISOString(),
76-
open: true,
77-
onOpenChange: () => {},
78-
onError: error => console.error(error),
79-
onSuccess: message => console.log(message),
80-
},
83+
args: { ...sharedArgs },
8184
};
8285

8386
// With add row visible
8487
export const WithAddRow: Story = {
85-
args: {
86-
sessionId: "test-session-123",
87-
sessionTitle: "My Chat Session",
88-
sessionUpdatedTime: new Date().toISOString(),
89-
open: true,
90-
onOpenChange: () => {},
91-
onError: error => console.error(error),
92-
onSuccess: message => console.log(message),
93-
defaultShowAddRow: true,
94-
},
88+
args: { ...sharedArgs, defaultShowAddRow: true },
9589
};
9690

9791
// With public link visible
9892
export const WithPublicLink: Story = {
99-
args: {
100-
sessionId: "test-session-123",
101-
sessionTitle: "My Chat Session",
102-
sessionUpdatedTime: new Date().toISOString(),
103-
open: true,
104-
onOpenChange: () => {},
105-
onError: error => console.error(error),
106-
onSuccess: message => console.log(message),
107-
defaultShowPublicLink: true,
108-
},
93+
args: { ...sharedArgs, defaultShowPublicLink: true },
10994
};
11095

11196
// With both add row and public link
11297
export const FullyExpanded: Story = {
11398
args: {
114-
sessionId: "test-session-123",
99+
...sharedArgs,
115100
sessionTitle: "My Chat Session with a Very Long Title That Might Need Truncation",
116-
sessionUpdatedTime: new Date().toISOString(),
117-
open: true,
118-
onOpenChange: () => {},
119-
onError: error => console.error(error),
120-
onSuccess: message => console.log(message),
121101
defaultShowAddRow: true,
122102
defaultShowPublicLink: true,
123103
},
@@ -126,14 +106,10 @@ export const FullyExpanded: Story = {
126106
// With outdated session (shows update snapshot button for the viewer)
127107
export const WithOutdatedSession: Story = {
128108
args: {
129-
sessionId: "test-session-123",
109+
...sharedArgs,
130110
sessionTitle: "Recently Updated Chat",
131111
// Session updated 1 day ago (after viewer was added 2 days ago)
132112
sessionUpdatedTime: new Date(Date.now() - 86400000).toISOString(),
133-
open: true,
134-
onOpenChange: () => {},
135-
onError: error => console.error(error),
136-
onSuccess: message => console.log(message),
137113
},
138114
parameters: {
139115
msw: {
@@ -154,15 +130,7 @@ export const WithOutdatedSession: Story = {
154130

155131
// With no viewers (just owner)
156132
export const OnlyOwner: Story = {
157-
args: {
158-
sessionId: "test-session-123",
159-
sessionTitle: "Chat Not Shared Yet",
160-
sessionUpdatedTime: new Date().toISOString(),
161-
open: true,
162-
onOpenChange: () => {},
163-
onError: error => console.error(error),
164-
onSuccess: message => console.log(message),
165-
},
133+
args: { ...sharedArgs, sessionTitle: "Chat Not Shared Yet" },
166134
parameters: {
167135
msw: {
168136
handlers: [
@@ -182,13 +150,5 @@ export const OnlyOwner: Story = {
182150

183151
// Closed state
184152
export const Closed: Story = {
185-
args: {
186-
sessionId: "test-session-123",
187-
sessionTitle: "My Chat Session",
188-
sessionUpdatedTime: new Date().toISOString(),
189-
open: false,
190-
onOpenChange: () => {},
191-
onError: error => console.error(error),
192-
onSuccess: message => console.log(message),
193-
},
153+
args: { ...sharedArgs, open: false },
194154
};

0 commit comments

Comments
 (0)