From eb0e020130881356f9c0ca592e16cad101a2d085 Mon Sep 17 00:00:00 2001 From: Matthew Callens Date: Mon, 25 Dec 2023 11:01:06 -0500 Subject: [PATCH] ext: refactor trusted sites page (#4262) * ext: refactor trusted sites page * remove submodule --- .easignore | 73 --------------- .../app-mobile-monorepo-setup/action.yml | 30 ------- .github/actions/build-setup/action.yml | 6 -- .github/workflows/app-mobile-build.yml | 69 -------------- .github/workflows/app-mobile-preview.yml | 89 ------------------- .../workflows/app-mobile-staging-update.yml | 72 --------------- .github/workflows/master.yml | 5 -- .github/workflows/pull-requests.yml | 13 --- package.json | 3 - .../Settings/Preferences/TrustedSites.tsx | 80 ++++++++--------- packages/eslint-config-custom/native.js | 4 - .../eslint-config-custom/shared/backpack.js | 5 -- packages/secure-ui/.eslintrc.js | 4 - packages/tamagui-core/.eslintrc.js | 4 - scripts/check-package-json-react-native.sh | 1 - scripts/sync-expo-deps.js | 13 +-- tmux-mobile.sh | 31 ------- turbo.json | 5 +- 18 files changed, 46 insertions(+), 461 deletions(-) delete mode 100644 .easignore delete mode 100644 .github/actions/app-mobile-monorepo-setup/action.yml delete mode 100644 .github/workflows/app-mobile-build.yml delete mode 100644 .github/workflows/app-mobile-preview.yml delete mode 100644 .github/workflows/app-mobile-staging-update.yml delete mode 100644 tmux-mobile.sh diff --git a/.easignore b/.easignore deleted file mode 100644 index 8c501cf71b..0000000000 --- a/.easignore +++ /dev/null @@ -1,73 +0,0 @@ -# All this file is doing is making sure hiddenwebview.html and provider.html -# are sent to expo's (EAS) servers when building the mobile app - -!hiddenwebview.html -!provider.html - -# Everything below this line is just a copy of the root .gitignore ------------------ - -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -build/ -web-build/ - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local -.parcel-cache - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -ledger-injection.js -.rollup.cache -dist/ -.turbo -.env -.idea -test-ledger/ - -.expo -.next - -*-e - -.eslintcache -.js.map -.d.ts.map -.tsbuildinfo - -.dev.vars -.tamagui -.d.ts -.d.ts.map - -# Not using zero-installs -# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions - -# Local Netlify folder -.netlify -docker -web -examples -packages/app-extension diff --git a/.github/actions/app-mobile-monorepo-setup/action.yml b/.github/actions/app-mobile-monorepo-setup/action.yml deleted file mode 100644 index 52e4335f7c..0000000000 --- a/.github/actions/app-mobile-monorepo-setup/action.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: app-mobile monorepo setup - -inputs: - eas-version: - description: Version of EAS CLI to use - default: latest - - expo-token: - description: Expo token to authenticate with - required: false - -runs: - using: composite - steps: - - name: ๐Ÿ— Setup Node - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: "yarn" - - - name: ๐Ÿ— Setup Expo - uses: expo/expo-github-action@v7 - with: - eas-version: ${{ inputs.eas-version }} - # expo-version: ${{ inputs.expo-version }} - token: ${{ inputs.expo-token }} - - - name: ๐Ÿ“ฆ Install dependencies - run: yarn install --immutable - shell: bash diff --git a/.github/actions/build-setup/action.yml b/.github/actions/build-setup/action.yml index a41b2f7b1e..5ce1214f2a 100644 --- a/.github/actions/build-setup/action.yml +++ b/.github/actions/build-setup/action.yml @@ -8,12 +8,6 @@ runs: # Setup environment. ########################################################################## - # - # Fetch submodule files and prepare for yarn install - # - - run: git submodule update --init && rm -f packages/trek-api-web-ts/yarn.lock - shell: bash - # # Make sure react-native package.json key is added if used in mobile # diff --git a/.github/workflows/app-mobile-build.yml b/.github/workflows/app-mobile-build.yml deleted file mode 100644 index 840af96eeb..0000000000 --- a/.github/workflows/app-mobile-build.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: app-mobile build - -on: - workflow_dispatch: - inputs: - platform: - description: Platform to build for (all/android/ios/native/web) - type: choice - required: true - default: native - options: - - all - - native - - android - - ios - - web - profile: - description: EAS build profile (development/production/preview) - type: choice - required: true - default: development - options: - - development - - production - - preview - app_env: - description: APP_ENV (development/production) - type: choice - required: true - default: development - options: - - development - - production - -jobs: - mobile: - name: Build App - timeout-minutes: 70 - runs-on: ubuntu-latest - # To use Remote Caching, uncomment the next lines and follow the steps below. - env: - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - steps: - # Checkout must come before a custom action - - name: ๐Ÿ— Setup repository - uses: actions/checkout@v3 - - - name: ๐Ÿ— Setup monorepo - uses: ./.github/actions/app-mobile-monorepo-setup - with: - expo-token: ${{ secrets.EXPO_TOKEN }} - - - name: ๐Ÿ‘ท Build modules - env: - BACKPACK_CONFIG_VERSION: "${{ env.RELEASE_PREFIX }}-latest-beta-${{ github.run_number }}" - BACKPACK_CONFIG_LOG_LEVEL: "info" - BACKPACK_FEATURE_LIGHT_MODE: "true" - BACKPACK_FEATURE_POP_MODE: "true" - BACKPACK_FEATURE_XNFT: "true" - # CI!=true so that build warnings aren't treated like errors (for now) - CI: "" - run: yarn build:mobile - - - name: ๐Ÿš€ Build mobile - working-directory: packages/app-mobile - env: - APP_ENV: ${{ github.event.inputs.app_env }} - run: eas build --non-interactive --wait --platform=${{ github.event.inputs.platform }} --profile=${{ github.event.inputs.profile }} diff --git a/.github/workflows/app-mobile-preview.yml b/.github/workflows/app-mobile-preview.yml deleted file mode 100644 index 1c373bcd67..0000000000 --- a/.github/workflows/app-mobile-preview.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: app-mobile preview - -on: - workflow_dispatch: - inputs: - # platform: - # description: Platform to build for (all/android/ios/native/web) - # type: choice - # required: true - # default: native - # options: - # - all - # - native - # - android - # - ios - # - web - # profile: - # description: EAS build profile (development/production/preview) - # type: choice - # required: true - # default: development - # options: - # - development - # - production - # - preview - app_env: - description: APP_ENV (development/production) - type: choice - required: true - default: development - options: - - development - - production - # pull_request: - # paths: - # - "packages/app-mobile/**" - # types: [opened, synchronize] - -concurrency: - group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - mobile: - name: Preview App - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - # Checkout must come before a custom action - - name: ๐Ÿ— Setup repository - uses: actions/checkout@v3 - - - name: ๐Ÿ— Setup monorepo - uses: ./.github/actions/app-mobile-monorepo-setup - with: - expo-token: ${{ secrets.EXPO_TOKEN }} - - - name: ๐Ÿ‘ท Build modules - env: - BACKPACK_CONFIG_VERSION: "${{ env.RELEASE_PREFIX }}-latest-beta-${{ github.run_number }}" - BACKPACK_CONFIG_LOG_LEVEL: "info" - BACKPACK_FEATURE_LIGHT_MODE: "true" - BACKPACK_FEATURE_POP_MODE: "true" - BACKPACK_FEATURE_XNFT: "true" - # CI!=true so that build warnings aren't treated like errors (for now) - CI: "" - run: yarn build:mobile - - - name: ๐Ÿš€ Publish preview - working-directory: packages/app-mobile - env: - APP_ENV: "production" - COMMIT_HASH: ${{ github.sha }} - run: eas update --branch preview --message=${{ github.sha }} - - # - name: ๐Ÿ’ฌ Comment preview - # uses: expo/expo-github-action/preview-comment@v7 - # with: - # comment: false - # project: packages/app-mobile - # channel: pr-${{ github.event.number }} - - # - name: ๐Ÿ’ฌ Comment in Slack - # uses: slackapi/slack-github-action@v1.17.0 - # env: - # SLACK_BOT_TOKEN: ${{ secrets.SLACK_TOKEN }} - # with: - # channel-id: mobile-app - # slack-message: 'New deployment is ready!\n- Preview: ${{ steps.preview.outputs.projectQR }}' diff --git a/.github/workflows/app-mobile-staging-update.yml b/.github/workflows/app-mobile-staging-update.yml deleted file mode 100644 index 3524999e30..0000000000 --- a/.github/workflows/app-mobile-staging-update.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: mobile staging app updates -on: - push: - branches: - - master - paths: - - "packages/app-mobile/**" - -jobs: - update: - name: EAS Update - runs-on: ubuntu-latest - # runs-on: macos-latest - - env: - EXPO_USE_DEV_SERVER: true - TMPDIR: /tmp # Used for metro caching - NODE_OPTIONS: "--max_old_space_size=4096" - APP_ENV: staging - - steps: - - name: Check for EXPO_TOKEN - run: | - if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then - echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions" - exit 1 - fi - - - name: ๐Ÿ“ฆ Checkout repository - uses: actions/checkout@v3 - - - name: ๐ŸŒ Setup SSH for trek-api-web-ts submodule - uses: webfactory/ssh-agent@v0.8.0 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY_SUBMODULE_TREK_API }} - - - run: git submodule update --init && rm -f packages/trek-api-web-ts/yarn.lock - - - name: ๐ŸŒ Setup Node - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: yarn - - - name: Cache Metro - uses: actions/cache@v3 - id: cache-metro - with: - path: | - ${{ env.TMPDIR }}/metro-cache - ${{ env.TMPDIR }}/haste-map* - key: npm-${{ env.NODE_VERSION }}-${{ runner.os }} - - - name: ๐Ÿš€ Setup EAS - uses: expo/expo-github-action@v8 - with: - eas-version: latest - token: ${{ secrets.EXPO_TOKEN }} - - - name: ๐Ÿงถ Install dependencies - run: yarn install --immutable - - - name: ๐Ÿ—๏ธ Build dependencies - run: yarn build:mobile - - - name: ๐Ÿš€ Publish iOS Update - working-directory: ./packages/app-mobile - run: APP_ENV="staging" eas update --auto --branch ios-staging -p ios - - - name: ๐Ÿš€ Publish Android Update - working-directory: ./packages/app-mobile - run: APP_ENV="staging" eas update --auto --branch android-staging -p android diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index db357ccd62..4eb08e293c 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -13,11 +13,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup SSH for trek-api-web-ts submodule - uses: webfactory/ssh-agent@v0.8.0 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY_SUBMODULE_TREK_API }} - - name: Build setup uses: ./.github/actions/build-setup diff --git a/.github/workflows/pull-requests.yml b/.github/workflows/pull-requests.yml index a1db8b2ecc..fffb7e14a8 100644 --- a/.github/workflows/pull-requests.yml +++ b/.github/workflows/pull-requests.yml @@ -14,11 +14,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup SSH for trek-api-web-ts submodule - uses: webfactory/ssh-agent@v0.8.0 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY_SUBMODULE_TREK_API }} - - name: Build setup uses: ./.github/actions/build-setup @@ -47,19 +42,11 @@ jobs: id: changes with: filters: | - mobile: - - 'packages/app-mobile/**' - - 'packages/**/*.native.*' extension: - 'packages/app-extension/**' xnft: - 'packages/xnft-cli/**' - - if: steps.changes.outputs.mobile == 'true' - uses: andymckay/labeler@1.0.4 - with: - add-labels: "mobile" - - if: steps.changes.outputs.extension == 'true' uses: andymckay/labeler@1.0.4 with: diff --git a/package.json b/package.json index 9eafd9ac41..ffd178cb40 100644 --- a/package.json +++ b/package.json @@ -17,15 +17,12 @@ "start": "env-cmd --silent turbo run start --concurrency=100% --filter='./packages/*'", "start:fresh": "yarn install && yarn clean && yarn install && yarn start", "test": "env-cmd --silent turbo run test -- --passWithNoTests --watchAll=false", - "submodule": "git submodule update --init && rm -f packages/trek-api-web-ts/yarn.lock && yarn", "build": "env-cmd --silent turbo run build --filter='!./examples/**'", "build:fresh": "git add . && git clean -xfd && yarn install && yarn submodule && yarn build --force", "e2e": "env-cmd --silent turbo run e2e", "clean": "git clean -xfd", "start:ext": "env-cmd --silent turbo run start --filter='@coral-xyz/app-extension...' --filter='@coral-xyz/background...' --concurrency=50", "build:ext": "env-cmd --silent turbo run build --filter='@coral-xyz/app-extension...' --filter='@coral-xyz/background...'", - "start:mobile": "turbo run start --filter='@coral-xyz/app-mobile...' --filter='@coral-xyz/provider-injection'", - "build:mobile": "turbo run build --filter='@coral-xyz/app-mobile...' --filter='@coral-xyz/provider-injection'", "upgrade:tamagui": "manypkg upgrade tamagui && manypkg upgrade @tamagui && manypkg upgrade tamagui-loader && manypkg upgrade react-native-web-lite", "sync-i18n-from-airtable": "npx esno scripts/airtable-to-localizations.ts && prettier --write packages/i18n/src/locales", "sync-i18n-to-airtable": "npx esno scripts/sync-localizations-to-airtable.ts", diff --git a/packages/app-extension/src/components/Unlocked/Settings/Preferences/TrustedSites.tsx b/packages/app-extension/src/components/Unlocked/Settings/Preferences/TrustedSites.tsx index 9194e1af0e..5bdbcebf3d 100644 --- a/packages/app-extension/src/components/Unlocked/Settings/Preferences/TrustedSites.tsx +++ b/packages/app-extension/src/components/Unlocked/Settings/Preferences/TrustedSites.tsx @@ -1,16 +1,17 @@ import { useEffect } from "react"; import { UI_RPC_METHOD_APPROVED_ORIGINS_DELETE } from "@coral-xyz/common"; import { useTranslation } from "@coral-xyz/i18n"; -import { - EmptyState, - List, - ListItem, - PrimaryButton, -} from "@coral-xyz/react-common"; +import { EmptyState, List } from "@coral-xyz/react-common"; import { useApprovedOrigins, useBackgroundClient } from "@coral-xyz/recoil"; -import { useTheme, YStack } from "@coral-xyz/tamagui"; +import { + BpPrimaryButton, + ListItemCore, + RoundedContainerGroup, + StyledText, + useTheme, + YStack, +} from "@coral-xyz/tamagui"; import { GppBad } from "@mui/icons-material"; -import { ListItemText } from "@mui/material"; import { useNavigation } from "../../../common/Layout/NavStack"; @@ -44,37 +45,30 @@ export function PreferencesTrustedSites() { > {Object.entries(approvedOrigins).map( ([key, origin]: any, i, { length }) => ( - } + - - {_trimProtocol(origin)} - - + + {_trimProtocol(origin)} + + + + ) )} @@ -94,15 +88,15 @@ function RevokeButton({ origin }: { origin: string }) { }; return ( - onClick()} + ); } diff --git a/packages/eslint-config-custom/native.js b/packages/eslint-config-custom/native.js index 11cf36ad78..73c8c0b3c5 100644 --- a/packages/eslint-config-custom/native.js +++ b/packages/eslint-config-custom/native.js @@ -61,10 +61,6 @@ module.exports = { selector: "Literal[value=/\\d+(px|vh|vw|rem|pt|em)$/]", message: "Units like px, vh, etc don't work. Use unitless instead", }, - { - selector: "Literal[value=/(treklabs.xyz|backpack.exchange)/]", - message: "Use Constants.expoConfig?.extra?.exchange{Api,Base}Url", - }, ], "no-restricted-properties": [ "error", diff --git a/packages/eslint-config-custom/shared/backpack.js b/packages/eslint-config-custom/shared/backpack.js index 12ae0eeab7..718c454d06 100644 --- a/packages/eslint-config-custom/shared/backpack.js +++ b/packages/eslint-config-custom/shared/backpack.js @@ -7,11 +7,6 @@ module.exports = { message: "dont import app-extension into shared modules bc of build tooling", }, - { - name: "@coral-xyz/app-mobile", - message: - "dont import app-mobile into shared modules bc of build tooling", - }, ], }, }; diff --git a/packages/secure-ui/.eslintrc.js b/packages/secure-ui/.eslintrc.js index 425f5e1d8f..fb3af92078 100644 --- a/packages/secure-ui/.eslintrc.js +++ b/packages/secure-ui/.eslintrc.js @@ -29,10 +29,6 @@ module.exports = { name: "@coral-xyz/app-extension", message: "never", }, - { - name: "@coral-xyz/app-mobile", - message: "never", - }, { name: "@coral-xyz/db", message: "not even once", diff --git a/packages/tamagui-core/.eslintrc.js b/packages/tamagui-core/.eslintrc.js index 67924d4f1d..13fbbfd63d 100644 --- a/packages/tamagui-core/.eslintrc.js +++ b/packages/tamagui-core/.eslintrc.js @@ -12,10 +12,6 @@ module.exports = { name: "@coral-xyz/app-extension", message: "never", }, - { - name: "@coral-xyz/app-mobile", - message: "never", - }, { name: "@coral-xyz/db", message: "not even once", diff --git a/scripts/check-package-json-react-native.sh b/scripts/check-package-json-react-native.sh index f0bf1bb93f..e77de972a9 100755 --- a/scripts/check-package-json-react-native.sh +++ b/scripts/check-package-json-react-native.sh @@ -6,7 +6,6 @@ declare -A whitelist whitelist["packages/ledger-injection"]=1 whitelist["packages/provider-injection"]=1 -whitelist["packages/app-mobile"]=1 whitelist["packages/provider-core"]=1 whitelist["packages/secure-background"]=1 whitelist["packages/wallet-standard"]=1 diff --git a/scripts/sync-expo-deps.js b/scripts/sync-expo-deps.js index fe24a371a7..b12a686910 100644 --- a/scripts/sync-expo-deps.js +++ b/scripts/sync-expo-deps.js @@ -16,7 +16,13 @@ const appMobilePackagePath = path.join( ); const appMobilePackage = JSON.parse( - fs.readFileSync(appMobilePackagePath, "utf8") + (() => { + try { + return fs.readFileSync(appMobilePackagePath, "utf8"); + } catch { + return '{ "dependencies": {} }'; + } + })() ); const appMobileDeps = Object.entries(appMobilePackage.dependencies).filter( @@ -36,10 +42,7 @@ directories.forEach((dir) => { .filter(Boolean); packagePaths.forEach((packagePath) => { - if ( - packagePath === "packages/app-mobile/package.json" || - packagePath === "packages/app-extension/package.json" - ) { + if (packagePath === "packages/app-extension/package.json") { return; } diff --git a/tmux-mobile.sh b/tmux-mobile.sh deleted file mode 100644 index 52127bf46e..0000000000 --- a/tmux-mobile.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# Create a new tmux session -tmux new-session -d -s backpack -tmux rename-window 'terminal' - -# Split the window vertically -tmux split-window -v -p10 -tmux split-window -h - -# Run the user-specified command in the top left pane -tmux select-pane -t2 -tmux send-keys "cd packages/app-mobile && yarn ios" C-m - -tmux select-pane -t3 -tmux send-keys "yarn start:mobile" C-m - -tmux new-window -n 'workspace' -tmux select-window -t1 \; select-pane -t1 \; send-keys "tmux resize-pane -t1 -y 70" Enter - -tmux attach-session -t backpack - -# ---------------------------- -# 90% viewport -# :q -# -# ---------------------------- -# 10% viewport | -# app-mobile | backpack root -# yarn ios | yarn start:mobile -# | diff --git a/turbo.json b/turbo.json index 467effd737..284a74aa10 100644 --- a/turbo.json +++ b/turbo.json @@ -47,10 +47,7 @@ }, "gql:generate": { "cache": false, - "outputs": [ - "packages/app-mobile/src/graphql/__generated__/**", - "packages/data-components/src/apollo/**" - ] + "outputs": ["packages/data-components/src/apollo/**"] } } }