d5b0f9c833
- Onboarding flow (welcome -> Codex setup -> Claude setup -> done) with dark-themed screens and step indicators; completion stored in SecureStore - Smart root redirect checks onboarding state on launch - Dashboard tab shows both services at a glance via ServiceStatusCard; useFocusEffect + reload() keeps it fresh when credentials change in tabs - Settings tab manages credentials and exposes re-run setup wizard - Polished Codex and Claude detail screens with service headers and empty states - 4-tab layout (Home, Codex, Claude, Settings) with dark-mode tab bar - Both hooks gain reload() for cross-tab credential refresh Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
17 lines
451 B
TypeScript
17 lines
451 B
TypeScript
import * as SecureStore from "expo-secure-store";
|
|
|
|
const KEY = "codexbar_onboarding_v1";
|
|
|
|
export async function hasCompletedOnboarding(): Promise<boolean> {
|
|
const val = await SecureStore.getItemAsync(KEY);
|
|
return val === "done";
|
|
}
|
|
|
|
export async function markOnboardingComplete(): Promise<void> {
|
|
await SecureStore.setItemAsync(KEY, "done");
|
|
}
|
|
|
|
export async function resetOnboarding(): Promise<void> {
|
|
await SecureStore.deleteItemAsync(KEY);
|
|
}
|