diff --git a/client-solid/src/Components/LoginButton.tsx b/client-solid/src/Components/LoginButton.tsx index a04bac5..14d1bc3 100644 --- a/client-solid/src/Components/LoginButton.tsx +++ b/client-solid/src/Components/LoginButton.tsx @@ -1,4 +1,4 @@ -import { JSXElement, Show, useContext } from "solid-js"; +import { JSXElement, Show, createSignal, useContext } from "solid-js"; import { LoginContext, ModalContext } from "../Context/GlobalState"; import { UserCircle } from "../Util/Icons"; @@ -6,18 +6,50 @@ import { UserCircle } from "../Util/Icons"; export function LoginButton(): JSXElement { const modal_ctx = useContext(ModalContext)!; const login_ctx = useContext(LoginContext)!; + const [showLogoutModal, setShowLogoutModal] = createSignal(false); const clickHandler = (): void => { - if (login_ctx.loggedIn()) login_ctx.logOut(); - else modal_ctx.setOpen(true); + if (login_ctx.loggedIn()) { + setShowLogoutModal(true); + } else { + modal_ctx.setOpen(true); + } + }; + + const confirmLogout = (): void => { + login_ctx.logOut(); + setShowLogoutModal(false); + }; + + const cancelLogout = (): void => { + setShowLogoutModal(false); }; return ( -
- - {login_ctx.username()} - - -
+ <> +
+ + {login_ctx.username()} + +
+ {showLogoutModal() && ( + + )} + ); }