Frontend: Step 1 for query caching (organize FE directories, build save modals, modify routes/URLs) (#13908)

This commit is contained in:
RachelElysia
2023-10-02 12:26:53 -07:00
committed by GitHub
parent 0f4e24a40a
commit ee365ea276
52 changed files with 1391 additions and 556 deletions
+21
View File
@@ -6,6 +6,7 @@ import { DEFAULT_QUERY } from "utilities/constants";
import { DEFAULT_OSQUERY_TABLE, IOsQueryTable } from "interfaces/osquery_table";
import { SelectedPlatformString } from "interfaces/platform";
import { QueryLoggingOption } from "interfaces/schedulable_query";
import { DEFAULT_TARGETS, ITarget } from "interfaces/target";
type Props = {
children: ReactNode;
@@ -22,6 +23,7 @@ type InitialStateType = {
lastEditedQueryPlatforms: SelectedPlatformString;
lastEditedQueryMinOsqueryVersion: string;
lastEditedQueryLoggingType: QueryLoggingOption;
selectedQueryTargets: ITarget[];
setLastEditedQueryId: (value: number | null) => void;
setLastEditedQueryName: (value: string) => void;
setLastEditedQueryDescription: (value: string) => void;
@@ -32,6 +34,7 @@ type InitialStateType = {
setLastEditedQueryMinOsqueryVersion: (value: string) => void;
setLastEditedQueryLoggingType: (value: string) => void;
setSelectedOsqueryTable: (tableName: string) => void;
setSelectedQueryTargets: (value: ITarget[]) => void;
};
export type IQueryContext = InitialStateType;
@@ -48,6 +51,7 @@ const initialState = {
lastEditedQueryPlatforms: DEFAULT_QUERY.platform,
lastEditedQueryMinOsqueryVersion: DEFAULT_QUERY.min_osquery_version,
lastEditedQueryLoggingType: DEFAULT_QUERY.logging,
selectedQueryTargets: DEFAULT_TARGETS,
setLastEditedQueryId: () => null,
setLastEditedQueryName: () => null,
setLastEditedQueryDescription: () => null,
@@ -58,11 +62,13 @@ const initialState = {
setLastEditedQueryMinOsqueryVersion: () => null,
setLastEditedQueryLoggingType: () => null,
setSelectedOsqueryTable: () => null,
setSelectedQueryTargets: () => null,
};
const actions = {
SET_SELECTED_OSQUERY_TABLE: "SET_SELECTED_OSQUERY_TABLE",
SET_LAST_EDITED_QUERY_INFO: "SET_LAST_EDITED_QUERY_INFO",
SET_SELECTED_QUERY_TARGETS: "SET_SELECTED_QUERY_TARGETS",
} as const;
const reducer = (state: InitialStateType, action: any) => {
@@ -114,6 +120,14 @@ const reducer = (state: InitialStateType, action: any) => {
? state.lastEditedQueryLoggingType
: action.lastEditedQueryLoggingType,
};
case actions.SET_SELECTED_QUERY_TARGETS:
return {
...state,
selectedQueryTargets:
typeof action.selectedQueryTargets === "undefined"
? state.selectedQueryTargets
: action.selectedQueryTargets,
};
default:
return state;
}
@@ -135,6 +149,7 @@ const QueryProvider = ({ children }: Props) => {
lastEditedQueryPlatforms: state.lastEditedQueryPlatforms,
lastEditedQueryMinOsqueryVersion: state.lastEditedQueryMinOsqueryVersion,
lastEditedQueryLoggingType: state.lastEditedQueryLoggingType,
selectedQueryTargets: state.selectedQueryTargets,
setLastEditedQueryId: (lastEditedQueryId: number | null) => {
dispatch({
type: actions.SET_LAST_EDITED_QUERY_INFO,
@@ -193,6 +208,12 @@ const QueryProvider = ({ children }: Props) => {
lastEditedQueryLoggingType,
});
},
setSelectedQueryTargets: (selectedQueryTargets: ITarget[]) => {
dispatch({
type: actions.SET_SELECTED_QUERY_TARGETS,
selectedQueryTargets,
});
},
setSelectedOsqueryTable: (tableName: string) => {
dispatch({ type: actions.SET_SELECTED_OSQUERY_TABLE, tableName });
},