14c880123c
Expo app with dashboard, time clock, invoices, and settings — native tabs, glass UI, theme-aware components, and iOS Live Activities. Co-authored-by: Cursor <cursoragent@cursor.com>
25 lines
609 B
TypeScript
25 lines
609 B
TypeScript
import Constants from "expo-constants";
|
|
|
|
const fallbackUrl = "http://localhost:3000";
|
|
|
|
let runtimeOverride: string | null = null;
|
|
|
|
export function setRuntimeApiUrl(url: string | null) {
|
|
runtimeOverride = url?.replace(/\/$/, "") ?? null;
|
|
}
|
|
|
|
export function getApiUrl() {
|
|
if (runtimeOverride) return runtimeOverride;
|
|
|
|
const fromEnv = process.env.EXPO_PUBLIC_API_URL?.trim();
|
|
if (fromEnv) return fromEnv.replace(/\/$/, "");
|
|
|
|
const hostUri = Constants.expoConfig?.hostUri;
|
|
if (hostUri) {
|
|
const host = hostUri.split(":")[0];
|
|
if (host) return `http://${host}:3000`;
|
|
}
|
|
|
|
return fallbackUrl;
|
|
}
|