diff --git a/.changeset/cold-wolves-play.md b/.changeset/cold-wolves-play.md new file mode 100644 index 00000000..0bdd8ea9 --- /dev/null +++ b/.changeset/cold-wolves-play.md @@ -0,0 +1,5 @@ +--- +"@cambly/syntax-core": minor +--- + +Tabs.Link: fix selected state on=darkBackground diff --git a/packages/syntax-core/src/Tabs/TabLink.tsx b/packages/syntax-core/src/Tabs/TabLink.tsx index c2a27173..4a1c9569 100644 --- a/packages/syntax-core/src/Tabs/TabLink.tsx +++ b/packages/syntax-core/src/Tabs/TabLink.tsx @@ -57,7 +57,7 @@ const TabLink = forwardRef( [styles.unselectedTab]: !selected, [styles.selectedTabOnLightBackground]: selected && on === "lightBackground", - [styles.selectedTabDarkBackground]: + [styles.selectedTabOnDarkBackground]: selected && on === "darkBackground", })} style={{ diff --git a/packages/syntax-core/src/Tabs/Tabs.stories.tsx b/packages/syntax-core/src/Tabs/Tabs.stories.tsx index 909df3dd..550f7155 100644 --- a/packages/syntax-core/src/Tabs/Tabs.stories.tsx +++ b/packages/syntax-core/src/Tabs/Tabs.stories.tsx @@ -3,6 +3,7 @@ import { type StoryObj, type Meta } from "@storybook/react"; import Tabs from "./Tabs"; import Badge from "../Badge/Badge"; import Box from "../Box/Box"; +import SelectList from "../SelectList/SelectList"; export default { title: "Components/Tabs", @@ -29,7 +30,7 @@ export default { const TabsButtonInteractive = ({ on, }: { - on: "lightBackground" | "darkBackground"; + on?: "lightBackground" | "darkBackground"; }) => { const [selected, setSelected] = useState< "Achievements" | "History" | "Quizzes" | "Levels" | "Tabatha" | "Tabathy" @@ -81,74 +82,83 @@ const TabsButtonInteractive = ({ ); }; -const TabsLinkInteractive = ({ - on, -}: { - on: "lightBackground" | "darkBackground"; -}) => { +const TabsLinkInteractive = () => { const [selected, setSelected] = useState<"Tabrell" | "Tabara" | "Tabson">( "Tabrell", ); - - return ( - - setSelected("Tabrell")} - selected={selected === "Tabrell"} - on={on} - /> - setSelected("Tabara")} - selected={selected === "Tabara"} - on={on} - /> - setSelected("Tabson")} - selected={selected === "Tabson"} - on={on} - /> - + const [on, setOn] = useState<"lightBackground" | "darkBackground">( + "lightBackground", ); -}; -export const Default: StoryObj< - ComponentProps & { on: "lightBackground" | "darkBackground" } -> = { - args: { accessibilityLabel: "My custom tabs" }, - render: (args) => { - return ( + return ( + + + setOn( + event.target.value === "lightBackground" + ? "lightBackground" + : "darkBackground", + ) + } + > + + + - + + setSelected("Tabrell")} + selected={selected === "Tabrell"} + on={on} + /> + setSelected("Tabara")} + selected={selected === "Tabara"} + on={on} + /> + setSelected("Tabson")} + selected={selected === "Tabson"} + on={on} + /> + - ); - }, + + ); }; -export const Link: StoryObj< - ComponentProps & { on: "lightBackground" | "darkBackground" } -> = { +export const Default: StoryObj> = { args: { accessibilityLabel: "My custom tabs" }, render: (args) => { return ( - + ); }, }; + +export const Link: StoryObj> = { + render: () => , +};