@maruware/material-ui-basic-layout
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

Material UI Basic Layout

Simple Basic Layout using Material UI

screenshot

Install

yarn add @maruware/material-ui-basic-layout

Usage

import React, { useState } from 'react'
import { BasicLayout, DrawerMenu } from '@maruware/material-ui-basic-layout'

import DashboardIcon from '@material-ui/icons/Dashboard'
import PostIcon from '@material-ui/icons/PhotoCamera'
import { useRouter } from 'next/router'

export interface DefaultLayoutProps {
  title: string
}

export const DefaultLayout: React.FC<DefaultLayoutProps> = ({
  title,
  children,
}) => {
  const [menues] = useState<DrawerMenu[]>([
    { name: 'Dashboard', path: '/', icon: DashboardIcon },
    { name: 'Posts', path: '/posts', icon: PostIcon },
  ])

  const router = useRouter()
  const handleChangePath = (path: string) => router.push(path)
  const handleCheckActive = (path: string) => router.pathname === path
  const handleLogout = () => console.log('logout')
  return (
    <BasicLayout
      title={title}
      menues={menues}
      onChangePath={handleChangePath}
      onCheckActive={handleCheckActive}
      onLogout={handleLogout}
    >
      {children}
    </BasicLayout>
  )
}
import React from 'react'
import { Dashboard } from './Dashboard'
import { DefaultLayout } from './DefaultLayout'

export default function DashboardPage() {
  return (
    <DefaultLayout title="Dashboard">
      <Dashboard />
    </DefaultLayout>
  )
}

If you use react-router, replace onChangePath and onCheckActive.

Readme

Keywords

none

Package Sidebar

Install

npm i @maruware/material-ui-basic-layout

Weekly Downloads

0

Version

0.0.4

License

MIT

Unpacked Size

15 kB

Total Files

14

Last publish

Collaborators

  • maruware