53eee9a3ad
Let visitors explore ship data, crew, and sample log entries from the login page, with onboarding tour support and a fix for GPS track rendering when fileType is missing. Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
821 B
TypeScript
26 lines
821 B
TypeScript
export const PUBLIC_DEMO_TOUR_USER_ID = '__public_demo__'
|
|
|
|
export function getTourCompletedKey(userId: string): string {
|
|
return `app_tour_completed_${userId}`
|
|
}
|
|
|
|
export function isTourCompleted(userId: string | null): boolean {
|
|
if (!userId) return true
|
|
return localStorage.getItem(getTourCompletedKey(userId)) === '1'
|
|
}
|
|
|
|
export function markTourCompleted(userId: string): void {
|
|
localStorage.setItem(getTourCompletedKey(userId), '1')
|
|
}
|
|
|
|
export function clearTourCompleted(userId: string): void {
|
|
localStorage.removeItem(getTourCompletedKey(userId))
|
|
}
|
|
|
|
export function resolveTourUserId(options?: { demoMode?: boolean }): string | null {
|
|
const activeUserId = localStorage.getItem('active_userid')
|
|
if (activeUserId) return activeUserId
|
|
if (options?.demoMode) return PUBLIC_DEMO_TOUR_USER_ID
|
|
return null
|
|
}
|