diff --git a/front-end/components/logout.mjs b/front-end/components/logout.mjs index 2c5ebe9..db8ccbd 100644 --- a/front-end/components/logout.mjs +++ b/front-end/components/logout.mjs @@ -1,4 +1,5 @@ -import {apiService} from "../index.mjs"; +import { apiService } from "../index.mjs"; +import { state } from "../index.mjs"; /** * Create a logout component @@ -14,11 +15,15 @@ function createLogout(template, isLoggedIn) { } async function handleLogout(event) { + event.preventDefault(); try { apiService.logout(); - } catch (error) { - throw error; + } finally { + state.isLoggedIn = false; + state.user = null; + + window.location.hash = "#/"; } } -export {createLogout, handleLogout}; +export { createLogout, handleLogout }; diff --git a/front-end/index.html b/front-end/index.html index 89d6b13..8e49e8f 100644 --- a/front-end/index.html +++ b/front-end/index.html @@ -1,21 +1,16 @@ - +
Please enable JavaScript in your browser.
- + diff --git a/front-end/views/hashtag.mjs b/front-end/views/hashtag.mjs index 7b7e996..95bae5a 100644 --- a/front-end/views/hashtag.mjs +++ b/front-end/views/hashtag.mjs @@ -1,4 +1,4 @@ -import {renderOne, renderEach, destroy} from "../lib/render.mjs"; +import { renderOne, renderEach, destroy } from "../lib/render.mjs"; import { state, apiService, @@ -7,10 +7,10 @@ import { getTimelineContainer, getHeadingContainer, } from "../index.mjs"; -import {createLogin, handleLogin} from "../components/login.mjs"; -import {createLogout, handleLogout} from "../components/logout.mjs"; -import {createBloom} from "../components/bloom.mjs"; -import {createHeading} from "../components/heading.mjs"; +import { createLogin, handleLogin } from "../components/login.mjs"; +import { createLogout, handleLogout } from "../components/logout.mjs"; +import { createBloom } from "../components/bloom.mjs"; +import { createHeading } from "../components/heading.mjs"; // Hashtag view: show all tweets containing this tag @@ -23,7 +23,7 @@ function hashtagView(hashtag) { state.isLoggedIn, getLogoutContainer(), "logout-template", - createLogout + createLogout, ); document .querySelector("[data-action='logout']") @@ -32,24 +32,24 @@ function hashtagView(hashtag) { state.isLoggedIn, getLoginContainer(), "login-template", - createLogin + createLogin, ); document .querySelector("[data-action='login']") - ?.addEventListener("click", handleLogin); + ?.addEventListener("submit", handleLogin); renderOne( state.currentHashtag, getHeadingContainer(), "heading-template", - createHeading + createHeading, ); renderEach( state.hashtagBlooms || [], getTimelineContainer(), "bloom-template", - createBloom + createBloom, ); } -export {hashtagView}; +export { hashtagView };