import React, { useEffect, useState } from "react";
import { View, Text, Button, ActivityIndicator, StyleSheet } from "react-native";
import AsyncStorage from "@react-native-async-storage/async-storage";
import { WebView } from "react-native-webview";
const SHORT_LINK = "https://earnlinks.in/ik5L"; // your verification link
const VERIFICATION_KEY = "lastVerified";
const DOWNLOAD_LINK = "https://muftukmall.fun/linkchanger"; // download link
export default function App() {
const [verified, setVerified] = useState(false);
const [checking, setChecking] = useState(true);
const [showWebView, setShowWebView] = useState(false);
// Check if user already verified in last 24h
useEffect(() => {
const checkVerification = async () => {
const lastVerified = await AsyncStorage.getItem(VERIFICATION_KEY);
if (lastVerified) {
const diff = Date.now() - parseInt(lastVerified, 10);
if (diff < 24 * 60 * 60 * 1000) {
setVerified(true);
}
}
setChecking(false);
};
checkVerification();
}, []);
// Mark verification complete
const completeVerification = async () => {
await AsyncStorage.setItem(VERIFICATION_KEY, Date.now().toString());
setVerified(true);
};
// Show loading spinner while checking
if (checking) {
return (
);
}
// Show verification page if not yet verified
if (!verified) {
return (
{
if (request.url !== SHORT_LINK) {
completeVerification();
return false; // block final redirect
}
return true;
}}
/>
);
}
// Show in-app browser with your download link
if (showWebView) {
return (
{
// Detect if site redirects to a back URL
if (navState.url.includes("muftukmall.fun/back")) {
setShowWebView(false); // Close browser and return to app
}
}}
/>
);
}
// Main app after verification
return (
✅ Verification Successful
You can now access your download link
);
}
// Dark mode styles
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#121212",
justifyContent: "center",
alignItems: "center",
padding: 20,
},
successText: {
fontSize: 22,
color: "#00ffcc",
marginBottom: 20,
textAlign: "center",
},
infoText: {
fontSize: 16,
color: "#ffffff",
textAlign: "center",
},
});
Comments
Post a Comment