feat: 增加移动端页面侧边栏的切换

pull/13/head
moonrailgun 4 years ago
parent ef8bb122dc
commit fcf0746bed

@ -77,8 +77,9 @@ export const PageContent: React.FC<PageContentProps> = React.memo((props) => {
const sidebarEl = _isNil(sidebar) ? null : (
<div
className={clsx('bg-gray-800 flex-shrink-0', {
className={clsx('bg-gray-800 flex-shrink-0 transition-width', {
'w-60': showSidebar,
'w-0': !showSidebar,
})}
>
{props.sidebar}

@ -0,0 +1,26 @@
import { useIsMobile } from '@/hooks/useIsMobile';
import { Icon } from '@iconify/react';
import React, { useCallback } from 'react';
import { useSidebarContext } from '../SidebarContext';
export const MobileMenuBtn: React.FC = React.memo(() => {
const { showSidebar, setShowSidebar } = useSidebarContext();
const isMobile = useIsMobile();
const handleSwitchSidebar = useCallback(() => {
setShowSidebar(!showSidebar);
}, [showSidebar]);
if (!isMobile) {
return null;
}
return (
<Icon
className="text-5xl mb-4"
icon={showSidebar ? 'mdi-menu-open' : 'mdi-menu'}
onClick={handleSwitchSidebar}
/>
);
});
MobileMenuBtn.displayName = 'MobileMenuBtn';

@ -4,6 +4,7 @@ import { Icon } from '@iconify/react';
import { Avatar } from '@/components/Avatar';
import { NavbarNavItem } from './NavItem';
import { GroupNav } from './GroupNav';
import { MobileMenuBtn } from './MobileMenuBtn';
/**
*
@ -13,6 +14,8 @@ export const Navbar: React.FC = React.memo(() => {
return (
<div className="w-18 bg-gray-900 flex flex-col justify-start items-center pt-4 pb-4 p-1">
<MobileMenuBtn />
{/* Navbar */}
<div className="flex-1">
<NavbarNavItem to={'/main/personal'}>

@ -64,6 +64,9 @@ module.exports = {
boxShadow: {
...customTheme.boxShadow,
},
transitionProperty: {
width: 'width',
},
},
},
variants: {

Loading…
Cancel
Save