diff --git a/src/frontend/src/components/addNewVariableButtonComponent/addNewVariableButton.tsx b/src/frontend/src/components/addNewVariableButtonComponent/addNewVariableButton.tsx index d1e6c7ffa..e5e8dd488 100644 --- a/src/frontend/src/components/addNewVariableButtonComponent/addNewVariableButton.tsx +++ b/src/frontend/src/components/addNewVariableButtonComponent/addNewVariableButton.tsx @@ -22,9 +22,10 @@ export default function AddNewVariableButton({ children }): JSX.Element { const [open, setOpen] = useState(false); const setErrorData = useAlertStore((state) => state.setErrorData); const componentFields = useTypesStore((state) => state.ComponentFields); - const unavaliableFields = useGlobalVariablesStore( + const unavaliableFields =new Set(Object.keys(useGlobalVariablesStore( (state) => state.unavaliableFields - ); + ))); + const availableFields = Array.from(componentFields).filter( (field) => !unavaliableFields.has(field) ); diff --git a/src/frontend/src/stores/globalVariables.ts b/src/frontend/src/stores/globalVariables.ts index 636745d00..a66bf1589 100644 --- a/src/frontend/src/stores/globalVariables.ts +++ b/src/frontend/src/stores/globalVariables.ts @@ -5,16 +5,13 @@ import { getUnavailableFields } from "../utils/utils"; export const useGlobalVariablesStore = create( (set, get) => ({ - unavaliableFields: new Set(), + unavaliableFields: {}, setUnavaliableFields: (fields) => { set({ unavaliableFields: fields }); }, - addUnavaliableField: (field) => { - set({ unavaliableFields: get().unavaliableFields.add(field) }); - }, removeUnavaliableField: (field) => { const newFields = get().unavaliableFields; - newFields.delete(field); + delete newFields[field]; set({ unavaliableFields: newFields }); }, globalVariablesEntries: [], diff --git a/src/frontend/src/types/zustand/globalVariables/index.ts b/src/frontend/src/types/zustand/globalVariables/index.ts index b69952993..752336c19 100644 --- a/src/frontend/src/types/zustand/globalVariables/index.ts +++ b/src/frontend/src/types/zustand/globalVariables/index.ts @@ -25,8 +25,7 @@ export type GlobalVariablesStore = { ) => void; removeGlobalVariable: (name: string) => Promise; getVariableId: (name: string) => string | undefined; - unavaliableFields: Set; - setUnavaliableFields: (fields: Set) => void; - addUnavaliableField: (field: string) => void; + unavaliableFields: {[name: string]: string}; + setUnavaliableFields: (fields: {[name: string]: string}) => void; removeUnavaliableField: (field: string) => void; }; diff --git a/src/frontend/src/utils/utils.ts b/src/frontend/src/utils/utils.ts index 3dafc3877..1c580fa4b 100644 --- a/src/frontend/src/utils/utils.ts +++ b/src/frontend/src/utils/utils.ts @@ -93,16 +93,16 @@ export function toTitleCase( export function getUnavailableFields(variables: { [key: string]: { default_fields?: string[] }; -}): Set { - const set = new Set(); +}): {[name: string]: string} { + const unVariables:{[name: string]: string} = {}; Object.keys(variables).forEach((key) => { if (variables[key].default_fields) { variables[key].default_fields!.forEach((field) => { - set.add(field); + unVariables[field] = key; }); } }); - return set; + return unVariables; } export const upperCaseWords: string[] = ["llm", "uri"];