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 (
);
}