67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
// config.js
|
|
import { getEnv, waitForEnv } from './env-loader.js';
|
|
|
|
// Initialize environment variables
|
|
let envInitialized = false;
|
|
let initPromise = null;
|
|
|
|
// Function to ensure environment variables are loaded
|
|
export async function ensureEnvLoaded() {
|
|
if (envInitialized) return;
|
|
|
|
if (!initPromise) {
|
|
initPromise = waitForEnv().then(() => {
|
|
envInitialized = true;
|
|
console.log('Environment variables loaded in config.js');
|
|
});
|
|
}
|
|
|
|
return initPromise;
|
|
}
|
|
|
|
// Initialize immediately
|
|
ensureEnvLoaded();
|
|
|
|
// Direct access to environment variables (synchronous, may return default values if called too early)
|
|
export function getPublicVapidKey() {
|
|
return getEnv('PUBLIC_VAPID_KEY');
|
|
}
|
|
|
|
export function getBackendUrl() {
|
|
return getEnv('BACKEND_URL');
|
|
}
|
|
|
|
export const FLIC_BUTTON_ID = 'game-button'; // Example ID, might need configuration
|
|
export const LOCAL_STORAGE_KEY = 'gameTimerData';
|
|
|
|
// Default player settings
|
|
export const DEFAULT_PLAYER_TIME_SECONDS = 300; // 5 minutes
|
|
export const DEFAULT_PLAYERS = [
|
|
{ id: 1, name: 'Player 1', timeInSeconds: DEFAULT_PLAYER_TIME_SECONDS, remainingTime: DEFAULT_PLAYER_TIME_SECONDS, image: null },
|
|
{ id: 2, name: 'Player 2', timeInSeconds: DEFAULT_PLAYER_TIME_SECONDS, remainingTime: DEFAULT_PLAYER_TIME_SECONDS, image: null }
|
|
];
|
|
|
|
// CSS Classes (optional, but can help consistency)
|
|
export const CSS_CLASSES = {
|
|
ACTIVE_PLAYER: 'active-player',
|
|
INACTIVE_PLAYER: 'inactive-player',
|
|
TIMER_ACTIVE: 'timer-active',
|
|
TIMER_FINISHED: 'timer-finished',
|
|
MODAL_ACTIVE: 'active',
|
|
CAMERA_ACTIVE: 'active'
|
|
};
|
|
|
|
// Game States
|
|
export const GAME_STATES = {
|
|
SETUP: 'setup',
|
|
RUNNING: 'running',
|
|
PAUSED: 'paused',
|
|
OVER: 'over'
|
|
};
|
|
|
|
// Flic Actions
|
|
export const FLIC_ACTIONS = {
|
|
SINGLE_CLICK: 'SingleClick',
|
|
DOUBLE_CLICK: 'DoubleClick',
|
|
HOLD: 'Hold'
|
|
}; |