From 24a59088e8aadfeaf466b950563a6c92bb2deaa5 Mon Sep 17 00:00:00 2001 From: turnoffthiscomputer Date: Sun, 9 Jun 2024 19:12:40 +0200 Subject: [PATCH] add passport data contribution --- app/package.json | 1 + app/src/screens/MainScreen.tsx | 34 ++++++++++++++++-- app/src/utils/contribute.ts | 58 +++++++++++++++++++++++++++++++ common/src/constants/constants.ts | 14 ++++++++ 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 app/src/utils/contribute.ts diff --git a/app/package.json b/app/package.json index 31d66df6f..f39e34aa0 100644 --- a/app/package.json +++ b/app/package.json @@ -40,6 +40,7 @@ "react": "18.2.0", "react-native": "0.72.3", "react-native-canvas": "^0.1.39", + "react-native-dialog": "^9.3.0", "react-native-fs": "^2.20.0", "react-native-get-random-values": "^1.11.0", "react-native-keychain": "^8.2.0", diff --git a/app/src/screens/MainScreen.tsx b/app/src/screens/MainScreen.tsx index 64bdc2451..6d7e59d83 100644 --- a/app/src/screens/MainScreen.tsx +++ b/app/src/screens/MainScreen.tsx @@ -1,11 +1,10 @@ import React, { useState, useEffect } from 'react'; import { YStack, XStack, Text, Button, Tabs, Sheet, Label, Fieldset, Input, Switch, H2, Image, useWindowDimensions, H4, H3 } from 'tamagui' -import { HelpCircle, IterationCw, VenetianMask, Cog, CheckCircle2, ChevronLeft } from '@tamagui/lucide-icons'; +import { HelpCircle, IterationCw, VenetianMask, Cog, CheckCircle2, ChevronLeft, Share } from '@tamagui/lucide-icons'; import X from '../images/x.png' import Telegram from '../images/telegram.png' import Github from '../images/github.png' import Internet from "../images/internet.png" -import ScanScreen from './ScanScreen'; import ProveScreen from './ProveScreen'; import { Steps } from '../utils/utils'; import AppScreen from './AppScreen'; @@ -22,10 +21,14 @@ import useNavigationStore from '../stores/navigationStore'; import NfcScreen from './NfcScreen'; import CameraScreen from './CameraScreen'; import { mockPassportData_sha256WithRSAEncryption_65537 } from '../../../common/src/utils/mockPassportData'; +import Dialog from "react-native-dialog"; +import { contribute } from '../utils/contribute'; + const MainScreen: React.FC = () => { const [NFCScanIsOpen, setNFCScanIsOpen] = useState(false); const [SettingsIsOpen, setSettingsIsOpen] = useState(false); + const [DialogContributeIsOpen, setDialogContributeIsOpen] = useState(false); const [HelpIsOpen, setHelpIsOpen] = useState(false); const [brokenCamera, setBrokenCamera] = useState(false); const [sheetIsOpen, setSheetIsOpen] = useState(false); @@ -39,6 +42,7 @@ const MainScreen: React.FC = () => { clearPassportDataFromStorage, clearSecretFromStorage, registerCommitment, + passportData, secret } = useUserStore() @@ -108,6 +112,11 @@ const MainScreen: React.FC = () => { scan(); } } + function handleContribute() { + contribute(passportData); + setDialogContributeIsOpen(false); + } + useEffect(() => { if (passportNumber?.length === 9 && (dateOfBirth?.length === 6 && dateOfExpiry?.length === 6)) { @@ -285,6 +294,27 @@ const MainScreen: React.FC = () => { +
+ + +
+ + + Contribute + + By pressing yes, you accept sending your passport data. + Passport data are encrypted and will be deleted once the signature algorithm is implemented. + + setDialogContributeIsOpen(false)} label="Cancel" /> + handleContribute()} label="Contribute" /> + + + +