38 lines
817 B
JavaScript
38 lines
817 B
JavaScript
import m from "mithril";
|
|
import Cookies from "js-cookie";
|
|
|
|
export function LoginForm() {
|
|
let loggedIn = false;
|
|
|
|
async function login(e) {
|
|
e.preventDefault();
|
|
|
|
const formData = new FormData(e.target);
|
|
|
|
const res = await m.request({
|
|
method: "POST",
|
|
url: "/login",
|
|
body: formData
|
|
});
|
|
|
|
if (res.success) {
|
|
Cookies.set('logged-in', true);
|
|
} else {
|
|
Cookies.remove('logged-in');
|
|
}
|
|
}
|
|
|
|
return {
|
|
oninit: function() {
|
|
loggedIn = !!Cookies.get('logged-in');
|
|
},
|
|
view: function() {
|
|
return m("form", { action: "/login", method: "post", onsubmit: login }, [
|
|
m("label", { for: "username" }, "Username"),
|
|
m("input", { type: "text", name: "username" }),
|
|
m("input", { type: "submit", value: "Login" })
|
|
]);
|
|
}
|
|
}
|
|
}
|