From 7bd4038e3198073e59ccc261a985d253e67b0ff2 Mon Sep 17 00:00:00 2001 From: katarzynakaz Date: Sun, 22 Feb 2026 08:55:12 +0000 Subject: [PATCH] check for hashtag and add async --- front-end/views/hashtag.mjs | 94 +++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/front-end/views/hashtag.mjs b/front-end/views/hashtag.mjs index 7b7e996..1c0c2ca 100644 --- a/front-end/views/hashtag.mjs +++ b/front-end/views/hashtag.mjs @@ -1,55 +1,57 @@ -import {renderOne, renderEach, destroy} from "../lib/render.mjs"; +import { renderOne, renderEach, destroy } from "../lib/render.mjs"; import { - state, - apiService, - getLogoutContainer, - getLoginContainer, - getTimelineContainer, - getHeadingContainer, + state, + apiService, + getLogoutContainer, + getLoginContainer, + 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 -function hashtagView(hashtag) { - destroy(); +async function hashtagView(hashtag) { + destroy(); + //check first if hastag data is here + if (state.currentHashtag !== hashtag) { + await apiService.getBloomsByHashtag(hashtag); + } - apiService.getBloomsByHashtag(hashtag); + renderOne( + state.isLoggedIn, + getLogoutContainer(), + "logout-template", + createLogout + ); + document + .querySelector("[data-action='logout']") + ?.addEventListener("click", handleLogout); + renderOne( + state.isLoggedIn, + getLoginContainer(), + "login-template", + createLogin + ); + document + .querySelector("[data-action='login']") + ?.addEventListener("click", handleLogin); - renderOne( - state.isLoggedIn, - getLogoutContainer(), - "logout-template", - createLogout - ); - document - .querySelector("[data-action='logout']") - ?.addEventListener("click", handleLogout); - renderOne( - state.isLoggedIn, - getLoginContainer(), - "login-template", - createLogin - ); - document - .querySelector("[data-action='login']") - ?.addEventListener("click", handleLogin); - - renderOne( - state.currentHashtag, - getHeadingContainer(), - "heading-template", - createHeading - ); - renderEach( - state.hashtagBlooms || [], - getTimelineContainer(), - "bloom-template", - createBloom - ); + renderOne( + state.currentHashtag, + getHeadingContainer(), + "heading-template", + createHeading + ); + renderEach( + state.hashtagBlooms || [], + getTimelineContainer(), + "bloom-template", + createBloom + ); } -export {hashtagView}; +export { hashtagView };