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) => {},
getFilterEdge: [],
saveComponent: (component: NodeDataType, key: string) => {},
deleteComponent: (key: string) => {},
deleteComponent: (id: string, key: string) => {},
};
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: {} };
if (checkLocalStorageKey(userData?.id!)) {
let savedComponents = localStorage.getItem(userData?.id!)!;
if (checkLocalStorageKey(id)) {
let savedComponents = localStorage.getItem(id)!;
savedComponentsJSON = JSON.parse(savedComponents);
}
let components = savedComponentsJSON.components;
delete components[key];
savedComponentsJSON.components = components;
localStorage.setItem(userData?.id!, JSON.stringify(savedComponentsJSON));
console.log(savedComponentsJSON);
localStorage.setItem(id, JSON.stringify(savedComponentsJSON));
setData((prev) => {
let newData = _.cloneDeep(prev);
//clone to prevent reference erro

View file

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

View file

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