Skip to content

Commit 5529fe2

Browse files
committed
refactor: restore explicit storybook state stories
1 parent f8cf9e6 commit 5529fe2

5 files changed

Lines changed: 29 additions & 172 deletions

File tree

.storybook/manager.tsx

Lines changed: 0 additions & 69 deletions
This file was deleted.

.storybook/preview.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ const withAppChrome: Decorator = (Story, context) => {
4141

4242
const preview: Preview = {
4343
decorators: [withAppChrome],
44-
initialGlobals: {
45-
fixtureVariant: '',
46-
},
4744
globalTypes: {
4845
colorScheme: {
4946
name: 'Color scheme',

src/pages/Competition/ByGroup/Group.stories.tsx

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,38 +19,32 @@ export default meta;
1919

2020
type Story = StoryObj<typeof meta>;
2121

22-
export const FixtureStates: Story = {
22+
export const MultiStageRound: Story = {
23+
args: {
24+
competitionId: 'SeattleSummerOpen2026',
25+
roundId: '333-r1',
26+
groupNumber: '1',
27+
},
28+
};
29+
30+
export const ParticipationCondition: Story = {
2331
parameters: {
24-
fixtures: {
25-
'Multi-stage round': {
26-
args: {
27-
competitionId: 'SeattleSummerOpen2026',
28-
roundId: '333-r1',
29-
groupNumber: '1',
30-
},
31-
competitionFixture: makeStorybookGroupCompetitionFixture({ roundId: '333-r1' }),
32-
},
33-
'Participation condition': {
34-
args: {
35-
competitionId: 'SeattleSummerOpen2026',
36-
roundId: '333-r2',
37-
groupNumber: '1',
38-
},
39-
competitionFixture: makeStorybookGroupCompetitionFixture({ roundId: '333-r2' }),
40-
},
41-
'Linked rounds': {
42-
args: {
43-
competitionId: 'SeattleSummerOpen2026',
44-
roundId: '333-r3',
45-
groupNumber: '1',
46-
},
47-
competitionFixture: makeStorybookGroupCompetitionFixture({ roundId: '333-r3' }),
48-
},
49-
},
32+
competitionFixture: makeStorybookGroupCompetitionFixture({ roundId: '333-r2' }),
5033
},
5134
args: {
5235
competitionId: 'SeattleSummerOpen2026',
53-
roundId: '333-r1',
36+
roundId: '333-r2',
37+
groupNumber: '1',
38+
},
39+
};
40+
41+
export const LinkedRounds: Story = {
42+
parameters: {
43+
competitionFixture: makeStorybookGroupCompetitionFixture({ roundId: '333-r3' }),
44+
},
45+
args: {
46+
competitionId: 'SeattleSummerOpen2026',
47+
roundId: '333-r3',
5448
groupNumber: '1',
5549
},
5650
};

src/pages/Competition/__storybook__/competitionStorybook.tsx

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { Route, Routes } from 'react-router-dom';
88
import { AppContext } from '@/providers/AppProvider/AppContext';
99
import { AuthContext } from '@/providers/AuthProvider/AuthContext';
1010
import { WCIFContext } from '@/providers/WCIFProvider';
11-
import { getSelectedFixture } from '@/storybook/fixtures';
1211
import {
1312
storybookCompetitionApiFixture,
1413
storybookCompetitionFixture,
@@ -42,7 +41,7 @@ interface CompetitionRouteDecoratorOptions extends CompetitionPageDecoratorOptio
4241
path: string;
4342
}
4443

45-
interface CompetitionStorybookParameters extends CompetitionPageDecoratorOptions {
44+
export interface CompetitionStorybookParameters extends CompetitionPageDecoratorOptions {
4645
competitionFixture?: Competition;
4746
}
4847

@@ -65,32 +64,20 @@ const createStorybookQueryClient = (competition: Competition, competitionData?:
6564
const resolveCompetitionOptions = (
6665
defaults: CompetitionPageDecoratorOptions,
6766
parameters?: CompetitionStorybookParameters,
68-
fixture?: Record<string, unknown>,
6967
): Required<CompetitionPageDecoratorOptions> => ({
7068
competition:
71-
(fixture?.competitionFixture as Competition | undefined) ||
7269
parameters?.competitionFixture ||
7370
parameters?.competition ||
7471
defaults.competition ||
7572
storybookCompetitionFixture,
7673
competitionData:
77-
(fixture?.competitionData as ApiCompetition | undefined) ||
78-
parameters?.competitionData ||
79-
defaults.competitionData ||
80-
storybookCompetitionApiFixture,
81-
currentUser:
82-
(fixture?.currentUser as User | null | undefined) ??
83-
parameters?.currentUser ??
84-
defaults.currentUser ??
85-
storybookCurrentUser,
74+
parameters?.competitionData || defaults.competitionData || storybookCompetitionApiFixture,
75+
currentUser: parameters?.currentUser ?? defaults.currentUser ?? storybookCurrentUser,
8676
ongoingActivities:
87-
(fixture?.ongoingActivities as CompetitionPageDecoratorOptions['ongoingActivities']) ||
8877
parameters?.ongoingActivities ||
8978
defaults.ongoingActivities ||
9079
storybookOngoingActivitiesFixture,
91-
pinnedPersons: (fixture?.pinnedPersons as number[] | undefined) ||
92-
parameters?.pinnedPersons ||
93-
defaults.pinnedPersons || [2, 3],
80+
pinnedPersons: parameters?.pinnedPersons || defaults.pinnedPersons || [2, 3],
9481
});
9582

9683
const StorybookCompetitionProviders = ({
@@ -167,11 +154,9 @@ export const makeCompetitionPageDecorator = ({
167154
pinnedPersons = [2, 3],
168155
}: CompetitionPageDecoratorOptions = {}) =>
169156
((Story, context) => {
170-
const [, fixture] = getSelectedFixture(context) || [];
171157
const options = resolveCompetitionOptions(
172158
{ competition, competitionData, currentUser, ongoingActivities, pinnedPersons },
173159
context.parameters as CompetitionStorybookParameters,
174-
fixture,
175160
);
176161

177162
return (
@@ -182,10 +167,7 @@ export const makeCompetitionPageDecorator = ({
182167
ongoingActivities={options.ongoingActivities}
183168
pinnedPersons={options.pinnedPersons}>
184169
<Routes>
185-
<Route
186-
path="/competitions/:competitionId/*"
187-
element={<Story args={{ ...context.args, ...(fixture?.args || {}) }} />}
188-
/>
170+
<Route path="/competitions/:competitionId/*" element={<Story args={context.args} />} />
189171
</Routes>
190172
</StorybookCompetitionProviders>
191173
);
@@ -199,11 +181,9 @@ export const makeCompetitionContainerDecorator = ({
199181
pinnedPersons = [2, 3],
200182
}: CompetitionPageDecoratorOptions = {}) =>
201183
((Story, context) => {
202-
const [, fixture] = getSelectedFixture(context) || [];
203184
const options = resolveCompetitionOptions(
204185
{ competition, competitionData, currentUser, ongoingActivities, pinnedPersons },
205186
context.parameters as CompetitionStorybookParameters,
206-
fixture,
207187
);
208188

209189
return (
@@ -213,7 +193,7 @@ export const makeCompetitionContainerDecorator = ({
213193
currentUser={options.currentUser}
214194
ongoingActivities={options.ongoingActivities}
215195
pinnedPersons={options.pinnedPersons}>
216-
<Story args={{ ...context.args, ...(fixture?.args || {}) }} />
196+
<Story args={context.args} />
217197
</StorybookCompetitionProviders>
218198
);
219199
}) satisfies Decorator;
@@ -223,7 +203,6 @@ export const makeCompetitionRouteDecorator = ({
223203
...options
224204
}: CompetitionRouteDecoratorOptions) =>
225205
((Story, context) => {
226-
const [, fixture] = getSelectedFixture(context) || [];
227206
const resolvedOptions = resolveCompetitionOptions(
228207
{
229208
competition: options.competition,
@@ -233,7 +212,6 @@ export const makeCompetitionRouteDecorator = ({
233212
pinnedPersons: options.pinnedPersons,
234213
},
235214
context.parameters as CompetitionStorybookParameters,
236-
fixture,
237215
);
238216

239217
return (
@@ -248,10 +226,7 @@ export const makeCompetitionRouteDecorator = ({
248226
path="/competitions/:competitionId/*"
249227
element={
250228
<Routes>
251-
<Route
252-
path={path}
253-
element={<Story args={{ ...context.args, ...(fixture?.args || {}) }} />}
254-
/>
229+
<Route path={path} element={<Story args={context.args} />} />
255230
</Routes>
256231
}
257232
/>

src/storybook/fixtures.ts

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)