diff --git a/components/ScannedDataBox.tsx b/components/ScannedDataBox.tsx index 7fd9f92..ff1d015 100644 --- a/components/ScannedDataBox.tsx +++ b/components/ScannedDataBox.tsx @@ -1,19 +1,51 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import { View, Text, StyleSheet, Image, TouchableOpacity } from 'react-native'; import QRCode from 'react-native-qrcode-svg'; import { Ionicons } from '@expo/vector-icons'; interface ScannedDataBoxProps { data: string; - scanResult: any; dataType: string; } -const ScannedDataBox: React.FC = ({ data, scanResult, dataType }) => { - const extractedData = data.split('\n')[1]?.split('Data: ')[1] || ''; +interface ScanResult { + secureConnection: boolean; + virusTotalCheck: boolean; + redirects: number; +} + +const ScannedDataBox: React.FC = ({ data, dataType }) => { + const [scanResult, setScanResult] = useState(null); + + useEffect(() => { + if (data.includes('https://Safe_website.com')) { + setScanResult({ + secureConnection: true, + virusTotalCheck: true, + redirects: 0, + }); + } else if (data.includes('https://unknown_website.com')) { + setScanResult({ + secureConnection: true, + virusTotalCheck: true, + redirects: 2, + }); + } else if (data.includes('http://danger_website.com')) { + setScanResult({ + secureConnection: false, + virusTotalCheck: false, + redirects: 3, + }); + } else { + setScanResult(null); + } + }, [data]); const getResultText = () => { - if (!scanResult || (!scanResult.secureConnection && !scanResult.virusTotalCheck)) { + if (!scanResult) { + return 'UNKNOWN'; + } + if (!scanResult.secureConnection && !scanResult.virusTotalCheck) { return 'DANGEROUS'; } else if (scanResult.redirects > 0) { return 'WARNING'; @@ -28,11 +60,15 @@ const ScannedDataBox: React.FC = ({ data, scanResult, dataT return '#ff0000'; // Red } else if (result === 'WARNING') { return '#ffa500'; // Orange + } else if (result === 'SAFE') { + return '#44c167'; // Green } else { - return '#00ff00'; // Green + return '#000000'; // Black for unknown } }; + const extractedData = data.split('\n')[1]?.split('Data: ')[1] || ''; + return ( @@ -53,7 +89,7 @@ const ScannedDataBox: React.FC = ({ data, scanResult, dataT Checks Secure Connection: {scanResult?.secureConnection ? '✔️' : '✘'} Virus Total Check: {scanResult?.virusTotalCheck ? '✔️' : '✘'} - Redirects: {scanResult?.redirects ?? 'N/A'} + Redirects: {scanResult ? scanResult.redirects : 'N/A'} diff --git a/screens/QRCodeProvider.tsx b/screens/QRCodeProvider.tsx deleted file mode 100644 index 2847764..0000000 --- a/screens/QRCodeProvider.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React, { useState, ReactNode } from 'react'; -import { QRCodeContext } from '../types'; - -interface QRCodeProviderProps { - children: ReactNode; -} - -const testData = [ - { - data: 'Type: URL\nData: https://Safe_website.com', - bookmarked: false, - scanResult: { - secureConnection: true, - virusTotalCheck: true, - redirects: 0, - }, - }, - { - data: 'Type: URL\nData: https://unknown_website.com', - bookmarked: false, - scanResult: { - secureConnection: true, - virusTotalCheck: true, - redirects: 2, - }, - }, - { - data: 'Type: URL\nData: http://danger_website.com', - bookmarked: false, - scanResult: { - secureConnection: false, - virusTotalCheck: false, - redirects: 3, - }, - }, -]; - -export const QRCodeProvider: React.FC = ({ children }) => { - const [qrCodes, setQrCodes] = useState(testData); - const [currentScannedData, setCurrentScannedData] = useState(''); - - const toggleBookmark = (index: number) => { - setQrCodes((prev) => { - const newQrCodes = [...prev]; - newQrCodes[index].bookmarked = !newQrCodes[index].bookmarked; - return newQrCodes; - }); - }; - - const deleteQRCode = (index: number) => { - setQrCodes((prev) => prev.filter((_, i) => i !== index)); - }; - - return ( - - {children} - - ); -}; diff --git a/screens/QRScannerScreen.tsx b/screens/QRScannerScreen.tsx index 8c3278e..c628c33 100644 --- a/screens/QRScannerScreen.tsx +++ b/screens/QRScannerScreen.tsx @@ -114,7 +114,7 @@ const QRScannerScreen: React.FC = ({ clearScanData }) => { setDataType(''); }; - // The function that takes data from { setScanned(true); //Flag is QR code already scanned