@@ -860,11 +860,6 @@ export function Session() {
860860 </ Match >
861861 < Match when = { message . role === "assistant" } >
862862 < AssistantMessage
863- user = {
864- messages ( ) . findLast (
865- ( item ) => item . id === ( message as AssistantMessage ) . parentID ,
866- ) as UserMessage
867- }
868863 last = { lastAssistant ( ) ?. id === message . id }
869864 message = { message as AssistantMessage }
870865 parts = { sync . data . part [ message . id ] ?? [ ] }
@@ -998,10 +993,19 @@ function UserMessage(props: {
998993 )
999994}
1000995
1001- function AssistantMessage ( props : { message : AssistantMessage ; parts : Part [ ] ; last : boolean ; user : UserMessage } ) {
996+ function AssistantMessage ( props : { message : AssistantMessage ; parts : Part [ ] ; last : boolean } ) {
1002997 const local = useLocal ( )
1003998 const { theme } = useTheme ( )
1004- const ctx = use ( )
999+ const sync = useSync ( )
1000+ const messages = createMemo ( ( ) => sync . data . message [ props . message . sessionID ] ?? [ ] )
1001+
1002+ const duration = createMemo ( ( ) => {
1003+ if ( ! props . message . time . completed ) return 0
1004+ const user = messages ( ) . find ( ( x ) => x . role === "user" && x . id === props . message . parentID )
1005+ if ( ! user ) return 0
1006+ return props . message . time . completed - user . time . created
1007+ } )
1008+
10051009 return (
10061010 < >
10071011 < For each = { props . parts } >
@@ -1047,10 +1051,7 @@ function AssistantMessage(props: { message: AssistantMessage; parts: Part[]; las
10471051 < span style = { { fg : theme . text } } > { Locale . titlecase ( props . message . mode ) } </ span > { " " }
10481052 < span style = { { fg : theme . textMuted } } > ⬝{ props . message . modelID } </ span >
10491053 < Show when = { props . message . time . completed } >
1050- < span style = { { fg : theme . textMuted } } >
1051- { " " }
1052- ⬝{ Locale . duration ( props . message . time . completed ! - props . user . time . created ) }
1053- </ span >
1054+ < span style = { { fg : theme . textMuted } } > ⬝{ Locale . duration ( duration ( ) ) } </ span >
10541055 </ Show >
10551056 </ text >
10561057 </ box >
0 commit comments