mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-22 16:48:23 +01:00
104 lines
3.5 KiB
TypeScript
104 lines
3.5 KiB
TypeScript
|
// Copyright 2024, Command Line Inc.
|
||
|
// SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
import { Meta, StoryObj } from "@storybook/react";
|
||
|
import { MenuButton } from "./menubutton";
|
||
|
|
||
|
const items: MenuItem[] = [
|
||
|
{ label: "Fruit", onClick: (e) => console.log("Clicked Option 1") },
|
||
|
{
|
||
|
label: "Vegetables",
|
||
|
subItems: [
|
||
|
{ label: "Carrot", onClick: (e) => console.log("Clicked Option 2 -> 1") },
|
||
|
{ label: "Potato", onClick: (e) => console.log("Clicked Option 2 -> 2") },
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
label: "Beverages",
|
||
|
subItems: [
|
||
|
{ label: "Juice", onClick: (e) => console.log("Clicked Option 3 -> 1") },
|
||
|
{ label: "Tea", onClick: (e) => console.log("Clicked Option 3 -> 2") },
|
||
|
{
|
||
|
label: "Coffee",
|
||
|
subItems: [
|
||
|
{ label: "Espresso", onClick: (e) => console.log("Clicked Option 3 -> 3 -> 1") },
|
||
|
{ label: "Latte", onClick: (e) => console.log("Clicked Option 3 -> 3 -> 2") },
|
||
|
{ label: "Cappuccino", onClick: (e) => console.log("Clicked Option 3 -> 3 -> 3") },
|
||
|
{
|
||
|
label: "Mocha",
|
||
|
subItems: [
|
||
|
{ label: "Dark Chocolate", onClick: (e) => console.log("Clicked Option 3 -> 3 -> 4 -> 1") },
|
||
|
{
|
||
|
label: "White Chocolate",
|
||
|
onClick: (e) => console.log("Clicked Option 3 -> 3 -> 4 -> 2"),
|
||
|
},
|
||
|
{ label: "Milk Chocolate", onClick: (e) => console.log("Clicked Option 3 -> 3 -> 4 -> 3") },
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
label: "Desserts",
|
||
|
subItems: [
|
||
|
{ label: "Cake", onClick: (e) => console.log("Clicked Option 4 -> 1") },
|
||
|
{ label: "Ice Cream", onClick: (e) => console.log("Clicked Option 4 -> 2") },
|
||
|
{ label: "Cookies", onClick: (e) => console.log("Clicked Option 4 -> 3") },
|
||
|
{ label: "Brownies", onClick: (e) => console.log("Clicked Option 4 -> 4") },
|
||
|
{ label: "Cupcakes", onClick: (e) => console.log("Clicked Option 4 -> 5") },
|
||
|
{ label: "Donuts", onClick: (e) => console.log("Clicked Option 4 -> 6") },
|
||
|
{ label: "Pie", onClick: (e) => console.log("Clicked Option 4 -> 7") },
|
||
|
],
|
||
|
},
|
||
|
];
|
||
|
|
||
|
const meta: Meta<typeof MenuButton> = {
|
||
|
title: "Elements/MenuButton", // Updated title to reflect the component name
|
||
|
component: MenuButton,
|
||
|
argTypes: {
|
||
|
items: { control: "object" },
|
||
|
text: { control: "text" },
|
||
|
title: { control: "text" },
|
||
|
className: { control: "text" },
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export default meta;
|
||
|
type Story = StoryObj<typeof meta>;
|
||
|
|
||
|
const basicItems: MenuItem[] = [
|
||
|
{
|
||
|
label: "Profile",
|
||
|
onClick: () => console.log("Profile clicked"),
|
||
|
},
|
||
|
{
|
||
|
label: "Settings",
|
||
|
onClick: () => console.log("Settings clicked"),
|
||
|
},
|
||
|
{
|
||
|
label: "Logout",
|
||
|
onClick: () => console.log("Logout clicked"),
|
||
|
},
|
||
|
];
|
||
|
|
||
|
export const Default: Story = {
|
||
|
args: {
|
||
|
items: basicItems,
|
||
|
text: "Menu",
|
||
|
title: "Menu Button",
|
||
|
className: "",
|
||
|
},
|
||
|
render: (args) => <MenuButton {...args} />,
|
||
|
};
|
||
|
|
||
|
export const WithMoreItems: Story = {
|
||
|
args: {
|
||
|
items: items,
|
||
|
text: "Extended Menu",
|
||
|
title: "Extended Menu Button",
|
||
|
className: "",
|
||
|
},
|
||
|
render: (args) => <MenuButton {...args} />,
|
||
|
};
|