import { ScrollView, View, Text, TouchableOpacity, TextInput, ActivityIndicator, RefreshControl, KeyboardAvoidingView, Platform, } from "react-native"; import { SafeAreaView } from "react-native-safe-area-context"; import { MaterialIcons } from "@expo/vector-icons"; import { useClaudeUsage } from "@/hooks/useClaudeUsage"; import { UsageStat } from "@/components/UsageStat"; import { ErrorMessage } from "@/components/ErrorMessage"; import { LastUpdated } from "@/components/LastUpdated"; import { ScreenErrorBoundary } from "@/components/ScreenErrorBoundary"; import { COLORS } from "@/lib/constants"; function ClaudeTabContent() { const { auth, pendingKey, setPendingKey, pendingOrg, setPendingOrg, usage, lastFetchedAt, status, error, keyValidationError, canSaveKey, saveKey, refresh, clearKey, } = useClaudeUsage(); return ( } > {/* Header */} Claude.ai Usage windows {/* Configuration card */} Configuration {auth ? ( Connected {auth.sessionKey.slice(0, 10)}… Clear ) : ( {keyValidationError && ( {keyValidationError} )} Save Session Key Where to find it Chrome DevTools → Application → Cookies → claude.ai → copy{" "} sessionKey {" "}and optionally{" "} lastActiveOrg )} {/* Usage card */} Usage {status === "idle" && !auth && ( Enter your session key to see usage windows )} {status === "loading" && !usage && ( )} {status === "error" && error && } {usage && ( {(usage.seven_day_sonnet || usage.seven_day_opus) && ( By Model (7-day) {usage.seven_day_sonnet && ( )} {usage.seven_day_opus && ( )} )} )} ); } export default function ClaudeTab() { return ( ); }