@@ -2,36 +2,15 @@ import { useSearchParams } from 'react-router-dom';
22import { PollingMode } from 'generated-sources' ;
33import { useEffect } from 'react' ;
44import { Option } from 'react-multi-select-component' ;
5- import { ObjectValues } from 'lib/types ' ;
5+ import { MessagesFilterKeys } from 'lib/constants ' ;
66
77import { convertStrToPollingMode , ModeOptions } from './filterUtils' ;
88import {
99 AdvancedFilter ,
1010 selectFilter ,
1111 useMessageFiltersStore ,
1212} from './useMessageFiltersStore' ;
13-
14- /**
15- * @description !! Note !!
16- * Key value should match
17- * */
18- export const MessagesFilterKeys = {
19- mode : 'mode' ,
20- timestamp : 'timestamp' ,
21- keySerde : 'keySerde' ,
22- valueSerde : 'valueSerde' ,
23- limit : 'limit' ,
24- offset : 'offset' ,
25- stringFilter : 'stringFilter' ,
26- partitions : 'partitions' ,
27- smartFilterId : 'smartFilterId' ,
28- activeFilterId : 'activeFilterId' ,
29- activeFilterNPId : 'activeFilterNPId' , // not persisted filter name to indicate the refresh
30- cursor : 'cursor' ,
31- r : 'r' , // used tp force refresh of the data
32- } as const ;
33-
34- export type MessagesFilterKeysTypes = ObjectValues < typeof MessagesFilterKeys > ;
13+ import { useMessagesFiltersFields } from './useMessagesFiltersFields' ;
3514
3615const PER_PAGE = 100 ;
3716
@@ -80,12 +59,18 @@ export function usePaginateTopics(initSearchParams?: URLSearchParams) {
8059 } ;
8160}
8261
83- export function useMessagesFilters ( ) {
62+ export function useMessagesFilters ( topicName : string ) {
8463 const [ searchParams , setSearchParams ] = useSearchParams ( ) ;
8564 const refreshData = useRefreshData ( searchParams ) ;
65+ const {
66+ initMessagesFiltersFields,
67+ setMessagesFiltersField,
68+ removeMessagesFiltersField,
69+ } = useMessagesFiltersFields ( topicName ) ;
8670
8771 useEffect ( ( ) => {
8872 setSearchParams ( ( params ) => {
73+ initMessagesFiltersFields ( params ) ;
8974 params . set ( MessagesFilterKeys . limit , PER_PAGE . toString ( ) ) ;
9075
9176 if ( ! params . get ( MessagesFilterKeys . mode ) ) {
@@ -140,8 +125,10 @@ export function useMessagesFilters() {
140125 * */
141126 const setMode = ( newMode : PollingMode ) => {
142127 setSearchParams ( ( params ) => {
128+ removeMessagesFiltersField ( MessagesFilterKeys . offset ) ;
129+ removeMessagesFiltersField ( MessagesFilterKeys . timestamp ) ;
130+ setMessagesFiltersField ( MessagesFilterKeys . mode , newMode ) ;
143131 params . set ( MessagesFilterKeys . mode , newMode ) ;
144-
145132 params . delete ( MessagesFilterKeys . offset ) ;
146133 params . delete ( MessagesFilterKeys . timestamp ) ;
147134 return params ;
@@ -151,13 +138,18 @@ export function useMessagesFilters() {
151138 const setTimeStamp = ( newDate : Date | null ) => {
152139 if ( newDate === null ) {
153140 setSearchParams ( ( params ) => {
141+ removeMessagesFiltersField ( MessagesFilterKeys . timestamp ) ;
154142 params . delete ( MessagesFilterKeys . timestamp ) ;
155143 return params ;
156144 } ) ;
157145 return ;
158146 }
159147
160148 setSearchParams ( ( params ) => {
149+ setMessagesFiltersField (
150+ MessagesFilterKeys . timestamp ,
151+ newDate . getTime ( ) . toString ( )
152+ ) ;
161153 params . set ( MessagesFilterKeys . timestamp , newDate . getTime ( ) . toString ( ) ) ;
162154 return params ;
163155 } ) ;
@@ -166,19 +158,22 @@ export function useMessagesFilters() {
166158 const setKeySerde = ( newKeySerde : string ) => {
167159 setSearchParams ( ( params ) => {
168160 params . set ( MessagesFilterKeys . keySerde , newKeySerde ) ;
161+ setMessagesFiltersField ( MessagesFilterKeys . keySerde , newKeySerde ) ;
169162 return params ;
170163 } ) ;
171164 } ;
172165
173166 const setValueSerde = ( newValueSerde : string ) => {
174167 setSearchParams ( ( params ) => {
168+ setMessagesFiltersField ( MessagesFilterKeys . valueSerde , newValueSerde ) ;
175169 params . set ( MessagesFilterKeys . valueSerde , newValueSerde ) ;
176170 return params ;
177171 } ) ;
178172 } ;
179173
180174 const setOffsetValue = ( newOffsetValue : string ) => {
181175 setSearchParams ( ( params ) => {
176+ setMessagesFiltersField ( MessagesFilterKeys . offset , newOffsetValue ) ;
182177 params . set ( MessagesFilterKeys . offset , newOffsetValue ) ;
183178 return params ;
184179 } ) ;
@@ -187,8 +182,10 @@ export function useMessagesFilters() {
187182 const setSearch = ( value : string ) => {
188183 setSearchParams ( ( params ) => {
189184 if ( value ) {
185+ setMessagesFiltersField ( MessagesFilterKeys . stringFilter , value ) ;
190186 params . set ( MessagesFilterKeys . stringFilter , value ) ;
191187 } else {
188+ removeMessagesFiltersField ( MessagesFilterKeys . stringFilter ) ;
192189 params . delete ( MessagesFilterKeys . stringFilter ) ;
193190 }
194191 return params ;
@@ -200,10 +197,16 @@ export function useMessagesFilters() {
200197 params . delete ( MessagesFilterKeys . partitions ) ;
201198
202199 if ( values . length ) {
200+ setMessagesFiltersField (
201+ MessagesFilterKeys . partitions ,
202+ values . map ( ( v ) => v . value ) . join ( ',' )
203+ ) ;
203204 params . append (
204205 MessagesFilterKeys . partitions ,
205206 values . map ( ( v ) => v . value ) . join ( ',' )
206207 ) ;
208+ } else {
209+ removeMessagesFiltersField ( MessagesFilterKeys . partitions ) ;
207210 }
208211
209212 return params ;
0 commit comments