Skip to content

Commit 773f58e

Browse files
MrCoderclaude
andcommitted
refactor: reorganize Storybook into purpose-driven hierarchy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent bd570a3 commit 773f58e

33 files changed

+407
-916
lines changed

src/components/DiagramFrame/DiagramFrame.stories.tsx

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,51 @@ import type { Meta, StoryObj } from '@storybook/react'
22
import { DiagramFrame } from './DiagramFrame'
33
import { createStore, Provider } from 'jotai'
44
import { codeAtom, modeAtom, RenderMode } from '../../store/Store'
5+
import { useMemo } from 'react'
6+
import '../../assets/tailwind.css'
57

6-
const store = createStore()
8+
const DiagramFrameWithCode = ({ code }: { code: string }) => {
9+
const store = useMemo(() => {
10+
const s = createStore()
11+
s.set(codeAtom, code)
12+
s.set(modeAtom, RenderMode.Static)
13+
return s
14+
}, [code])
715

8-
const meta: Meta<typeof DiagramFrame> = {
16+
return (
17+
<Provider store={store}>
18+
<div className="zenuml" style={{ width: '100%', height: '600px' }}>
19+
<DiagramFrame />
20+
</div>
21+
</Provider>
22+
)
23+
}
24+
25+
const meta: Meta<typeof DiagramFrameWithCode> = {
926
title: 'Components/DiagramFrame',
10-
component: DiagramFrame,
27+
tags: ['autodocs'],
28+
component: DiagramFrameWithCode,
1129
parameters: {
1230
layout: 'fullscreen',
1331
},
14-
decorators: [
15-
(Story) => (
16-
<Provider store={store}>
17-
<div style={{ width: '100%', height: '600px' }}>
18-
<Story />
19-
</div>
20-
</Provider>
21-
),
22-
],
32+
argTypes: {
33+
code: { control: 'text' },
34+
},
2335
}
2436

2537
export default meta
2638
type Story = StoryObj<typeof meta>
2739

2840
export const Default: Story = {
29-
render: () => {
30-
store.set(codeAtom, `Alice -> Bob: Hello Bob
31-
Bob -> Alice: Hello Alice`)
32-
store.set(modeAtom, RenderMode.Static)
33-
return <DiagramFrame />
41+
args: {
42+
code: `Alice -> Bob: Hello Bob
43+
Bob -> Alice: Hello Alice`,
3444
},
3545
}
3646

3747
export const ComplexSequence: Story = {
38-
render: () => {
39-
store.set(codeAtom, `@Actor Client #FFAAAA
48+
args: {
49+
code: `@Actor Client #FFAAAA
4050
@Database Database #FFFFAA
4151
@Boundary WebServer #AAFFAA
4252
@@ -50,15 +60,13 @@ Client->WebServer.doPost() {
5060
}
5161
5262
WebServer->Client: Response
53-
}`)
54-
store.set(modeAtom, RenderMode.Static)
55-
return <DiagramFrame />
63+
}`,
5664
},
5765
}
5866

5967
export const WithFragments: Story = {
60-
render: () => {
61-
store.set(codeAtom, `Alice -> Bob: Authentication Request
68+
args: {
69+
code: `Alice -> Bob: Authentication Request
6270
6371
alt successful case {
6472
Bob -> Alice: Authentication Accepted
@@ -72,19 +80,15 @@ alt successful case {
7280
}
7381
7482
Alice -> Bob: Another authentication Request
75-
Alice <- Bob: another authentication Response`)
76-
store.set(modeAtom, RenderMode.Static)
77-
return <DiagramFrame />
83+
Alice <- Bob: another authentication Response`,
7884
},
7985
}
8086

8187
export const AsyncMessages: Story = {
82-
render: () => {
83-
store.set(codeAtom, `A -> B: Sync message
88+
args: {
89+
code: `A -> B: Sync message
8490
A ->> B: Async message
8591
B -->> A: Async response
86-
B --> A: Sync response`)
87-
store.set(modeAtom, RenderMode.Static)
88-
return <DiagramFrame />
92+
B --> A: Sync response`,
8993
},
9094
}

src/components/DiagramFrame/SeqDiagram/LifeLineLayer/ParticipantLabel.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { modeAtom, RenderMode } from '../../../../store/Store'
66
const store = createStore();
77

88
const meta: Meta<typeof ParticipantLabel> = {
9-
title: 'Components/ParticipantLabel',
9+
title: 'Components/Sequence Diagram/ParticipantLabel',
1010
component: ParticipantLabel,
1111
parameters: {
1212
layout: 'centered',

src/components/DiagramFrame/SeqDiagram/MessageLayer/Block/Statement/Message/ArrowHead.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react'
22
import { ArrowHead } from './ArrowHead'
33

44
const meta: Meta<typeof ArrowHead> = {
5-
title: 'Components/ArrowHead',
5+
title: 'Components/Sequence Diagram/ArrowHead',
66
component: ArrowHead,
77
parameters: {
88
layout: 'centered',

src/stories/Button.stories.ts

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

src/stories/Button.tsx

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

0 commit comments

Comments
 (0)