create-automaticgpt-template
Version:
AutomaticGPT - A production-ready Expo template with AI chat, authentication, conversation management, analytics, and sharing features
44 lines (37 loc) • 1.3 kB
text/typescript
import { useState, useCallback } from 'react';
import AsyncStorage from '@react-native-async-storage/async-storage';
const ONBOARDING_COMPLETED_KEY = '@onboarding_completed';
export function useOnboarding() {
const [hasCompletedOnboarding, setHasCompletedOnboarding] = useState<boolean | null>(null);
const checkOnboardingStatus = useCallback(async () => {
try {
const completed = await AsyncStorage.getItem(ONBOARDING_COMPLETED_KEY);
setHasCompletedOnboarding(completed === 'true');
} catch (error) {
console.error('Error checking onboarding status:', error);
setHasCompletedOnboarding(false);
}
}, []);
const completeOnboarding = useCallback(async () => {
try {
await AsyncStorage.setItem(ONBOARDING_COMPLETED_KEY, 'true');
setHasCompletedOnboarding(true);
} catch (error) {
console.error('Error completing onboarding:', error);
}
}, []);
const resetOnboarding = useCallback(async () => {
try {
await AsyncStorage.removeItem(ONBOARDING_COMPLETED_KEY);
setHasCompletedOnboarding(false);
} catch (error) {
console.error('Error resetting onboarding:', error);
}
}, []);
return {
hasCompletedOnboarding,
checkOnboardingStatus,
completeOnboarding,
resetOnboarding,
};
}