import { showLoading } from "utils/ui.ts"; interface HomeBarProps { name: string; } const settingsData: { [key: string]: string } = {}; export default function HomeBar(props: HomeBarProps) { const doNewPost = async () => { showLoading(); const resp = await fetch("/api/post", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ title: "", content: "", }), }); const respJson = await resp.json(); if (respJson.success) { location.href = `/${respJson.data}`; return true; } return false; }; const doLogout = async () => { const resp = await fetch("/api/user/logout"); const respJson = await resp.json(); if (respJson.success) { location.href = "/login"; return true; } return false; }; const showReset = () => { settingsData["old"] = ""; settingsData["new"] = ""; settingsData["repeat"] = ""; window.$modal?.show( "Reset password",
Old password { settingsData["old"] = (e.target as HTMLInputElement).value; }} />
New password { settingsData["new"] = (e.target as HTMLInputElement).value; }} />
Repeat new password { settingsData["repeat"] = (e.target as HTMLInputElement).value; }} />
, [ { text: "Confirm", onClick: async () => { if ( settingsData["old"] && settingsData["new"] && settingsData["repeat"] && settingsData["new"] === settingsData["repeat"] ) { const resp = await fetch("/api/user/reset", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ old: settingsData["old"], new: settingsData["new"], }), }); const respJson = await resp.json(); if (respJson.success) { window.$modal?.hide(); } } }, }, ], ); }; return (
{props.name}
); }