@@ -3,6 +3,7 @@ import { type StoryObj, type Meta } from "@storybook/react";
3
3
import Tabs from "./Tabs" ;
4
4
import Badge from "../Badge/Badge" ;
5
5
import Box from "../Box/Box" ;
6
+ import SelectList from "../SelectList/SelectList" ;
6
7
7
8
export default {
8
9
title : "Components/Tabs" ,
@@ -29,7 +30,7 @@ export default {
29
30
const TabsButtonInteractive = ( {
30
31
on,
31
32
} : {
32
- on : "lightBackground" | "darkBackground" ;
33
+ on ? : "lightBackground" | "darkBackground" ;
33
34
} ) => {
34
35
const [ selected , setSelected ] = useState <
35
36
"Achievements" | "History" | "Quizzes" | "Levels" | "Tabatha" | "Tabathy"
@@ -81,74 +82,83 @@ const TabsButtonInteractive = ({
81
82
) ;
82
83
} ;
83
84
84
- const TabsLinkInteractive = ( {
85
- on,
86
- } : {
87
- on : "lightBackground" | "darkBackground" ;
88
- } ) => {
85
+ const TabsLinkInteractive = ( ) => {
89
86
const [ selected , setSelected ] = useState < "Tabrell" | "Tabara" | "Tabson" > (
90
87
"Tabrell" ,
91
88
) ;
92
-
93
- return (
94
- < Tabs accessibilityLabel = "My custom tabs" on = { on } >
95
- < Tabs . Link
96
- href = "https://cambly-syntax.vercel.app/?path=/docs/components-tabs--docs"
97
- text = "Tabrell"
98
- onClick = { ( ) => setSelected ( "Tabrell" ) }
99
- selected = { selected === "Tabrell" }
100
- on = { on }
101
- />
102
- < Tabs . Link
103
- href = "https://cambly-syntax.vercel.app/?path=/docs/components-tabs--docs"
104
- text = "Tabara"
105
- onClick = { ( ) => setSelected ( "Tabara" ) }
106
- selected = { selected === "Tabara" }
107
- on = { on }
108
- />
109
- < Tabs . Link
110
- href = "https://cambly-syntax.vercel.app/?path=/docs/components-tabs--docs"
111
- text = "Tabson"
112
- onClick = { ( ) => setSelected ( "Tabson" ) }
113
- selected = { selected === "Tabson" }
114
- on = { on }
115
- />
116
- </ Tabs >
89
+ const [ on , setOn ] = useState < "lightBackground" | "darkBackground" > (
90
+ "lightBackground" ,
117
91
) ;
118
- } ;
119
92
120
- export const Default : StoryObj <
121
- ComponentProps < typeof Tabs > & { on : "lightBackground" | "darkBackground" }
122
- > = {
123
- args : { accessibilityLabel : "My custom tabs" } ,
124
- render : ( args ) => {
125
- return (
93
+ return (
94
+ < Box display = "flex" direction = "column" gap = { 2 } >
95
+ < SelectList
96
+ id = "on"
97
+ label = "Background"
98
+ selectedValue = { on }
99
+ onChange = { ( event ) =>
100
+ setOn (
101
+ event . target . value === "lightBackground"
102
+ ? "lightBackground"
103
+ : "darkBackground" ,
104
+ )
105
+ }
106
+ >
107
+ < SelectList . Option
108
+ value = "lightBackground"
109
+ label = "Light"
110
+ > </ SelectList . Option >
111
+ < SelectList . Option
112
+ value = "darkBackground"
113
+ label = "Dark"
114
+ > </ SelectList . Option >
115
+ </ SelectList >
126
116
< Box
127
117
padding = { 2 }
128
- width = "fit-content"
129
118
dangerouslySetInlineStyle = { {
130
119
__style : {
131
120
backgroundImage :
132
- args . on === "darkBackground"
121
+ on === "darkBackground"
133
122
? "linear-gradient(0deg, #000, #555 )"
134
123
: null ,
135
124
} ,
136
125
} }
137
126
>
138
- < TabsButtonInteractive { ...args } />
127
+ < Tabs accessibilityLabel = "My custom tabs" on = { on } >
128
+ < Tabs . Link
129
+ href = "https://cambly-syntax.vercel.app/?path=/docs/components-tabs--docs"
130
+ text = "Tabrell"
131
+ onClick = { ( ) => setSelected ( "Tabrell" ) }
132
+ selected = { selected === "Tabrell" }
133
+ on = { on }
134
+ />
135
+ < Tabs . Link
136
+ href = "https://cambly-syntax.vercel.app/?path=/docs/components-tabs--docs"
137
+ text = "Tabara"
138
+ onClick = { ( ) => setSelected ( "Tabara" ) }
139
+ selected = { selected === "Tabara" }
140
+ on = { on }
141
+ />
142
+ < Tabs . Link
143
+ href = "https://cambly-syntax.vercel.app/?path=/docs/components-tabs--docs"
144
+ text = "Tabson"
145
+ onClick = { ( ) => setSelected ( "Tabson" ) }
146
+ selected = { selected === "Tabson" }
147
+ on = { on }
148
+ />
149
+ </ Tabs >
139
150
</ Box >
140
- ) ;
141
- } ,
151
+ </ Box >
152
+ ) ;
142
153
} ;
143
154
144
- export const Link : StoryObj <
145
- ComponentProps < typeof Tabs > & { on : "lightBackground" | "darkBackground" }
146
- > = {
155
+ export const Default : StoryObj < ComponentProps < typeof Tabs > > = {
147
156
args : { accessibilityLabel : "My custom tabs" } ,
148
157
render : ( args ) => {
149
158
return (
150
159
< Box
151
160
padding = { 2 }
161
+ width = "fit-content"
152
162
dangerouslySetInlineStyle = { {
153
163
__style : {
154
164
backgroundImage :
@@ -158,8 +168,12 @@ export const Link: StoryObj<
158
168
} ,
159
169
} }
160
170
>
161
- < TabsLinkInteractive { ...args } />
171
+ < TabsButtonInteractive { ...args } />
162
172
</ Box >
163
173
) ;
164
174
} ,
165
175
} ;
176
+
177
+ export const Link : StoryObj < ComponentProps < typeof Tabs > > = {
178
+ render : ( ) => < TabsLinkInteractive /> ,
179
+ } ;
0 commit comments