feat: useAlertStore 적용

This commit is contained in:
2025-03-19 18:43:58 +09:00
parent 915543628d
commit e49e3d3b36
6 changed files with 50 additions and 105 deletions
+7 -4
View File
@@ -1,22 +1,25 @@
import { createStore } from "zustand/vanilla";
export type AlertState = {
alertMessage: string;
message: string;
callback?: () => void;
};
export type AlertActions = {
setAlertMessage: (message: string) => void;
setMessage: (message: string, callback?: () => void) => void;
};
export type AlertStore = AlertState & AlertActions;
export const defaultInitState: AlertState = {
alertMessage: "",
message: "",
callback: undefined,
};
export const createAlertStore = (initState: AlertState = defaultInitState) => {
return createStore<AlertStore>()((set) => ({
...initState,
setAlertMessage: (alertMessage: string) => set(() => ({ alertMessage })),
setMessage: (message: string, callback?: () => void) =>
set(() => ({ message, callback })),
}));
};
+7 -3
View File
@@ -8,12 +8,16 @@ import {
import { useAlertStore } from "../lib/use-alert-store";
function AlertDialog() {
const { alertMessage, setAlertMessage } = useAlertStore((state) => state);
const { message, callback, setMessage } = useAlertStore((state) => state);
const handleOpenChange = () => {
setMessage("");
callback?.();
};
return (
<Dialog open={!!alertMessage} onOpenChange={() => setAlertMessage("")}>
<Dialog open={!!message} onOpenChange={handleOpenChange}>
<DialogContent aria-describedby={undefined}>
<div className="py-10">
<p className="text-center text-[1.4rem]">{alertMessage}</p>
<p className="text-center text-[1.4rem]">{message}</p>
</div>
<DialogFooter className="!justify-center">
<DialogClose asChild>