import { action } from 'storybook/actions'; import { useArgs } from 'storybook/preview-api'; import { Meta, StoryObj } from '@storybook/react-webpack5'; import React, { useState } from 'react'; import { LateralNavbarLayout, Loader } from '../src/lib'; import { Sidebar } from '../src/lib/components/sidebar/Sidebar.component'; type Story = StoryObj; const actions = [ { label: 'Dashboard', icon: , onClick: action('dashboard clicked'), active: true, }, { label: 'Servers', icon: , onClick: action('server clicked'), }, { label: 'Disks', icon: , onClick: action('disk clicked'), }, ]; const meta: Meta = { title: 'Components/Navigation/Sidebar', component: Sidebar, args: { actions, }, parameters: { layout: 'fullscreen', }, }; export default meta; export const DefaultSidebar: Story = {}; export const ExpandedSidebar: Story = { args: { expanded: true, }, }; export const SidebarWithToggle: Story = { render: (args) => { const [{ expanded }, updateArgs] = useArgs(); return ( updateArgs({ expanded: !expanded })} {...args} /> ); }, }; export const HoverableSidebar: Story = { args: { hoverable: true, }, }; export const SidebarInLayout: StoryObj = { render: (args) => { return ( ); }, }; export const SidebarinLayoutWithToggle: Story = { render: (args) => { const [expandedWithToggle, setExpandedWithToggle] = useState(false); return ( { setExpandedWithToggle(!expandedWithToggle); }, ...args, }} > ); }, };