11import {
2- EventName ,
32 MessageStatus ,
43 ExtensionType ,
54 ThreadMessage ,
6- events ,
75 ChatCompletionRole ,
86} from '@janhq/core'
9- import { ConversationalExtension , InferenceExtension } from '@janhq/core'
7+ import { ConversationalExtension } from '@janhq/core'
108import { useAtomValue , useSetAtom } from 'jotai'
11- import { RefreshCcw , Copy , Trash2Icon , StopCircle } from 'lucide-react'
9+ import { RefreshCcw , Copy , Trash2Icon } from 'lucide-react'
1210
1311import { twMerge } from 'tailwind-merge'
1412
@@ -29,17 +27,6 @@ const MessageToolbar = ({ message }: { message: ThreadMessage }) => {
2927 const messages = useAtomValue ( getCurrentChatMessagesAtom )
3028 const { resendChatMessage } = useSendChatMessage ( )
3129
32- const onStopInferenceClick = async ( ) => {
33- events . emit ( EventName . OnInferenceStopped , { } )
34-
35- setTimeout ( ( ) => {
36- events . emit ( EventName . OnMessageUpdate , {
37- ...message ,
38- status : MessageStatus . Ready ,
39- } )
40- } , 300 )
41- }
42-
4330 const onDeleteClick = async ( ) => {
4431 deleteMessage ( message . id ?? '' )
4532 if ( thread ) {
@@ -60,26 +47,19 @@ const MessageToolbar = ({ message }: { message: ThreadMessage }) => {
6047 resendChatMessage ( message )
6148 }
6249
50+ if ( message . status !== MessageStatus . Ready ) return null
51+
6352 return (
6453 < div className = { twMerge ( 'flex flex-row items-center' ) } >
6554 < div className = "flex overflow-hidden rounded-md border border-border bg-background/20" >
66- { message . status === MessageStatus . Pending && (
55+ { message . id === messages [ messages . length - 1 ] ?. id && (
6756 < div
6857 className = "cursor-pointer border-r border-border px-2 py-2 hover:bg-background/80"
69- onClick = { onStopInferenceClick }
58+ onClick = { onRegenerateClick }
7059 >
71- < StopCircle size = { 14 } />
60+ < RefreshCcw size = { 14 } />
7261 </ div >
7362 ) }
74- { message . status !== MessageStatus . Pending &&
75- message . id === messages [ messages . length - 1 ] ?. id && (
76- < div
77- className = "cursor-pointer border-r border-border px-2 py-2 hover:bg-background/80"
78- onClick = { onRegenerateClick }
79- >
80- < RefreshCcw size = { 14 } />
81- </ div >
82- ) }
8363 < div
8464 className = "cursor-pointer border-r border-border px-2 py-2 hover:bg-background/80"
8565 onClick = { ( ) => {
@@ -91,14 +71,12 @@ const MessageToolbar = ({ message }: { message: ThreadMessage }) => {
9171 >
9272 < Copy size = { 14 } />
9373 </ div >
94- { message . status === MessageStatus . Ready && (
95- < div
96- className = "cursor-pointer px-2 py-2 hover:bg-background/80"
97- onClick = { onDeleteClick }
98- >
99- < Trash2Icon size = { 14 } />
100- </ div >
101- ) }
74+ < div
75+ className = "cursor-pointer px-2 py-2 hover:bg-background/80"
76+ onClick = { onDeleteClick }
77+ >
78+ < Trash2Icon size = { 14 } />
79+ </ div >
10280 </ div >
10381 </ div >
10482 )
0 commit comments