import { useRoute, type RouteProp } from '@react-navigation/native';
import React from 'react';
import { ActivityIndicator, StyleSheet, View } from 'react-native';
import { WebView } from 'react-native-webview';
import type { RootStackParamList } from '../navigation';
import { theme } from '../theme';

// Diagnostyczny in-app browser w trybie incognito (report dccc05e4). Long-press na
// linku playbacku → "Open in browser (diagnostics)" otwiera page_url hostera tutaj,
// żeby user ocenił czy faktycznie broken. `incognito` → zero cookies/cache/historii:
// świeży widok strony (jak u kogoś bez sesji) ORAZ nie zostawia NSFW URL-a w prawdziwej
// przeglądarce usera. Wcześniej Linking.openURL wrzucał to do Chrome z jego sesją.
export function DiagnosticBrowserScreen() {
  const route = useRoute<RouteProp<RootStackParamList, 'DiagnosticBrowser'>>();
  const { url } = route.params;
  return (
    <View style={styles.root}>
      <WebView
        source={{ uri: url }}
        incognito
        cacheEnabled={false}
        thirdPartyCookiesEnabled={false}
        startInLoadingState
        renderLoading={() => (
          <View style={styles.loading}>
            <ActivityIndicator color={theme.fg} size="large" />
          </View>
        )}
        style={styles.web}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  root: { flex: 1, backgroundColor: theme.bg },
  web: { flex: 1, backgroundColor: theme.bg },
  loading: {
    ...StyleSheet.absoluteFillObject,
    alignItems: 'center',
    justifyContent: 'center',
    backgroundColor: theme.bg,
  },
});
