React/Hook

[ Hook ] useConfirm

Design-loving front-end engineer 2022. 8. 10. 10:40

πŸ”΄  Introduction

βšͺ  λ©”μ‹œμ§€μ™€ 확인할 μ‹œ ν•¨μˆ˜, μ·¨μ†Œν•  μ‹œ ν•¨μˆ˜λ₯Ό 인자둜 λ„£μ–΄ 보내면 이에 ν•΄λ‹Ήν•˜λŠ” Confirm λͺ¨λ‹¬ 창을 λ„μ›Œμ£ΌλŠ” hook

 

🟠  Hook

 
export const useConfirm = (message = "", onConfirm, onCancel) => {
    if (!onConfirm || typeof onConfirm !== "function") {
        return;
    }
    if (onCancel && typeof onCancel !== "function") {
        return;
    }
    const confirmAction = () => {
        if (window.confirm(message)) {
            onConfirm();
        } else {
            onCancel();
        }
    };
    return confirmAction;
};

 

🟑  Usage

 
import { useConfirm } from "./hooks/useConfirm";

function App() {
    const onConfirm = () => console.log("πŸ”” Yes Button Clicked!");
    const onCancel = () => console.log("πŸ”” No Button Clicked!");
    const toggleConfirm = useConfirm("⚠️ Are you sure?", onConfirm, onCancel);
    return (
        <div className="App">
            <button onClick={toggleConfirm}>Check Confirm</button>
        </div>
    );
}

export default App;