fix(typesContext.tsx): update deleteComponent function signature to include id parameter for better data management

fix(typesContext.tsx): update deleteComponent implementation to use id parameter for localStorage key
fix(sideBarDraggableComponent/index.tsx): update deleteComponent function call to include id parameter for better data management
This commit is contained in:
anovazzi1 2023-10-10 17:08:27 -03:00
commit 71945ed9cf
3 changed files with 10 additions and 7 deletions

View file

@ -37,7 +37,7 @@ const initialValue: typesContextType = {
setFilterEdge: (filter) => {}, setFilterEdge: (filter) => {},
getFilterEdge: [], getFilterEdge: [],
saveComponent: (component: NodeDataType, key: string) => {}, saveComponent: (component: NodeDataType, key: string) => {},
deleteComponent: (key: string) => {}, deleteComponent: (id: string, key: string) => {},
}; };
export const typesContext = createContext<typesContextType>(initialValue); export const typesContext = createContext<typesContextType>(initialValue);
@ -159,16 +159,17 @@ export function TypesProvider({ children }: { children: ReactNode }) {
}); });
} }
function deleteComponent(key: string) { function deleteComponent(id: string, key: string) {
let savedComponentsJSON: localStorageUserType = { components: {} }; let savedComponentsJSON: localStorageUserType = { components: {} };
if (checkLocalStorageKey(userData?.id!)) { if (checkLocalStorageKey(id)) {
let savedComponents = localStorage.getItem(userData?.id!)!; let savedComponents = localStorage.getItem(id)!;
savedComponentsJSON = JSON.parse(savedComponents); savedComponentsJSON = JSON.parse(savedComponents);
} }
let components = savedComponentsJSON.components; let components = savedComponentsJSON.components;
delete components[key]; delete components[key];
savedComponentsJSON.components = components; savedComponentsJSON.components = components;
localStorage.setItem(userData?.id!, JSON.stringify(savedComponentsJSON)); console.log(savedComponentsJSON);
localStorage.setItem(id, JSON.stringify(savedComponentsJSON));
setData((prev) => { setData((prev) => {
let newData = _.cloneDeep(prev); let newData = _.cloneDeep(prev);
//clone to prevent reference erro //clone to prevent reference erro

View file

@ -6,6 +6,7 @@ import {
SelectItem, SelectItem,
SelectTrigger, SelectTrigger,
} from "../../../../../components/ui/select-custom"; } from "../../../../../components/ui/select-custom";
import { AuthContext } from "../../../../../contexts/authContext";
import { TabsContext } from "../../../../../contexts/tabsContext"; import { TabsContext } from "../../../../../contexts/tabsContext";
import { typesContext } from "../../../../../contexts/typesContext"; import { typesContext } from "../../../../../contexts/typesContext";
import { APIClassType } from "../../../../../types/api"; import { APIClassType } from "../../../../../types/api";
@ -35,6 +36,7 @@ export default function SidebarDraggableComponent({
const open = useRef(false); const open = useRef(false);
const { deleteComponent } = useContext(typesContext); const { deleteComponent } = useContext(typesContext);
const { getNodeId } = useContext(TabsContext); const { getNodeId } = useContext(TabsContext);
const { autoLogin, userData } = useContext(AuthContext);
function handleSelectChange(value: string) { function handleSelectChange(value: string) {
switch (value) { switch (value) {
@ -47,7 +49,7 @@ export default function SidebarDraggableComponent({
); );
break; break;
case "delete": case "delete":
deleteComponent(itemName); deleteComponent(autoLogin ? "auto" : userData?.id!, itemName);
break; break;
} }
} }

View file

@ -22,7 +22,7 @@ export type typesContextType = {
setFilterEdge: (newState) => void; setFilterEdge: (newState) => void;
getFilterEdge: any[]; getFilterEdge: any[];
saveComponent: (component: NodeDataType, key: string) => void; saveComponent: (component: NodeDataType, key: string) => void;
deleteComponent: (key: string) => void; deleteComponent: (id: string, key: string) => void;
}; };
export type alertContextType = { export type alertContextType = {