@@ -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+
3243const 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
7182export 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
8487export 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
9892export 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
11297export 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)
127107export 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)
156132export 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
184152export 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