├── ios ├── Config.xcconfig ├── snapshotapp │ ├── Images.xcassets │ │ ├── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── Icon20.png │ │ │ ├── Icon29.png │ │ │ ├── Icon40.png │ │ │ ├── Icon58.png │ │ │ ├── Icon60.png │ │ │ ├── Icon76.png │ │ │ ├── Icon80.png │ │ │ ├── Icon87.png │ │ │ ├── Icon1024.png │ │ │ ├── Icon120.png │ │ │ ├── Icon152.png │ │ │ ├── Icon167.png │ │ │ ├── Icon180.png │ │ │ ├── Icon29-1.png │ │ │ ├── Icon40-1.png │ │ │ ├── Icon40-2.png │ │ │ ├── Icon58-1.png │ │ │ ├── Icon80-1.png │ │ │ └── Icon120-1.png │ │ ├── SplashScreenBackground.imageset │ │ │ ├── image.png │ │ │ └── Contents.json │ │ └── SplashScreen.imageset │ │ │ ├── splashscreen_image.png │ │ │ ├── splashscreen_image-1.png │ │ │ ├── splashscreen_image-2.png │ │ │ └── Contents.json │ ├── noop-file.swift │ ├── snapshotapp-Bridging-Header.h │ ├── main.m │ ├── snapshot.entitlements │ ├── AppDelegate.h │ └── Supporting │ │ └── Expo.plist ├── AppCenter-Config.plist ├── snapshotapp.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── Podfile ├── src ├── hooks │ └── package.json ├── styles │ ├── package.json │ ├── values.ts │ ├── iconfont.ttf │ ├── fonts.ts │ ├── toast.ts │ └── settings.ts ├── context │ └── package.json ├── helpers │ ├── package.json │ ├── numUtils.ts │ ├── snapshotClient.ts │ ├── voting │ │ ├── index.ts │ │ ├── walletTypes.ts │ │ ├── spaceUtils.ts │ │ ├── approval.ts │ │ ├── singleChoice.ts │ │ ├── weighted.ts │ │ └── quadratic.ts │ ├── password.ts │ ├── apolloClient.ts │ ├── phoneUtils.ts │ ├── devApolloClient.ts │ ├── validators.ts │ ├── address.ts │ ├── searchUtils.ts │ ├── EIP712.ts │ ├── engineService.ts │ ├── walletConnectUtils.ts │ ├── storage.ts │ ├── snapshot.ts │ └── device.ts ├── screens │ ├── package.json │ ├── VoteScreen.tsx │ ├── VoteConfirmScreen.tsx │ ├── HomeScreen.tsx │ ├── AboutScreen.tsx │ ├── LandingScreen.tsx │ ├── StrategyScreen.tsx │ ├── AdvancedSettingsScreen.tsx │ └── NetworkScreen.tsx ├── components │ ├── package.json │ ├── ActivityIndicator.tsx │ ├── CustomTouchableNativeFeedback.tsx │ ├── LoginButton.tsx │ ├── IPhoneTopSafeAreaViewBackground.tsx │ ├── IconFont.tsx │ ├── SpaceAvatarButton.tsx │ ├── IphoneBottomSafeAreaViewBackground.tsx │ ├── proposal │ │ ├── ProposalMenu.tsx │ │ ├── VotesList.tsx │ │ ├── BlockResults.tsx │ │ ├── UserVotingPower.tsx │ │ ├── VotingSingleChoice.tsx │ │ ├── Category.tsx │ │ ├── ProposalFiltersBottomSheet.tsx │ │ ├── ProposalVoteBottomSheet.tsx │ │ ├── VotingApproval.tsx │ │ ├── ProposalResultOption.tsx │ │ ├── ProposalState.tsx │ │ ├── ProposalFilters.tsx │ │ ├── ProposalVoterRow.tsx │ │ ├── preview │ │ │ └── ProposalPreviewWinningChoiceText.tsx │ │ └── ProposalInfoRow.tsx │ ├── wallet │ │ ├── Confetti.tsx │ │ ├── TermsAndConditions.tsx │ │ ├── TransactionHeader.tsx │ │ ├── OnboardingProgress.tsx │ │ └── SeedPhraseModal.tsx │ ├── explore │ │ ├── Skin.tsx │ │ └── ExploreHeader.tsx │ ├── IconButton.tsx │ ├── FlatListFooterLoader.tsx │ ├── UserAvatar.tsx │ ├── user │ │ ├── UserAbout.tsx │ │ └── VotedOnProposalPreview.tsx │ ├── tabBar │ │ ├── TabView.tsx │ │ ├── AnimatedNavBar.tsx │ │ ├── PlatformPressable.tsx │ │ ├── AnimatedTabBar.tsx │ │ ├── AnimatedHeader.tsx │ │ └── Scene.tsx │ ├── TextInput.tsx │ ├── createProposal │ │ ├── CreateProposalPreviewResultsBlock.tsx │ │ ├── ChoicesBlock.tsx │ │ ├── Warning.tsx │ │ ├── CreateProposalFooter.tsx │ │ ├── RecapRow.tsx │ │ └── TimePicker.tsx │ ├── dashboard │ │ └── DashboardHeader.tsx │ ├── settings │ │ └── SettingsOption.tsx │ ├── CoreBadge.tsx │ ├── Input.tsx │ ├── SpaceAvatar.tsx │ ├── StateBadge.tsx │ ├── BottomSheetTextInput.tsx │ ├── CategoriesScrollView.tsx │ ├── SearchInput.tsx │ └── SecondaryButton.tsx ├── constants │ ├── package.json │ ├── sample-env.ts │ ├── currencySymbols.json │ ├── networks.ts │ ├── onboarding.ts │ ├── wallets.ts │ ├── toast.tsx │ ├── app.ts │ ├── iconfont.json │ ├── proposal.ts │ ├── colors.ts │ ├── verifiedSpaces.json │ └── navigation.ts ├── images │ ├── Icon167.png │ └── walletConnectLogo.png ├── types │ ├── context.ts │ ├── proposal.ts │ └── explore.ts └── i18n │ └── index.ts ├── appcenter-pre-build.sh ├── assets ├── icon.png ├── favicon.png ├── splash.png ├── adaptive-icon.png └── font │ ├── Calibre-Medium.ttf │ └── Calibre-Semibold.ttf ├── android ├── app │ ├── src │ │ ├── main │ │ │ ├── assets │ │ │ │ ├── appcenter-config.json │ │ │ │ └── fonts │ │ │ │ │ ├── Entypo.ttf │ │ │ │ │ ├── Feather.ttf │ │ │ │ │ ├── Fontisto.ttf │ │ │ │ │ ├── Ionicons.ttf │ │ │ │ │ ├── Octicons.ttf │ │ │ │ │ ├── Zocial.ttf │ │ │ │ │ ├── AntDesign.ttf │ │ │ │ │ ├── EvilIcons.ttf │ │ │ │ │ ├── Foundation.ttf │ │ │ │ │ ├── FontAwesome.ttf │ │ │ │ │ ├── MaterialIcons.ttf │ │ │ │ │ ├── SimpleLineIcons.ttf │ │ │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ │ │ └── MaterialCommunityIcons.ttf │ │ │ ├── res │ │ │ │ ├── values-night │ │ │ │ │ └── colors.xml │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── drawable-hdpi │ │ │ │ │ └── splashscreen_image.png │ │ │ │ ├── drawable-mdpi │ │ │ │ │ └── splashscreen_image.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ └── splashscreen_image.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ └── splashscreen_image.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ └── splashscreen_image.png │ │ │ │ ├── drawable │ │ │ │ │ └── splashscreen.xml │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ └── java │ │ │ │ └── org │ │ │ │ └── snapshot │ │ │ │ └── generated │ │ │ │ └── BasePackageList.java │ │ └── debug │ │ │ └── AndroidManifest.xml │ ├── debug.keystore │ ├── proguard-rules.pro │ ├── build_defs.bzl │ ├── BUCK │ └── eas-build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── build.gradle ├── gradle.properties └── settings.gradle ├── appcenter-post-clone.sh ├── .env-example ├── .expo-shared └── assets.json ├── metro.config.js ├── babel.config.js ├── .gitmodules ├── react-native.config.js ├── eas.json ├── README.md ├── index.js ├── tsconfig.json ├── app.json ├── shim.js ├── .gitignore └── App.tsx /ios/Config.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "tmp.xcconfig" 2 | -------------------------------------------------------------------------------- /src/hooks/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hooks" 3 | } 4 | -------------------------------------------------------------------------------- /src/styles/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "styles" 3 | } 4 | -------------------------------------------------------------------------------- /src/context/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "context" 3 | } 4 | -------------------------------------------------------------------------------- /src/helpers/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "helpers" 3 | } 4 | -------------------------------------------------------------------------------- /src/screens/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "screens" 3 | } 4 | -------------------------------------------------------------------------------- /src/styles/values.ts: -------------------------------------------------------------------------------- 1 | export const OPTION_BORDER_RADIUS = 9; 2 | -------------------------------------------------------------------------------- /appcenter-pre-build.sh: -------------------------------------------------------------------------------- 1 | npm install jetifier@1.6.6 2 | npx jetify 3 | -------------------------------------------------------------------------------- /src/components/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "components" 3 | } 4 | -------------------------------------------------------------------------------- /src/constants/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "constants" 3 | } 4 | -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/assets/icon.png -------------------------------------------------------------------------------- /assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/assets/favicon.png -------------------------------------------------------------------------------- /assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/assets/splash.png -------------------------------------------------------------------------------- /android/app/src/main/assets/appcenter-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_secret": "@string/APP_CENTER_ANDROID_SECRET" 3 | } 4 | -------------------------------------------------------------------------------- /appcenter-post-clone.sh: -------------------------------------------------------------------------------- 1 | yarn install --network-concurrency 1 --network-timeout=600000 && yarn list --depth=0 2 | 3 | -------------------------------------------------------------------------------- /src/images/Icon167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/src/images/Icon167.png -------------------------------------------------------------------------------- /src/styles/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/src/styles/iconfont.ttf -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/debug.keystore -------------------------------------------------------------------------------- /android/app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/assets/adaptive-icon.png -------------------------------------------------------------------------------- /assets/font/Calibre-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/assets/font/Calibre-Medium.ttf -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "expo" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /assets/font/Calibre-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/assets/font/Calibre-Semibold.ttf -------------------------------------------------------------------------------- /src/images/walletConnectLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/src/images/walletConnectLogo.png -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Entypo.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Feather.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Fontisto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Fontisto.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Ionicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Octicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Zocial.ttf -------------------------------------------------------------------------------- /ios/snapshotapp/noop-file.swift: -------------------------------------------------------------------------------- 1 | // 2 | // @generated 3 | // A blank Swift file must be created for native modules with Swift files to work correctly. 4 | // 5 | -------------------------------------------------------------------------------- /ios/snapshotapp/snapshotapp-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/AntDesign.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/Foundation.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /src/constants/sample-env.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | WALLET_CONNECT_API_KEY: "", 3 | SECURE_KEYCHAIN_SALT: "", 4 | INFURA_PROJECT_ID: "", 5 | PUSHER_APP_ID: "", 6 | }; 7 | -------------------------------------------------------------------------------- /src/types/context.ts: -------------------------------------------------------------------------------- 1 | export type ContextAction = { 2 | type: string; 3 | payload?: any; 4 | }; 5 | 6 | export type ContextDispatch = (action: ContextAction) => void; 7 | -------------------------------------------------------------------------------- /.env-example: -------------------------------------------------------------------------------- 1 | WALLET_CONNECT_API_KEY= 2 | SECURE_KEYCHAIN_SALT= 3 | INFURA_PROJECT_ID= 4 | PUSHER_APP_ID= 5 | PUSHER_KEY= 6 | APP_CENTER_ANDROID_SECRET= 7 | APP_CENTER_IOS_SECRET= 8 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/splashscreen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/drawable-hdpi/splashscreen_image.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/splashscreen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/drawable-mdpi/splashscreen_image.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon20.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon29.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon40.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon58.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon60.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon76.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon80.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon87.png -------------------------------------------------------------------------------- /.expo-shared/assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, 3 | "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true 4 | } 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/splashscreen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon1024.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon120.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon152.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon167.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon180.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon29-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon29-1.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon40-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon40-1.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon40-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon40-2.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon58-1.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon80-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon80-1.png -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | // Learn more https://docs.expo.io/guides/customizing-metro 2 | const { getDefaultConfig } = require('expo/metro-config'); 3 | 4 | module.exports = getDefaultConfig(__dirname); 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true); 3 | return { 4 | presets: ["babel-preset-expo"], 5 | plugins: ["react-native-reanimated/plugin"], 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/AppIcon.appiconset/Icon120-1.png -------------------------------------------------------------------------------- /src/helpers/numUtils.ts: -------------------------------------------------------------------------------- 1 | export function getNumberWithOrdinal(n: number) { 2 | const s = ["th", "st", "nd", "rd"], 3 | v = n % 100; 4 | return n + (s[(v - 20) % 10] || s[v] || s[0]); 5 | } 6 | -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/SplashScreenBackground.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/SplashScreenBackground.imageset/image.png -------------------------------------------------------------------------------- /src/constants/currencySymbols.json: -------------------------------------------------------------------------------- 1 | { 2 | "eur": "\u20AC", 3 | "hkd": "\u0024", 4 | "jpy": "\u00A5", 5 | "php": "\u20B1", 6 | "rub": "\u20BD", 7 | "sgd": "\u0024", 8 | "usd": "\u0024" 9 | } 10 | -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/SplashScreen.imageset/splashscreen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/SplashScreen.imageset/splashscreen_image.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/SplashScreen.imageset/splashscreen_image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/SplashScreen.imageset/splashscreen_image-1.png -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/SplashScreen.imageset/splashscreen_image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snapshot-labs-archived/snapshot-app/HEAD/ios/snapshotapp/Images.xcassets/SplashScreen.imageset/splashscreen_image-2.png -------------------------------------------------------------------------------- /src/helpers/snapshotClient.ts: -------------------------------------------------------------------------------- 1 | import Client from "@snapshot-labs/snapshot.js/src/client"; 2 | 3 | export const hubUrl: string = "https://hub.snapshot.org"; 4 | const client = new Client(hubUrl); 5 | 6 | export default client; 7 | -------------------------------------------------------------------------------- /src/styles/fonts.ts: -------------------------------------------------------------------------------- 1 | export const fontStyles = { 2 | normal: { 3 | fontFamily: "Calibre-Medium", 4 | }, 5 | bold: { 6 | fontFamily: "Calibre-Semibold", 7 | }, 8 | }; 9 | 10 | export default fontStyles; 11 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "snapshot-plugins"] 2 | path = snapshot-plugins 3 | url = https://github.com/snapshot-labs/snapshot-plugins 4 | [submodule "snapshot-spaces"] 5 | path = snapshot-spaces 6 | url = https://github.com/snapshot-labs/snapshot-spaces 7 | -------------------------------------------------------------------------------- /react-native.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | dependencies: { 3 | "react-native-pusher-push-notifications": { 4 | platforms: { 5 | android: null, // this skips autolink for android 6 | }, 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/splashscreen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ios/snapshotapp/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char * argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import * as Localization from 'expo-localization'; 2 | import i18n from 'i18n-js'; 3 | import en from './en'; 4 | 5 | i18n.translations = { 6 | en, 7 | }; 8 | 9 | i18n.defaultLocale = 'en'; 10 | i18n.locale = Localization.locale; 11 | i18n.fallbacks = true; 12 | -------------------------------------------------------------------------------- /src/constants/networks.ts: -------------------------------------------------------------------------------- 1 | export const MAINNET = "mainnet"; 2 | export const ROPSTEN = "ropsten"; 3 | export const KOVAN = "kovan"; 4 | export const RINKEBY = "rinkeby"; 5 | export const GOERLI = "goerli"; 6 | export const RPC = "rpc"; 7 | export const NO_RPC_BLOCK_EXPLORER = "NO_BLOCK_EXPLORER"; 8 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Dec 18 11:03:14 EST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /ios/AppCenter-Config.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AppSecret 6 | $(APP_CENTER_IOS_SECRET) 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/constants/onboarding.ts: -------------------------------------------------------------------------------- 1 | import i18n from "i18n-js"; 2 | 3 | export const createChoosePasswordSteps = () => [ 4 | i18n.t("choosePasswordTitle"), 5 | i18n.t("choosePasswordSecure"), 6 | i18n.t("choosePasswordConfirm"), 7 | ]; 8 | 9 | export const WRONG_PASSWORD_ERROR = "Error: Decrypt failed"; 10 | -------------------------------------------------------------------------------- /ios/snapshotapp/snapshot.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | 8 | -------------------------------------------------------------------------------- /ios/snapshotapp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/snapshotapp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ffffff 4 | #FFFFFF 5 | #023c69 6 | #ffffff 7 | -------------------------------------------------------------------------------- /eas.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": { 3 | "release": {}, 4 | "development": { 5 | "distribution": "internal", 6 | "android": { 7 | "gradleCommand": ":app:assembleDebug" 8 | }, 9 | "ios": { 10 | "buildConfiguration": "Debug" 11 | } 12 | } 13 | }, 14 | "submit": { 15 | "release": {} 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ios/snapshotapp/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import 5 | 6 | #import 7 | 8 | @interface AppDelegate : UMAppDelegateWrapper 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # snapshot-app 2 | 3 | ### Install dependencies 4 | 5 | ``` 6 | yarn 7 | ``` 8 | 9 | - Also copy .env-example and rename to .env with your own environment variables 10 | 11 | ### Extra step to install for iOS 12 | 13 | ``` 14 | cd ios 15 | pod install 16 | ``` 17 | 18 | ### Run project 19 | 20 | ``` 21 | yarn ios 22 | yarn android 23 | ``` 24 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import "react-native-gesture-handler"; 2 | import { registerRootComponent } from "expo"; 3 | import "./shim"; 4 | import App from "./App"; 5 | 6 | // registerRootComponent calls AppRegistry.registerComponent('main', () => App); 7 | // It also ensures that whether you load the app in Expo Go or in a native build, 8 | // the environment is set up appropriately 9 | registerRootComponent(App); 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Snapshot 4 | DO_NOT_ASK_JAVASCRIPT 5 | ALWAYS_SEND 6 | 7 | -------------------------------------------------------------------------------- /src/helpers/voting/index.ts: -------------------------------------------------------------------------------- 1 | import singleChoice from "./singleChoice"; 2 | import approval from "./approval"; 3 | import quadratic from "./quadratic"; 4 | import rankedChoice from "./rankedChoice"; 5 | import weighted from "./weighted"; 6 | 7 | export default { 8 | "single-choice": singleChoice, 9 | approval, 10 | quadratic, 11 | "ranked-choice": rankedChoice, 12 | weighted, 13 | basic: singleChoice, 14 | }; 15 | -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/SplashScreenBackground.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "idiom": "universal", 5 | "filename": "image.png", 6 | "scale": "1x" 7 | }, 8 | { 9 | "idiom": "universal", 10 | "scale": "2x" 11 | }, 12 | { 13 | "idiom": "universal", 14 | "scale": "3x" 15 | } 16 | ], 17 | "info": { 18 | "version": 1, 19 | "author": "expo" 20 | } 21 | } -------------------------------------------------------------------------------- /src/types/proposal.ts: -------------------------------------------------------------------------------- 1 | import { Space } from "types/explore"; 2 | 3 | export type Proposal = { 4 | author: string; 5 | body: string; 6 | created: number; 7 | end: number; 8 | id: string; 9 | space: Space; 10 | start: number; 11 | state: string; 12 | title: string; 13 | snapshot: string; 14 | type: string; 15 | strategies: any; 16 | choices: string[]; 17 | votes: number; 18 | scores_state: string; 19 | scores_total: number; 20 | scores: number[]; 21 | }; 22 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /src/helpers/password.ts: -------------------------------------------------------------------------------- 1 | export const MIN_PASSWORD_LENGTH = 8; 2 | 3 | export const getPasswordStrengthWord = (strength: number) => { 4 | switch (strength) { 5 | case 0: 6 | return "Weak"; 7 | case 1: 8 | return "Weak"; 9 | case 2: 10 | return "Weak"; 11 | case 3: 12 | return "Good"; 13 | case 4: 14 | return "Strong"; 15 | } 16 | }; 17 | 18 | export const passwordRequirementsMet = (password: string) => 19 | password.length >= MIN_PASSWORD_LENGTH; 20 | -------------------------------------------------------------------------------- /src/helpers/apolloClient.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ApolloClient, 3 | createHttpLink, 4 | InMemoryCache, 5 | } from "@apollo/client/core"; 6 | 7 | // HTTP connection to the API 8 | const httpLink = createHttpLink({ 9 | uri: `https://hub.snapshot.org/graphql`, 10 | }); 11 | 12 | const apolloClient = new ApolloClient({ 13 | link: httpLink, 14 | cache: new InMemoryCache({ 15 | addTypename: false, 16 | }), 17 | defaultOptions: { 18 | query: { 19 | fetchPolicy: "no-cache", 20 | }, 21 | }, 22 | }); 23 | 24 | export default apolloClient; 25 | -------------------------------------------------------------------------------- /src/helpers/phoneUtils.ts: -------------------------------------------------------------------------------- 1 | import { Platform } from "react-native"; 2 | import DeviceInfo from "react-native-device-info"; 3 | import includes from "lodash/includes"; 4 | 5 | export function isOldIphone() { 6 | if (Platform.OS === "android") return false; 7 | const deviceId = DeviceInfo.getDeviceId(); 8 | const deviceIdLowered = deviceId?.toLowerCase() || ""; 9 | if ( 10 | includes(deviceIdLowered, "iphone7") || 11 | includes(deviceIdLowered, "iphone8") || 12 | includes(deviceIdLowered, "iphone9") 13 | ) { 14 | return true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ios/snapshotapp/Images.xcassets/SplashScreen.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "splashscreen_image.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "splashscreen_image-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "splashscreen_image-2.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/helpers/devApolloClient.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ApolloClient, 3 | createHttpLink, 4 | InMemoryCache, 5 | } from "@apollo/client/core"; 6 | 7 | // HTTP connection to the API 8 | const httpLink = createHttpLink({ 9 | uri: `https://snap-hack-hub.herokuapp.com/graphql`, 10 | }); 11 | 12 | const devApolloClient = new ApolloClient({ 13 | link: httpLink, 14 | cache: new InMemoryCache({ 15 | addTypename: false, 16 | }), 17 | defaultOptions: { 18 | query: { 19 | fetchPolicy: "no-cache", 20 | }, 21 | }, 22 | }); 23 | 24 | export default devApolloClient; 25 | -------------------------------------------------------------------------------- /src/helpers/voting/walletTypes.ts: -------------------------------------------------------------------------------- 1 | export interface WalletFollow { 2 | from?: string; 3 | wallet: string; 4 | timestamp?: number; 5 | } 6 | 7 | export interface WalletUnfollow { 8 | from?: string; 9 | wallet: string; 10 | timestamp?: number; 11 | } 12 | 13 | export const walletFollowTypes = { 14 | WalletFollow: [ 15 | { name: "from", type: "address" }, 16 | { name: "wallet", type: "string" }, 17 | ], 18 | }; 19 | 20 | export const walletUnfollowTypes = { 21 | WalletUnfollow: [ 22 | { name: "from", type: "address" }, 23 | { name: "wallet", type: "string" }, 24 | ], 25 | }; 26 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "jsx": "react", 5 | "strict": true, 6 | "baseUrl": "./src", 7 | "paths": { 8 | "api/*": ["./api/*"], 9 | "components/*": ["./components/*"], 10 | "context/*": ["./context/*"], 11 | "constants/*": ["./constants/*"], 12 | "images/*": ["./images/*"], 13 | "screens/*": ["./screens/*"], 14 | "styles/*": ["./styles/*"], 15 | "types/*": ["./types/*"], 16 | "i18n/*": ["./i18n/*"], 17 | "helpers/*": ["./helpers/*"] 18 | }, 19 | "typeRoots": ["./src/types"] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/snapshotapp/Supporting/Expo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EXUpdatesCheckOnLaunch 6 | ALWAYS 7 | EXUpdatesEnabled 8 | 9 | EXUpdatesLaunchWaitMs 10 | 0 11 | EXUpdatesReleaseChannel 12 | default 13 | EXUpdatesSDKVersion 14 | 42.0.0 15 | EXUpdatesURL 16 | https://exp.host/@jmmyers36/snapshot-app 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/helpers/voting/spaceUtils.ts: -------------------------------------------------------------------------------- 1 | import { ContextDispatch } from "types/context"; 2 | import { SPACES_QUERY } from "helpers/queries"; 3 | import apolloClient from "helpers/apolloClient"; 4 | import { EXPLORE_ACTIONS } from "context/exploreContext"; 5 | 6 | export async function setSpaceDetails( 7 | spaceId: string, 8 | exploreDispatch: ContextDispatch 9 | ) { 10 | const query = { 11 | query: SPACES_QUERY, 12 | variables: { 13 | id_in: [spaceId], 14 | }, 15 | }; 16 | const result: any = await apolloClient.query(query); 17 | exploreDispatch({ 18 | type: EXPLORE_ACTIONS.UPDATE_SPACES, 19 | payload: result.data.spaces, 20 | }); 21 | } 22 | -------------------------------------------------------------------------------- /android/app/build_defs.bzl: -------------------------------------------------------------------------------- 1 | """Helper definitions to glob .aar and .jar targets""" 2 | 3 | def create_aar_targets(aarfiles): 4 | for aarfile in aarfiles: 5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] 6 | lib_deps.append(":" + name) 7 | android_prebuilt_aar( 8 | name = name, 9 | aar = aarfile, 10 | ) 11 | 12 | def create_jar_targets(jarfiles): 13 | for jarfile in jarfiles: 14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] 15 | lib_deps.append(":" + name) 16 | prebuilt_jar( 17 | name = name, 18 | binary_jar = jarfile, 19 | ) 20 | -------------------------------------------------------------------------------- /src/components/ActivityIndicator.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { ActivityIndicator } from "react-native-paper"; 3 | import { ViewProps } from "react-native"; 4 | import Device from "helpers/device"; 5 | 6 | interface ActivityIndicatorProps { 7 | animating?: boolean; 8 | color: string; 9 | size?: "small" | "large" | number; 10 | hidesWhenStopped?: boolean; 11 | style?: ViewProps; 12 | } 13 | 14 | function ActivityIndicatorComponent(props: ActivityIndicatorProps) { 15 | let size = props.size; 16 | if (size === "small" && Device.isAndroid()) { 17 | size = 30; 18 | } 19 | return ; 20 | } 21 | 22 | export default ActivityIndicatorComponent; 23 | -------------------------------------------------------------------------------- /src/components/CustomTouchableNativeFeedback.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { TouchableNativeFeedback } from "react-native-gesture-handler"; 3 | 4 | interface CustomTouchableNativeFeedbackProps { 5 | children: React.FC; 6 | style: any; 7 | } 8 | 9 | function CustomTouchableNativeFeedback({ 10 | children, 11 | style, 12 | ...props 13 | }: CustomTouchableNativeFeedbackProps) { 14 | return ( 15 | 20 | {children} 21 | 22 | ); 23 | } 24 | 25 | export default CustomTouchableNativeFeedback; 26 | -------------------------------------------------------------------------------- /src/components/LoginButton.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useNavigation } from "@react-navigation/native"; 3 | import i18n from "i18n-js"; 4 | import { WALLET_CONNECT_SCREEN } from "constants/navigation"; 5 | import Button from "./Button"; 6 | import { StackNavigationProp } from "@react-navigation/stack"; 7 | import { RootStackParamsList } from "types/navigationTypes"; 8 | 9 | function LoginButton() { 10 | const navigation = useNavigation>(); 11 | return ( 12 |