kafka-ui/kafka-ui-react-app/src/components/contexts/ConfirmContext.tsx
Nail Badiullin 1d8c6197ac
FE: Expose cluster ACL list (#3662)
Co-authored-by: iliax <ikuramshin@provectus.com>
Co-authored-by: Ilya Kuramshin <iliax@proton.me>
Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
2023-05-11 12:38:39 +04:00

44 lines
1.1 KiB
TypeScript

import React, { useState } from 'react';
interface ConfirmContextType {
content: React.ReactNode;
confirm?: () => void;
setContent: React.Dispatch<React.SetStateAction<React.ReactNode>>;
setConfirm: React.Dispatch<React.SetStateAction<(() => void) | undefined>>;
cancel: () => void;
dangerButton: boolean;
setDangerButton: React.Dispatch<React.SetStateAction<boolean>>;
}
export const ConfirmContext = React.createContext<ConfirmContextType | null>(
null
);
export const ConfirmContextProvider: React.FC<
React.PropsWithChildren<unknown>
> = ({ children }) => {
const [content, setContent] = useState<React.ReactNode>(null);
const [confirm, setConfirm] = useState<(() => void) | undefined>(undefined);
const [dangerButton, setDangerButton] = useState(false);
const cancel = () => {
setContent(null);
setConfirm(undefined);
};
return (
<ConfirmContext.Provider
value={{
content,
setContent,
confirm,
setConfirm,
cancel,
dangerButton,
setDangerButton,
}}
>
{children}
</ConfirmContext.Provider>
);
};