@@ -189,28 +189,44 @@ export default function RequestsPage(props: RequestsPageV2Props) {
189189 if ( currentTimeFilter && currentTimeFilter . split ( "_" ) [ 0 ] === "custom" ) {
190190 const [ _ , start , end ] = currentTimeFilter . split ( "_" ) ;
191191
192- const filter : FilterNode = {
193- left : {
194- request_response_rmt : {
195- request_created_at : {
196- gte : new Date ( start ) ,
192+ // When live mode is on, don't set an upper bound so new data can appear
193+ if ( isLive ) {
194+ const filter : FilterNode = {
195+ left : {
196+ request_response_rmt : {
197+ request_created_at : {
198+ gte : new Date ( start ) ,
199+ } ,
197200 } ,
198201 } ,
199- } ,
200- operator : "and" ,
201- right : {
202+ operator : "and" ,
203+ right : cacheFilter ,
204+ } ;
205+ return filter ;
206+ } else {
207+ const filter : FilterNode = {
202208 left : {
203209 request_response_rmt : {
204210 request_created_at : {
205- lte : new Date ( end ) ,
211+ gte : new Date ( start ) ,
206212 } ,
207213 } ,
208214 } ,
209215 operator : "and" ,
210- right : cacheFilter ,
211- } ,
212- } ;
213- return filter ;
216+ right : {
217+ left : {
218+ request_response_rmt : {
219+ request_created_at : {
220+ lte : new Date ( end ) ,
221+ } ,
222+ } ,
223+ } ,
224+ operator : "and" ,
225+ right : cacheFilter ,
226+ } ,
227+ } ;
228+ return filter ;
229+ }
214230 } else {
215231 return defaultFilter ;
216232 }
@@ -529,28 +545,44 @@ export default function RequestsPage(props: RequestsPageV2Props) {
529545 ( key : TimeInterval , value : string ) => {
530546 if ( key === "custom" ) {
531547 const [ start , end ] = value . split ( "_" ) ;
532- const filter : FilterNode = {
533- left : {
534- request_response_rmt : {
535- request_created_at : {
536- gte : new Date ( start ) ,
548+ // When live mode is on, don't set an upper bound so new data can appear
549+ if ( isLive ) {
550+ const filter : FilterNode = {
551+ left : {
552+ request_response_rmt : {
553+ request_created_at : {
554+ gte : new Date ( start ) ,
555+ } ,
537556 } ,
538557 } ,
539- } ,
540- operator : "and" ,
541- right : {
558+ operator : "and" ,
559+ right : cacheFilter ,
560+ } ;
561+ setTimeFilter ( filter ) ;
562+ } else {
563+ const filter : FilterNode = {
542564 left : {
543565 request_response_rmt : {
544566 request_created_at : {
545- lte : new Date ( end ) ,
567+ gte : new Date ( start ) ,
546568 } ,
547569 } ,
548570 } ,
549571 operator : "and" ,
550- right : cacheFilter ,
551- } ,
552- } ;
553- setTimeFilter ( filter ) ;
572+ right : {
573+ left : {
574+ request_response_rmt : {
575+ request_created_at : {
576+ lte : new Date ( end ) ,
577+ } ,
578+ } ,
579+ } ,
580+ operator : "and" ,
581+ right : cacheFilter ,
582+ } ,
583+ } ;
584+ setTimeFilter ( filter ) ;
585+ }
554586 } else {
555587 setTimeFilter ( {
556588 request_response_rmt : {
@@ -561,7 +593,7 @@ export default function RequestsPage(props: RequestsPageV2Props) {
561593 } ) ;
562594 }
563595 } ,
564- [ isCached , setTimeFilter ] ,
596+ [ isCached , isLive , setTimeFilter ] ,
565597 ) ;
566598
567599 // if shift is pressed, we select the rows in the highlighted range
@@ -610,6 +642,15 @@ export default function RequestsPage(props: RequestsPageV2Props) {
610642 /* -------------------------------------------------------------------------- */
611643 /* EFFECTS */
612644 /* -------------------------------------------------------------------------- */
645+ // When isLive changes, re-apply the time filter to add/remove upper bound
646+ useEffect ( ( ) => {
647+ const currentTimeFilter = searchParams . get ( "t" ) ;
648+ if ( currentTimeFilter && currentTimeFilter . split ( "_" ) [ 0 ] === "custom" ) {
649+ const [ , start , end ] = currentTimeFilter . split ( "_" ) ;
650+ onTimeSelectHandler ( "custom" as TimeInterval , `${ start } _${ end } ` ) ;
651+ }
652+ } , [ isLive ] ) ;
653+
613654 // Synchronize page state from URL query parameters
614655 useEffect ( ( ) => {
615656 const pageFromQuery = router . query . page ;
0 commit comments