diff --git a/app.json b/app.json
deleted file mode 100644
index 146b016..0000000
--- a/app.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "plugins": [
- "expo-asset"
- ]
-}
diff --git a/apps/mobile/app/(app)/profile.tsx b/apps/mobile/app/(app)/profile.tsx
index d8d780a..82e53ed 100755
--- a/apps/mobile/app/(app)/profile.tsx
+++ b/apps/mobile/app/(app)/profile.tsx
@@ -392,26 +392,17 @@ export default function ProfileScreen() {
)}
- {/* Restore Purchases & Redeem Links */}
+ {/* Restore Purchases Link */}
{!hasPremiumAccess && (
-
-
-
- {isPurchasing ? "Restoring..." : "Restore Purchases"}
-
-
- |
- router.push("/(app)/redeem")}
- >
- Redeem Code
-
-
+
+
+ {isPurchasing ? "Restoring..." : "Restore Purchases"}
+
+
)}
@@ -905,23 +896,15 @@ const styles = StyleSheet.create({
color: colors.text,
fontWeight: "600",
},
- subscriptionLinks: {
- flexDirection: "row",
- justifyContent: "center",
+ restoreLink: {
alignItems: "center",
marginTop: spacing.sm,
- },
- restoreLink: {
padding: spacing.sm,
},
restoreLinkText: {
...typography.caption1,
color: colors.textTertiary,
},
- linkDivider: {
- ...typography.caption1,
- color: colors.textTertiary,
- },
versionContainer: {
alignItems: "center",
marginTop: spacing.lg,
diff --git a/apps/mobile/app/(app)/redeem.tsx b/apps/mobile/app/(app)/redeem.tsx
deleted file mode 100644
index 1e591ad..0000000
--- a/apps/mobile/app/(app)/redeem.tsx
+++ /dev/null
@@ -1,312 +0,0 @@
-import { useState } from "react";
-import {
- View,
- Text,
- TouchableOpacity,
- StyleSheet,
- Alert,
- KeyboardAvoidingView,
- Platform,
- ScrollView,
-} from "react-native";
-import { router } from "expo-router";
-import Animated, {
- FadeInDown,
- FadeInUp,
-} from "react-native-reanimated";
-import { Ionicons } from "@expo/vector-icons";
-import { GradientBackground, GlassCard, GlassButton, GlassInput } from "../../src/components/ui";
-import { colors, spacing, radius, typography } from "../../src/theme";
-
-export default function RedeemScreen() {
- const [email, setEmail] = useState("");
- const [code, setCode] = useState("");
- const [isLoading, setIsLoading] = useState(false);
- const [isRedeemed, setIsRedeemed] = useState(false);
- const [error, setError] = useState(null);
-
- const showError = (message: string) => {
- setError(message);
- if (Platform.OS !== 'web') {
- Alert.alert("Error", message);
- }
- };
-
- const clearError = () => setError(null);
-
- const handleRedeem = async () => {
- clearError();
-
- if (!email.trim()) {
- showError("Please enter your email address");
- return;
- }
-
- if (!code.trim()) {
- showError("Please enter your redemption code");
- return;
- }
-
- // Basic email validation
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
- if (!emailRegex.test(email.trim())) {
- showError("Please enter a valid email address");
- return;
- }
-
- setIsLoading(true);
-
- // TODO: Wire up to backend
- // For now, just simulate a delay and show success
- await new Promise(resolve => setTimeout(resolve, 1500));
-
- setIsLoading(false);
- setIsRedeemed(true);
- };
-
- // Success screen
- if (isRedeemed) {
- return (
-
-
-
-
-
-
- Code Redeemed!
-
- Your premium access has been activated for{'\n'}
- {email}
-
-
- Enjoy all premium question packs and features.
-
- router.back()}
- style={{ marginTop: spacing.lg }}
- >
- Back to Profile
-
-
-
-
- );
- }
-
- return (
-
-
-
-
- {/* Back Button */}
-
- router.back()}
- activeOpacity={0.7}
- >
-
-
-
-
- {/* Header */}
-
-
-
-
- Redeem Premium
-
- Enter your email and redemption code to unlock premium features
-
-
-
- {/* Form Card */}
-
-
- {/* Error Message */}
- {error && (
-
-
- {error}
-
- )}
-
- {/* Form Fields */}
-
- { clearError(); setEmail(text); }}
- keyboardType="email-address"
- autoCapitalize="none"
- autoCorrect={false}
- icon={}
- />
-
- { clearError(); setCode(text.toUpperCase()); }}
- autoCapitalize="characters"
- autoCorrect={false}
- icon={}
- />
-
-
- Redeem Code
-
-
-
-
-
- {/* Info Text */}
-
-
-
- Redemption codes are provided through promotions and giveaways. Each code can only be used once.
-
-
-
-
-
-
- );
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- },
- centeredContainer: {
- flex: 1,
- justifyContent: "center",
- alignItems: "center",
- },
- centeredContent: {
- alignItems: "center",
- paddingHorizontal: spacing.lg,
- },
- scrollContent: {
- flexGrow: 1,
- },
- content: {
- flex: 1,
- paddingHorizontal: spacing.lg,
- paddingTop: 60,
- paddingBottom: spacing.xl,
- },
- backButton: {
- width: 44,
- height: 44,
- borderRadius: 22,
- backgroundColor: colors.glass.background,
- justifyContent: "center",
- alignItems: "center",
- marginBottom: spacing.lg,
- },
- headerContainer: {
- alignItems: "center",
- marginBottom: spacing.xl,
- },
- logoContainer: {
- width: 80,
- height: 80,
- borderRadius: 40,
- backgroundColor: colors.primaryLight,
- justifyContent: "center",
- alignItems: "center",
- marginBottom: spacing.md,
- },
- iconContainer: {
- width: 100,
- height: 100,
- borderRadius: 50,
- backgroundColor: colors.successLight,
- justifyContent: "center",
- alignItems: "center",
- marginBottom: spacing.lg,
- },
- title: {
- ...typography.largeTitle,
- color: colors.text,
- marginBottom: spacing.xs,
- textAlign: "center",
- },
- subtitle: {
- ...typography.body,
- color: colors.textSecondary,
- textAlign: "center",
- },
- emailHighlight: {
- color: colors.primary,
- fontWeight: "600",
- },
- hint: {
- ...typography.subhead,
- color: colors.textSecondary,
- textAlign: "center",
- marginTop: spacing.md,
- paddingHorizontal: spacing.md,
- },
- formContainer: {
- marginBottom: spacing.lg,
- },
- errorContainer: {
- flexDirection: "row",
- alignItems: "center",
- backgroundColor: colors.errorLight,
- padding: spacing.md,
- borderRadius: radius.md,
- marginBottom: spacing.md,
- gap: spacing.sm,
- },
- errorText: {
- ...typography.subhead,
- color: colors.error,
- flex: 1,
- },
- form: {
- gap: spacing.sm,
- },
- infoContainer: {
- flexDirection: "row",
- alignItems: "flex-start",
- paddingHorizontal: spacing.sm,
- gap: spacing.sm,
- },
- infoText: {
- ...typography.caption1,
- color: colors.textTertiary,
- flex: 1,
- lineHeight: 18,
- },
-});