fix: 修复频道过长无法滚动的问题

release/desktop
moonrailgun 5 years ago
parent 6e0f4588e4
commit 5de2480ee2

@ -0,0 +1,18 @@
import React from 'react';
interface CommonSidebarProps {
['data-tc-role']?: string;
}
export const CommonSidebarWrapper: React.FC<CommonSidebarProps> = React.memo(
(props) => {
return (
<div
className="h-full flex flex-col"
data-tc-role={props['data-tc-role']}
>
{props.children}
</div>
);
}
);
CommonSidebarWrapper.displayName = 'CommonSidebarWrapper';

@ -10,6 +10,7 @@ import { GroupHeader } from './GroupHeader';
import { GroupSection } from '@/components/GroupSection'; import { GroupSection } from '@/components/GroupSection';
import { GroupPanelItem } from '@/components/GroupPanelItem'; import { GroupPanelItem } from '@/components/GroupPanelItem';
import { GroupTextPanelItem } from './TextPanelItem'; import { GroupTextPanelItem } from './TextPanelItem';
import { CommonSidebarWrapper } from '@/components/CommonSidebarWrapper';
interface GroupParams { interface GroupParams {
groupId: string; groupId: string;
@ -35,10 +36,10 @@ export const Sidebar: React.FC = React.memo(() => {
); );
return ( return (
<div data-tc-role="sidebar-group"> <CommonSidebarWrapper data-tc-role="sidebar-group">
<GroupHeader groupId={groupId} /> <GroupHeader groupId={groupId} />
<div className="p-2 space-y-1"> <div className="p-2 space-y-1 overflow-auto">
{groupPanels {groupPanels
.filter((panel) => !isValidStr(panel.parentId)) .filter((panel) => !isValidStr(panel.parentId))
.map((panel) => .map((panel) =>
@ -55,7 +56,7 @@ export const Sidebar: React.FC = React.memo(() => {
) )
)} )}
</div> </div>
</div> </CommonSidebarWrapper>
); );
}); });
Sidebar.displayName = 'Sidebar'; Sidebar.displayName = 'Sidebar';

@ -7,6 +7,7 @@ import { openModal } from '@/components/Modal';
import { CreateDMConverse } from '@/components/modals/CreateDMConverse'; import { CreateDMConverse } from '@/components/modals/CreateDMConverse';
import { DevContainer } from '@/components/DevContainer'; import { DevContainer } from '@/components/DevContainer';
import { SectionHeader } from '@/components/SectionHeader'; import { SectionHeader } from '@/components/SectionHeader';
import { CommonSidebarWrapper } from '@/components/CommonSidebarWrapper';
const SidebarSection: React.FC<{ const SidebarSection: React.FC<{
action: React.ReactNode; action: React.ReactNode;
@ -32,10 +33,10 @@ export const PersonalSidebar: React.FC = React.memo(() => {
const userInfo = useUserInfo(); const userInfo = useUserInfo();
return ( return (
<div data-tc-role="sidebar-personal"> <CommonSidebarWrapper data-tc-role="sidebar-personal">
<SectionHeader>{userInfo?.nickname}</SectionHeader> <SectionHeader>{userInfo?.nickname}</SectionHeader>
<div className="p-2"> <div className="p-2 overflow-auto">
<SidebarItem <SidebarItem
name={t('好友')} name={t('好友')}
icon={<Icon icon="mdi:account-multiple" />} icon={<Icon icon="mdi:account-multiple" />}
@ -62,7 +63,7 @@ export const PersonalSidebar: React.FC = React.memo(() => {
return <SidebarDMItem key={converse._id} converse={converse} />; return <SidebarDMItem key={converse._id} converse={converse} />;
})} })}
</div> </div>
</div> </CommonSidebarWrapper>
); );
}); });
PersonalSidebar.displayName = 'PersonalSidebar'; PersonalSidebar.displayName = 'PersonalSidebar';

Loading…
Cancel
Save