Skip to content

Commit

Permalink
Filter query offset handled
Browse files Browse the repository at this point in the history
  • Loading branch information
Koustavd18 committed Dec 16, 2024
1 parent cdfe4b9 commit d2c46c1
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 4 deletions.
6 changes: 5 additions & 1 deletion src/hooks/useQueryLogs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ export const useQueryLogs = () => {
setLogsStore,
] = useLogsStore((store) => store);
const [appliedQuery] = useFilterStore((store) => store.appliedQuery);
const [isQueryFromParams] = useFilterStore((store) => store.isQueryFromParams);
const { isQuerySearchActive, custSearchQuery, activeMode } = custQuerySearchState;

const getColumnFilters = useCallback(
Expand Down Expand Up @@ -99,14 +100,17 @@ export const useQueryLogs = () => {
() => {
refetchSchema();
if (isQuerySearchActive) {
if (activeMode === 'filters') {
if (activeMode === 'filters' && isQueryFromParams === false) {
const { parsedQuery } = parseQuery(queryEngine, appliedQuery, currentStream || '', {
startTime: timeRange.startTime,
endTime: timeRange.endTime,
timePartitionColumn,
});
const queryStrWithOffset = appendOffsetToQuery(parsedQuery, defaultQueryOpts.pageOffset);
return getQueryResultWithHeaders({ ...defaultQueryOpts, access: [] }, queryStrWithOffset);
} else if (activeMode === 'filters' && isQueryFromParams === true) {
const queryStrWithOffset = appendOffsetToQuery(custSearchQuery, defaultQueryOpts.pageOffset);
return getQueryResultWithHeaders({ ...defaultQueryOpts, access: [] }, queryStrWithOffset);
} else {
const queryStrWithOffset = appendOffsetToQuery(custSearchQuery, defaultQueryOpts.pageOffset);
return getQueryResultWithHeaders({ ...defaultQueryOpts, access: [] }, queryStrWithOffset);
Expand Down
13 changes: 10 additions & 3 deletions src/pages/Stream/hooks/useParamsController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const {
setCurrentOffset,
setTargetColumns,
} = logsStoreReducers;
const { applySavedFilters } = filterStoreReducers;
const { toogleQueryParamsFlag, setAppliedFilterQuery, applySavedFilters, updateAppliedQuery } = filterStoreReducers;
const timeRangeFormat = 'DD-MMM-YYYY_HH-mmz';
const keys = ['view', 'rows', 'page', 'interval', 'from', 'to', 'query', 'filterType', 'fields'];

Expand Down Expand Up @@ -130,10 +130,17 @@ const useParamsController = () => {

if (storeAsParams.query !== presentParams.query) {
setLogsStore((store) => setCustQuerySearchState(store, presentParams.query, presentParams.filterType));
if (presentParams.filterType === 'filters')

if (presentParams.filterType === 'filters') {
setFilterStore((store) =>
applySavedFilters(store, generateQueryBuilderASTFromSQL(presentParams.query) as QueryType),
updateAppliedQuery(store, generateQueryBuilderASTFromSQL(presentParams.query) as QueryType),
);
setFilterStore((store) =>
// applySavedFilters(store, generateQueryBuilderASTFromSQL(presentParams.query) as QueryType),
setAppliedFilterQuery(store, presentParams.query),
);
setFilterStore((store) => toogleQueryParamsFlag(store, true));
}
}

if (storeAsParams.fields !== presentParams.fields) {
Expand Down
20 changes: 20 additions & 0 deletions src/pages/Stream/providers/FilterProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ type FilterStore = {
fieldTypeMap: FieldTypeMap;
fieldNames: string[];
isSumbitDisabled: boolean;
isQueryFromParams: boolean;
appliedQuery: QueryType;
isSaveFiltersModalOpen: boolean;
isSavedFiltersModalOpen: boolean;
Expand All @@ -92,6 +93,7 @@ const initialState: FilterStore = {
appliedFilterQuery: '',
fieldTypeMap: {},
fieldNames: [],
isQueryFromParams: false,
isSumbitDisabled: true,
appliedQuery: defaultQuery,
isSaveFiltersModalOpen: false,
Expand Down Expand Up @@ -130,6 +132,7 @@ type FilterStoreReducers = {
deleteRuleFromGroup: (store: FilterStore, groupId: string, ruleId: string) => ReducerOutput;
updateGroupCombinator: (store: FilterStore, id: string, op: Combinator) => ReducerOutput;
updateParentCombinator: (store: FilterStore, combinator: Combinator) => ReducerOutput;
updateAppliedQuery: (store: FilterStore, appliedQuery: QueryType) => ReducerOutput;
updateRule: (store: FilterStore, groupId: string, ruleId: string, updateOpts: RuleUpdateOpts) => ReducerOutput;
parseQuery: (
queryEngine: 'Parseable' | 'Trino' | undefined,
Expand All @@ -138,6 +141,7 @@ type FilterStoreReducers = {
timeRangeOpts?: { startTime: Date; endTime: Date; timePartitionColumn: string },
) => { where: string; parsedQuery: string };
toggleSubmitBtn: (store: FilterStore, val: boolean) => ReducerOutput;
toogleQueryParamsFlag: (store: FilterStore, val: boolean) => ReducerOutput;
toggleSaveFiltersModal: (_store: FilterStore, val: boolean) => ReducerOutput;
toggleSavedFiltersModal: (_store: FilterStore, val: boolean) => ReducerOutput;
applySavedFilters: (store: FilterStore, query: QueryType) => ReducerOutput;
Expand Down Expand Up @@ -177,6 +181,13 @@ const addRuleToGroup = (store: FilterStore, groupId: string) => {
};
};

const toogleQueryParamsFlag = (_store: FilterStore, val: boolean) => {
return {
..._store,
isQueryFromParams: val,
};
};

const deleteRuleFromGroup = (store: FilterStore, groupId: string, ruleId: string) => {
const { fields, query } = store;
if (fields.length === 0) return {};
Expand Down Expand Up @@ -340,6 +351,13 @@ const toggleSavedFiltersModal = (_store: FilterStore, val: boolean) => {
};
};

const updateAppliedQuery = (store: FilterStore, appliedQuery: QueryType) => {
return {
...store,
appliedQuery,
};
};

const applySavedFilters = (store: FilterStore, query: QueryType) => {
return {
...store,
Expand All @@ -358,11 +376,13 @@ const filterStoreReducers: FilterStoreReducers = {
deleteRuleFromGroup,
updateGroupCombinator,
updateParentCombinator,
updateAppliedQuery,
updateRule,
parseQuery,
toggleSubmitBtn,
toggleSaveFiltersModal,
toggleSavedFiltersModal,
toogleQueryParamsFlag,
applySavedFilters,
setAppliedFilterQuery,
};
Expand Down

0 comments on commit d2c46c1

Please sign in to comment.