Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / components / hooks / useModalsMap.ts
blob976d36ce0c80e2a1ab9f2431b0444bdd9e81bb8d
1 import { useState } from 'react';
3 import type { ModalWithProps } from '@proton/shared/lib/interfaces/Modal';
5 export const useModalsMap = <T extends Record<string, ModalWithProps<any>>>(map: T) => {
6     const [modalsMap, setModalsMap] = useState<T>(map);
8     const updateModal = <K extends keyof T>(key: K, newValue: T[K]) =>
9         setModalsMap((prevState) => ({
10             ...prevState,
11             [key]: newValue,
12         }));
14     const closeModal = (key: keyof T) =>
15         setModalsMap((prevState) => ({
16             ...prevState,
17             [key]: {
18                 isOpen: false,
19             },
20         }));
22     return { modalsMap, closeModal, setModalsMap, updateModal };