perf: add virtual list of inbox list

pull/249/head
moonrailgun 7 months ago
parent f09f7017bd
commit 68ea354e3c

@ -21,6 +21,7 @@ import { PillTabPane, PillTabs } from '@/components/PillTabs';
import { SectionHeader } from '@/components/SectionHeader'; import { SectionHeader } from '@/components/SectionHeader';
import { openReconfirmModalP } from '@/components/Modal'; import { openReconfirmModalP } from '@/components/Modal';
import { CommonSidebarWrapper } from '@/components/CommonSidebarWrapper'; import { CommonSidebarWrapper } from '@/components/CommonSidebarWrapper';
import { Virtuoso } from 'react-virtuoso';
const buildLink = (itemId: string) => `/main/inbox/${itemId}`; const buildLink = (itemId: string) => `/main/inbox/${itemId}`;
@ -135,18 +136,31 @@ export const InboxSidebar: React.FC = React.memo(() => {
{t('收件箱')} {t('收件箱')}
</SectionHeader> </SectionHeader>
<div className="overflow-hidden"> <div className="overflow-hidden flex-1">
<PillTabs <PillTabs
className="h-full"
items={[ items={[
{ {
key: '1', key: '1',
label: `${t('全部')}`, label: `${t('全部')}`,
children: <>{fullList.map((item) => renderInbox(item))}</>, children: (
<Virtuoso
className="h-full"
data={fullList}
itemContent={(index, item) => renderInbox(item)}
/>
),
}, },
{ {
key: '2', key: '2',
label: `${t('未读')} (${unreadList.length})`, label: `${t('未读')} (${unreadList.length})`,
children: <>{unreadList.map((item) => renderInbox(item))}</>, children: (
<Virtuoso
className="h-full"
data={unreadList}
itemContent={(index, item) => renderInbox(item)}
/>
),
}, },
]} ]}
/> />

Loading…
Cancel
Save