@@ -230,28 +230,28 @@ function createGlobalSync() {
230230 } ) ,
231231 sdk . question . list ( ) . then ( ( x ) => {
232232 const grouped : Record < string , QuestionRequest [ ] > = { }
233- for ( const request of x . data ?? [ ] ) {
234- if ( ! request ?. id || ! request . sessionID ) continue
235- const existing = grouped [ request . sessionID ]
233+ for ( const question of x . data ?? [ ] ) {
234+ if ( ! question ?. id || ! question . sessionID ) continue
235+ const existing = grouped [ question . sessionID ]
236236 if ( existing ) {
237- existing . push ( request )
237+ existing . push ( question )
238238 continue
239239 }
240- grouped [ request . sessionID ] = [ request ]
240+ grouped [ question . sessionID ] = [ question ]
241241 }
242242
243243 batch ( ( ) => {
244244 for ( const sessionID of Object . keys ( store . question ) ) {
245245 if ( grouped [ sessionID ] ) continue
246246 setStore ( "question" , sessionID , [ ] )
247247 }
248- for ( const [ sessionID , requests ] of Object . entries ( grouped ) ) {
248+ for ( const [ sessionID , questions ] of Object . entries ( grouped ) ) {
249249 setStore (
250250 "question" ,
251251 sessionID ,
252252 reconcile (
253- requests
254- . filter ( ( request ) => ! ! request ?. id )
253+ questions
254+ . filter ( ( q ) => ! ! q ?. id )
255255 . slice ( )
256256 . sort ( ( a , b ) => a . id . localeCompare ( b . id ) ) ,
257257 { key : "id" } ,
@@ -448,38 +448,40 @@ function createGlobalSync() {
448448 )
449449 break
450450 }
451- case "question.replied" :
452- case "question.rejected" : {
453- const requests = store . question [ event . properties . sessionID ]
454- if ( ! requests ) break
455- const result = Binary . search ( requests , event . properties . requestID , ( r ) => r . id )
456- if ( ! result . found ) break
451+ case "question.asked" : {
452+ const sessionID = event . properties . sessionID
453+ const questions = store . question [ sessionID ]
454+ if ( ! questions ) {
455+ setStore ( "question" , sessionID , [ event . properties ] )
456+ break
457+ }
458+
459+ const result = Binary . search ( questions , event . properties . id , ( q ) => q . id )
460+ if ( result . found ) {
461+ setStore ( "question" , sessionID , result . index , reconcile ( event . properties ) )
462+ break
463+ }
464+
457465 setStore (
458466 "question" ,
459- event . properties . sessionID ,
467+ sessionID ,
460468 produce ( ( draft ) => {
461- draft . splice ( result . index , 1 )
469+ draft . splice ( result . index , 0 , event . properties )
462470 } ) ,
463471 )
464472 break
465473 }
466- case "question.asked" : {
467- const request = event . properties
468- const requests = store . question [ request . sessionID ]
469- if ( ! requests ) {
470- setStore ( "question" , request . sessionID , [ request ] )
471- break
472- }
473- const result = Binary . search ( requests , request . id , ( r ) => r . id )
474- if ( result . found ) {
475- setStore ( "question" , request . sessionID , result . index , reconcile ( request ) )
476- break
477- }
474+ case "question.replied" :
475+ case "question.rejected" : {
476+ const questions = store . question [ event . properties . sessionID ]
477+ if ( ! questions ) break
478+ const result = Binary . search ( questions , event . properties . requestID , ( q ) => q . id )
479+ if ( ! result . found ) break
478480 setStore (
479481 "question" ,
480- request . sessionID ,
482+ event . properties . sessionID ,
481483 produce ( ( draft ) => {
482- draft . splice ( result . index , 0 , request )
484+ draft . splice ( result . index , 1 )
483485 } ) ,
484486 )
485487 break
0 commit comments