1.0.3 • Published 4 months ago

digital-dojo-sidebar v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

Digital-dojo-sidebar

This is the sidebar with curves for the digital dojo company

Installation

Install digital-dojo-sidebar with npm

  npm install digital-dojo-sidebar 

Or using yarn

  yarn add digital-dojo-sidebar 

API Reference

The items to run

Consists of 3 parts : navItems and footer items and navLists and should be in the same order together

Nav items and Footer items props:

ParameterTypeDescription
namestringRequired
pathstringOptional
iconstringRequired
suffixstringOptional
subItemsstringOptional
idstringOptional
actionstringOptional

Nav List:

ParameterTypeDescription
pathsArray of stringsRequired. Id of item to fetch

example: "/path1","/path2"

Other Props:

ParameterTypeDescription
expandedbooleanOptional Default false
collapsedbooleanOptional Default false
toggledbooleanOptional Default false
brokenbooleanOptional Default false
rtlbooleanOptional Default false
themestringOptional light or dark
openbooleanOptional Default true
navItemsNavItem[]Required
navListstring[]Required
setOpen()(e:boolean)=>anyOptional
setToggled()(e:boolean)=>anyOptional
setBroken()(e:boolean)=>anyOptional
setExpanded()(e:boolean)=>anyOptional
sidebarHeaderReact.JSX.ElementOptional
handleLogout()()=>anyOptional
FooterItemsNavItem[]Required
pathstringRequired "/path"
paramsanyOptional useParams() from nextJs
searchParamsanyOptional useSearchParams
idstringRequired id from the current route
handleRouteChange()(e:string)=>anyRequired
menuItemStylesMenuItemStylesRequired
themesanyRequired

Usage/Example

  navItems = [
    {
      name: `Item 1`, // Random name
      path: `/path1`, // Random path
      icon: (props) => <SubItemIcon {...props} />,
      subItems: [], // Empty array for subItems
      id: "fdsfdsg", // Random id
    },
    {
      name: `Item 2`, // Random name
      path: `/path2`, // Random path
      icon: (props) => <SubItemIcon {...props} />,
      subItems: [], // Empty array for subItems
      id: "tyuktmtk", // Random id
    },
    {
      name: `Item 3`, // Random name
      path: `/path3`, // Random path
      icon: (props) => <SubItemIcon {...props} />,
      subItems: [
        {
          name: "Test 1",
          path: "test/test1",
          icon: SubItemIcon,
        },
        {
          name: "Test 2",
          path: "test/test2",
          icon: SubItemIcon,
        },
        {
          name: "Test 3",
          path: "test/test3",
          icon: SubItemIcon,
        },
      ],
      id: "luiolui;", // Random id
    },
  ]
navList = ["/path1", "/path2", "/path3"]
import { SidebarLayout } from "digital-dojo-sidebar/dist";

function App() {
    return (
    <div className="h-screen">
      <LogoutDialog />
      <SidebarLayout
        open={true}
        navItems={translatedNavItems}
        navList={navList}
        FooterItems={translatedFooterItems as any}
        path={path || "/"}
        params={param}
        id={(id as string) || ""}
        collapsed={collapsed}
        expanded={expanded}
        broken={broken}
        toggled={toggled}
        setBroken={(e: boolean) => {
          dispatch(setBroken(e));
        }}
        setExpanded={(e: boolean) => {
          dispatch(setExpanded(e));
        }}
        setOpen={(e: any) => {
          dispatch(setOpen(e));
        }}
        setToggled={(e: boolean) => {
          dispatch(setToggled(e));
        }}
        theme="light"
        rtl={rtl}
        handleLogout={() => {
          dispatch(setLogoutDialog(true));
        }}
        handleRouteChange={(path: string) => {
          router.push(path);
        }}
        sidebarHeader={<SidebarHeader />}
        menuItemStyles={menuItemStyles}
        themes={themes}
      />
    </div>
  );
}
1.0.3

4 months ago

1.0.2

4 months ago

1.0.1

4 months ago

1.0.0

4 months ago