Refactored globalVariables.ts and globalVariables/index.ts to extract and store component fields
This commit is contained in:
parent
a2885a86bc
commit
fe5f6560e7
6 changed files with 23 additions and 16 deletions
|
|
@ -22,6 +22,7 @@ import {
|
||||||
addVersionToDuplicates,
|
addVersionToDuplicates,
|
||||||
createFlowComponent,
|
createFlowComponent,
|
||||||
createNewFlow,
|
createNewFlow,
|
||||||
|
extractFieldsFromComponenents,
|
||||||
processDataFromFlow,
|
processDataFromFlow,
|
||||||
processFlows,
|
processFlows,
|
||||||
} from "../utils/reactflowUtils";
|
} from "../utils/reactflowUtils";
|
||||||
|
|
@ -82,6 +83,7 @@ const useFlowsManagerStore = create<FlowsManagerStoreType>((set, get) => ({
|
||||||
);
|
);
|
||||||
useTypesStore.setState((state) => ({
|
useTypesStore.setState((state) => ({
|
||||||
data: { ...state.data, ["saved_components"]: data },
|
data: { ...state.data, ["saved_components"]: data },
|
||||||
|
ComponentFields: extractFieldsFromComponenents({...state.data, ["saved_components"]: data }),
|
||||||
}));
|
}));
|
||||||
set({ isLoading: false });
|
set({ isLoading: false });
|
||||||
resolve();
|
resolve();
|
||||||
|
|
@ -197,6 +199,7 @@ const useFlowsManagerStore = create<FlowsManagerStoreType>((set, get) => ({
|
||||||
set({ isLoading: false });
|
set({ isLoading: false });
|
||||||
useTypesStore.setState((state) => ({
|
useTypesStore.setState((state) => ({
|
||||||
data: { ...state.data, ["saved_components"]: data },
|
data: { ...state.data, ["saved_components"]: data },
|
||||||
|
ComponentFields: extractFieldsFromComponenents({...state.data, ["saved_components"]: data }),
|
||||||
}));
|
}));
|
||||||
}, 200);
|
}, 200);
|
||||||
// addFlowToLocalState(newFlow);
|
// addFlowToLocalState(newFlow);
|
||||||
|
|
@ -219,6 +222,7 @@ const useFlowsManagerStore = create<FlowsManagerStoreType>((set, get) => ({
|
||||||
set({ isLoading: false });
|
set({ isLoading: false });
|
||||||
useTypesStore.setState((state) => ({
|
useTypesStore.setState((state) => ({
|
||||||
data: { ...state.data, ["saved_components"]: data },
|
data: { ...state.data, ["saved_components"]: data },
|
||||||
|
ComponentFields: extractFieldsFromComponenents({...state.data, ["saved_components"]: data }),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Return the id
|
// Return the id
|
||||||
|
|
@ -248,6 +252,7 @@ const useFlowsManagerStore = create<FlowsManagerStoreType>((set, get) => ({
|
||||||
set({ isLoading: false });
|
set({ isLoading: false });
|
||||||
useTypesStore.setState((state) => ({
|
useTypesStore.setState((state) => ({
|
||||||
data: { ...state.data, ["saved_components"]: data },
|
data: { ...state.data, ["saved_components"]: data },
|
||||||
|
ComponentFields: extractFieldsFromComponenents({...state.data, ["saved_components"]: data }),
|
||||||
}));
|
}));
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import { GlobalVariablesStore } from "../types/zustand/globalVariables";
|
||||||
|
|
||||||
export const useGlobalVariablesStore = create<GlobalVariablesStore>(
|
export const useGlobalVariablesStore = create<GlobalVariablesStore>(
|
||||||
(set, get) => ({
|
(set, get) => ({
|
||||||
avaliableFields: new Set(),
|
|
||||||
unavaliableFields: new Set(),
|
unavaliableFields: new Set(),
|
||||||
setUnavaliableFields: (fields) => {
|
setUnavaliableFields: (fields) => {
|
||||||
set({ unavaliableFields: fields });
|
set({ unavaliableFields: fields });
|
||||||
|
|
@ -14,12 +13,6 @@ export const useGlobalVariablesStore = create<GlobalVariablesStore>(
|
||||||
removeUnavaliableField: (field) => {
|
removeUnavaliableField: (field) => {
|
||||||
get().unavaliableFields.delete(field);
|
get().unavaliableFields.delete(field);
|
||||||
},
|
},
|
||||||
setAvaliableFields: (fields) => {
|
|
||||||
set({ avaliableFields: fields });
|
|
||||||
},
|
|
||||||
addAvaliableField: (field) => {
|
|
||||||
set({ avaliableFields: get().avaliableFields.add(field) });
|
|
||||||
},
|
|
||||||
globalVariablesEntries: [],
|
globalVariablesEntries: [],
|
||||||
globalVariables: {},
|
globalVariables: {},
|
||||||
setGlobalVariables: (variables) => {
|
setGlobalVariables: (variables) => {
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,18 @@ import { create } from "zustand";
|
||||||
import { getAll } from "../controllers/API";
|
import { getAll } from "../controllers/API";
|
||||||
import { APIDataType } from "../types/api";
|
import { APIDataType } from "../types/api";
|
||||||
import { TypesStoreType } from "../types/zustand/types";
|
import { TypesStoreType } from "../types/zustand/types";
|
||||||
import { templatesGenerator, typesGenerator } from "../utils/reactflowUtils";
|
import { extractFieldsFromComponenents, templatesGenerator, typesGenerator } from "../utils/reactflowUtils";
|
||||||
import useAlertStore from "./alertStore";
|
import useAlertStore from "./alertStore";
|
||||||
import useFlowsManagerStore from "./flowsManagerStore";
|
import useFlowsManagerStore from "./flowsManagerStore";
|
||||||
|
|
||||||
export const useTypesStore = create<TypesStoreType>((set, get) => ({
|
export const useTypesStore = create<TypesStoreType>((set, get) => ({
|
||||||
|
ComponentFields: new Set(),
|
||||||
|
setComponentFields: (fields) => {
|
||||||
|
set({ ComponentFields: fields });
|
||||||
|
},
|
||||||
|
addComponentField: (field) => {
|
||||||
|
set({ ComponentFields: get().ComponentFields.add(field) });
|
||||||
|
},
|
||||||
types: {},
|
types: {},
|
||||||
templates: {},
|
templates: {},
|
||||||
data: {},
|
data: {},
|
||||||
|
|
@ -21,10 +28,10 @@ export const useTypesStore = create<TypesStoreType>((set, get) => ({
|
||||||
set((old) => ({
|
set((old) => ({
|
||||||
types: typesGenerator(data),
|
types: typesGenerator(data),
|
||||||
data: { ...old.data, ...data },
|
data: { ...old.data, ...data },
|
||||||
|
ComponentFields: extractFieldsFromComponenents({ ...old.data, ...data }),
|
||||||
templates: templatesGenerator(data),
|
templates: templatesGenerator(data),
|
||||||
}));
|
}));
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
console.log(templatesGenerator(data))
|
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|
@ -43,6 +50,7 @@ export const useTypesStore = create<TypesStoreType>((set, get) => ({
|
||||||
},
|
},
|
||||||
setData: (change: APIDataType | ((old: APIDataType) => APIDataType)) => {
|
setData: (change: APIDataType | ((old: APIDataType) => APIDataType)) => {
|
||||||
let newChange = typeof change === "function" ? change(get().data) : change;
|
let newChange = typeof change === "function" ? change(get().data) : change;
|
||||||
set({ data: newChange });
|
set({ data: newChange});
|
||||||
|
get().setComponentFields(extractFieldsFromComponenents(newChange));
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,6 @@ export type GlobalVariablesStore = {
|
||||||
addGlobalVariable: (name: string, id: string, type?: string) => void;
|
addGlobalVariable: (name: string, id: string, type?: string) => void;
|
||||||
removeGlobalVariable: (name: string) => void;
|
removeGlobalVariable: (name: string) => void;
|
||||||
getVariableId: (name: string) => string | undefined;
|
getVariableId: (name: string) => string | undefined;
|
||||||
avaliableFields: Set<string>;
|
|
||||||
setAvaliableFields: (fields: Set<string>) => void;
|
|
||||||
addAvaliableField: (field: string) => void;
|
|
||||||
unavaliableFields: Set<string>;
|
unavaliableFields: Set<string>;
|
||||||
setUnavaliableFields: (fields: Set<string>) => void;
|
setUnavaliableFields: (fields: Set<string>) => void;
|
||||||
addUnavaliableField: (field: string) => void;
|
addUnavaliableField: (field: string) => void;
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,7 @@ export type TypesStoreType = {
|
||||||
data: APIDataType;
|
data: APIDataType;
|
||||||
setData: (newState: {}) => void;
|
setData: (newState: {}) => void;
|
||||||
getTypes: () => Promise<void>;
|
getTypes: () => Promise<void>;
|
||||||
|
ComponentFields: Set<string>;
|
||||||
|
setComponentFields: (fields: Set<string>) => void;
|
||||||
|
addComponentField: (field: string) => void;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1235,16 +1235,17 @@ export function templatesGenerator(data: APIObjectType) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function extractFieldsFromComponenents(data:APIObjectType ) {
|
export function extractFieldsFromComponenents(data:APIObjectType ) {
|
||||||
const fields = new Set();
|
const fields = new Set<string>();
|
||||||
Object.keys(data).forEach((key) => {
|
Object.keys(data).forEach((key) => {
|
||||||
Object.keys(data[key]).forEach((kind) => {
|
Object.keys(data[key]).forEach((kind) => {
|
||||||
Object.keys(data[key][kind].template).forEach((field) => {
|
Object.keys(data[key][kind].template).forEach((field) => {
|
||||||
if(data[key][kind].template[field].display_name && data[key][kind].template[field].show)
|
if(data[key][kind].template[field].display_name && data[key][kind].template[field].show)
|
||||||
fields.add(data[key][kind].template[field].display_name);
|
fields.add(data[key][kind].template[field].display_name!);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return Array.from(fields);
|
console.log(fields);
|
||||||
|
return fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function downloadFlow(
|
export function downloadFlow(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue