Sifa professional network frontend (Next.js, React, TailwindCSS)
sifa.id/
1const ONBOARDING_SEEN_KEY = 'sifa:onboarding-seen';
2const EMAIL_DISMISSED_KEY = 'sifa:welcome-email-dismissed';
3
4export function markOnboardingSeen(): void {
5 if (typeof window !== 'undefined') {
6 sessionStorage.setItem(ONBOARDING_SEEN_KEY, 'true');
7 }
8}
9
10export function hasSeenOnboarding(): boolean {
11 if (typeof window !== 'undefined') {
12 return sessionStorage.getItem(ONBOARDING_SEEN_KEY) === 'true';
13 }
14 return false;
15}
16
17export function isEmailBannerDismissed(): boolean {
18 if (typeof window !== 'undefined') {
19 return localStorage.getItem(EMAIL_DISMISSED_KEY) === 'true';
20 }
21 return false;
22}
23
24export function dismissEmailBanner(): void {
25 if (typeof window !== 'undefined') {
26 localStorage.setItem(EMAIL_DISMISSED_KEY, 'true');
27 }
28}
29
30export function resolvePathHref(href: string, handle: string): string {
31 if (href === 'dynamic:profile') {
32 return `/p/${handle}`;
33 }
34 return href;
35}