From 1d04796ca0bd68627579cf348f77c8cc35fb0442 Mon Sep 17 00:00:00 2001 From: sijinhui Date: Tue, 24 Sep 2024 23:07:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/chat-list.tsx | 193 ++++++++++++++++++++--------------- 1 file changed, 108 insertions(+), 85 deletions(-) diff --git a/app/components/chat-list.tsx b/app/components/chat-list.tsx index 508a260a7..c562e5eb1 100644 --- a/app/components/chat-list.tsx +++ b/app/components/chat-list.tsx @@ -32,6 +32,7 @@ export function ChatItem(props: { index: number; narrow?: boolean; mask: Mask; + provided; }) { const draggableRef = useRef(null); useEffect(() => { @@ -44,62 +45,54 @@ export function ChatItem(props: { const { pathname: currentPath } = useLocation(); return ( - - {(provided) => ( -
{ - draggableRef.current = ele; - provided.innerRef(ele); - }} - {...provided.draggableProps} - {...provided.dragHandleProps} - title={`${props.title}\n${Locale.ChatItem.ChatItemCount( - props.count, - )}`} - > - {props.narrow ? ( -
-
- -
-
- {props.count} -
-
- ) : ( - <> -
{props.title}
-
-
- {Locale.ChatItem.ChatItemCount(props.count)} -
-
{props.time}
-
- - )} - -
{ - props.onDelete?.(); - e.preventDefault(); - e.stopPropagation(); - }} - > - +
{ + draggableRef.current = ele; + props.provided.innerRef(ele); + }} + {...props.provided.draggableProps} + {...props.provided.dragHandleProps} + title={`${props.title}\n${Locale.ChatItem.ChatItemCount(props.count)}`} + > + {props.narrow ? ( +
+
+
+
{props.count}
+ ) : ( + <> +
{props.title}
+
+
+ {Locale.ChatItem.ChatItemCount(props.count)} +
+
{props.time}
+
+ )} - + +
{ + props.onDelete?.(); + e.preventDefault(); + e.stopPropagation(); + }} + > + +
+
); } @@ -133,12 +126,39 @@ export function ChatList(props: { narrow?: boolean }) { }; return ( - - - {(provided) => ( + + ( + { + navigate(Path.Chat); + selectSession(rubic.source.index); + }} + onDelete={async () => { + if ( + (!props.narrow && !isMobileScreen) || + (await showConfirm(Locale.Home.DeleteChat)) + ) { + chatStore.deleteSession(rubic.source.index); + } + }} + narrow={props.narrow} + mask={sessions[rubic.source.index].mask} + provided={provided} + /> + )} + > + {(provided, snapshot) => (
{sessions.map((item, i) => ( -
- { - navigate(Path.Chat); - selectSession(i); - }} - onDelete={async () => { - if ( - (!props.narrow && !isMobileScreen) || - (await showConfirm(Locale.Home.DeleteChat)) - ) { - chatStore.deleteSession(i); - } - }} - narrow={props.narrow} - mask={item.mask} - /> +
+ + {(provided, snapshot) => ( + { + navigate(Path.Chat); + selectSession(i); + }} + onDelete={async () => { + if ( + (!props.narrow && !isMobileScreen) || + (await showConfirm(Locale.Home.DeleteChat)) + ) { + chatStore.deleteSession(i); + } + }} + narrow={props.narrow} + mask={item.mask} + provided={provided} + /> + )} +
))}