perf: optimize group drag positioning

pull/146/head
moonrailgun 2 years ago
parent 70151af0bb
commit 2adfe923af

@ -1,7 +1,7 @@
import { Avatar, Icon } from 'tailchat-design';
import { openModal } from '@/components/Modal';
import { ModalCreateGroup } from '@/components/modals/CreateGroup';
import React, { useMemo } from 'react';
import React, { useMemo, useRef } from 'react';
import {
GroupInfo,
showSuccessToasts,
@ -101,6 +101,7 @@ function useGroupList() {
}
export const GroupNav: React.FC = React.memo(() => {
const containerRef = useRef<HTMLDivElement>(null);
const { groupList, handleSortEnd } = useGroupList();
const handleCreateGroup = useEvent(() => {
@ -112,12 +113,16 @@ export const GroupNav: React.FC = React.memo(() => {
}));
return (
<div className="space-y-2" data-tc-role="navbar-groups">
<div className="space-y-2" data-tc-role="navbar-groups" ref={containerRef}>
{Array.isArray(groupList) && (
<SortableList className="space-y-2" onSortEnd={handleSortEnd}>
<SortableList
className="space-y-2"
onSortEnd={handleSortEnd}
customHolderRef={containerRef}
>
{groupList.map((group) => (
<SortableItem key={group._id}>
<div>
<div className="overflow-hidden">
<GroupNavItem group={group} />
</div>
</SortableItem>

Loading…
Cancel
Save