import { useEffect } from 'react';
import { ActivityIndicator, StyleSheet, View } from 'react-native';
import { useRouter } from 'expo-router';

import { getOnboardingCompleted, getConsentAccepted, setOnboardingCompleted } from '@/src/storage/appStorage';

/**
 * 启动分发：根据 consent 和 onboarding 状态跳转
 */
export default function Index() {
  const router = useRouter();

  useEffect(() => {
    let cancelled = false;
    (async () => {
      // 临时重置引导页状态（开发调试用）
      await setOnboardingCompleted(false);

      // 1. 检查是否同意协议
      const consentAccepted = await getConsentAccepted();
      if (cancelled) return;

      if (!consentAccepted) {
        router.replace('/(splash)/splash');
        return;
      }
      if (cancelled) return;

      if (!consentAccepted) {
        router.replace('/(splash)/splash');
        return;
      }

      // 2. 检查 Onboarding
      const completed = await getOnboardingCompleted();
      router.replace(completed ? '/(app)/home' : '/(onboarding)/onboarding');
    })();
    return () => {
      cancelled = true;
    };
  }, [router]);

  return (
    <View style={styles.container}>
      <ActivityIndicator />
    </View>
  );
}

const styles = StyleSheet.create({
  container: { flex: 1, alignItems: 'center', justifyContent: 'center' },
});

