proje / apps /web /src /lib /acente-session.ts
rodopsin
feat: add Acente Portal with Performans, Sözleşmelerim, Duyurular, Geri Bildirim
3c841ba
Raw
History Blame Contribute Delete
1.28 kB
'use client';
import { demoAgencies, type DemoAgency } from '@/lib/mock-data';
export const ACENTE_SESSION_KEY = 'ajet360.acente.session.v1';
export const ACENTE_SESSION_EVENT = 'ajet360:acente-session';
export const DEFAULT_AGENCY_CODE = 'AJ-IST-001';
function canUseStorage() {
return typeof window !== 'undefined' && Boolean(window.localStorage);
}
export function getCurrentAgencyCode(): string {
if (!canUseStorage()) return DEFAULT_AGENCY_CODE;
const code = window.localStorage.getItem(ACENTE_SESSION_KEY);
if (!code) return DEFAULT_AGENCY_CODE;
if (!demoAgencies.some((a) => a.code === code)) return DEFAULT_AGENCY_CODE;
return code;
}
export function setCurrentAgencyCode(code: string): void {
if (!canUseStorage()) return;
if (!demoAgencies.some((a) => a.code === code)) return;
window.localStorage.setItem(ACENTE_SESSION_KEY, code);
window.dispatchEvent(new Event(ACENTE_SESSION_EVENT));
}
export function getCurrentAgency(): DemoAgency {
const code = getCurrentAgencyCode();
return demoAgencies.find((a) => a.code === code) ?? demoAgencies[0]!;
}
export function listAvailableAgencies(): DemoAgency[] {
// Limit to 5 Turkish agencies for demo readability
return demoAgencies.filter((a) => a.code.match(/^AJ-(IST|ANT|ANK|IZM|TRB)-/));
}