mirror of
https://github.com/vercel/commerce.git
synced 2025-04-01 17:55:54 +00:00
* Updated log * Updates to root * Updates to pnpm * successfully moved to pnpm * type issue * Local as the default provider * Upgrade dependencies * Revert to local * Upgrade React * Update node-fetch deps * Fix types * Ignore warnings * Fix missing dependency * Update pnpm-lock.yaml * Add missing @types/cookie * Upgrade dependencies * Fix missing dependencies * Update README.md Co-authored-by: Bel Curcio <curciobel@gmail.com>
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import React, { FC, ReactNode } from 'react'
|
|
import { Cross, ChevronLeft } from '@components/icons'
|
|
import { UserNav } from '@components/common'
|
|
import cn from 'clsx'
|
|
import s from './SidebarLayout.module.css'
|
|
|
|
type ComponentProps = { className?: string; children?: ReactNode } & (
|
|
| { handleClose: () => any; handleBack?: never }
|
|
| { handleBack: () => any; handleClose?: never }
|
|
)
|
|
|
|
const SidebarLayout: FC<ComponentProps> = ({
|
|
children,
|
|
className,
|
|
handleBack,
|
|
handleClose,
|
|
}) => {
|
|
return (
|
|
<div className={cn(s.root, className)}>
|
|
<header className={s.header}>
|
|
{handleClose && (
|
|
<button
|
|
onClick={handleClose}
|
|
aria-label="Close"
|
|
className="hover:text-accent-5 transition ease-in-out duration-150 flex items-center focus:outline-none mr-6"
|
|
>
|
|
<Cross className="h-6 w-6 hover:text-accent-3" />
|
|
<span className="ml-2 text-accent-7 text-sm ">Close</span>
|
|
</button>
|
|
)}
|
|
{handleBack && (
|
|
<button
|
|
onClick={handleBack}
|
|
aria-label="Go back"
|
|
className="hover:text-accent-5 transition ease-in-out duration-150 flex items-center focus:outline-none"
|
|
>
|
|
<ChevronLeft className="h-6 w-6 hover:text-accent-3" />
|
|
<span className="ml-2 text-accent-7 text-xs">Back</span>
|
|
</button>
|
|
)}
|
|
|
|
<UserNav />
|
|
</header>
|
|
<div className={s.container}>{children}</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default SidebarLayout
|