0.0.4 • Published 5 years ago

@maruware/material-ui-basic-layout v0.0.4

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

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.