diff --git a/.github/workflows/build-ios-release-pullrequest.yml b/.github/workflows/build-ios-release-pullrequest.yml index d84126ba8..f10ae9d2f 100644 --- a/.github/workflows/build-ios-release-pullrequest.yml +++ b/.github/workflows/build-ios-release-pullrequest.yml @@ -1,17 +1,14 @@ name: Build Release Pull Request (iOS) - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - on: pull_request: + types: [opened, reopened, synchronize, labeled, unlabeled] branches: - master workflow_dispatch: jobs: build: + if: contains(github.event.pull_request.labels.*.name, 'testflight') runs-on: macos-14 timeout-minutes: 180 outputs: @@ -129,7 +126,7 @@ jobs: testflight-upload: - if: ${{ github.event_name == 'workflow_dispatch' }} + if: contains(github.event.pull_request.labels.*.name, 'testflight') needs: build runs-on: macos-14 env: @@ -176,3 +173,21 @@ jobs: KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: bundle exec fastlane ios upload_to_testflight_lane working-directory: ./ios + - name: Post PR Comment + uses: actions/github-script@v6 + if: success() # Ensures the message is only posted if previous steps succeed + env: + BUILD_NUMBER: ${{ needs.build.outputs.new_build_number }} + LATEST_COMMIT_MESSAGE: ${{ needs.build.outputs.latest_commit_message }} + with: + script: | + const buildNumber = process.env.BUILD_NUMBER; + const latestCommitMessage = process.env.LATEST_COMMIT_MESSAGE; + const message = `The build ${buildNumber} has been uploaded to TestFlight. The most recent commit for this build is:\n\n '${latestCommitMessage}'`; + const prNumber = context.payload.pull_request.number; + const repo = context.repo; + github.rest.issues.createComment({ + ...repo, + issue_number: prNumber, + body: message, + }); diff --git a/Navigation.tsx b/Navigation.tsx index 97443cf6e..a5813b1fa 100644 --- a/Navigation.tsx +++ b/Navigation.tsx @@ -68,6 +68,7 @@ import Success from './screen/send/success'; import UnlockWith from './UnlockWith'; import { isDesktop, isHandset, isTablet } from './blue_modules/environment'; +import navigationStyle from './components/navigationStyle'; import { useTheme } from './components/themes'; import loc from './loc'; import LappBrowser from './screen/lnd/browser'; @@ -107,15 +108,19 @@ const WalletsRoot = () => { - + - + - + { @@ -170,7 +175,11 @@ const AddWalletRoot = () => { { { const WalletXpubStack = createNativeStackNavigator(); const WalletXpubStackRoot = () => { + const theme = useTheme(); + return ( { ); diff --git a/components/navigationStyle.tsx b/components/navigationStyle.tsx index dc42307a3..ff15cc463 100644 --- a/components/navigationStyle.tsx +++ b/components/navigationStyle.tsx @@ -29,7 +29,7 @@ const navigationStyle = ( closeButton?: boolean; closeButtonFunc?: (deps: { navigation: any; route: any }) => React.ReactElement; }, - formatter: OptionsFormatter, + formatter?: OptionsFormatter, ): NavigationOptionsGetter => { return theme => ({ navigation, route }) => { @@ -63,7 +63,6 @@ const navigationStyle = ( if (!headerBackVisible) { headerLeft = () => <>; - // @ts-ignore: Fix later opts.headerLeft = headerLeft; } @@ -73,7 +72,6 @@ const navigationStyle = ( fontWeight: '600', color: theme.colors.foregroundColor, }, - // @ts-ignore: Fix later headerRight, headerBackTitleVisible: false, headerTintColor: theme.colors.foregroundColor, @@ -94,9 +92,6 @@ export const navigationStyleTx = (opts: NativeStackNavigationOptions, formatter: return theme => ({ navigation, route }) => { let options: NativeStackNavigationOptions = { - headerStyle: { - backgroundColor: theme.colors.customHeader, - }, headerTitleStyle: { fontWeight: '600', color: theme.colors.foregroundColor, @@ -104,7 +99,6 @@ export const navigationStyleTx = (opts: NativeStackNavigationOptions, formatter: // headerBackTitle: null, headerBackTitleVisible: false, headerTintColor: theme.colors.foregroundColor, - // @ts-ignore: Fix later headerLeft: () => ( some WidgetConfiguration + { + if #available(iOSApplicationExtension 17.0, *) + { + return self.contentMarginsDisabled() + } + else + { + return self + } + } +} diff --git a/loc/en.json b/loc/en.json index 6dd2810c7..8f5f4e703 100644 --- a/loc/en.json +++ b/loc/en.json @@ -514,6 +514,7 @@ "i_have_mnemonics": "I have a seed for this key.", "type_your_mnemonics": "Insert a seed to import your existing Vault key.", "this_is_cosigners_xpub": "This is the co-signer’s XPUB—ready to be imported into another wallet. It is safe to share it.", + "this_is_cosigners_xpub_airdrop": "If you share via AirDrop the receivers have to be in the coordination screen.", "wallet_key_created": "Your Vault key was created. Take a moment to safely backup your mnemonic seed.", "are_you_sure_seed_will_be_lost": "Are you sure? Your mnemonic seed will be lost if you don’t have a backup.", "forget_this_seed": "Forget this seed and use the XPUB instead.", diff --git a/package-lock.json b/package-lock.json index 807a393ff..511fbe6f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,9 +19,9 @@ "@react-native-async-storage/async-storage": "1.22.2", "@react-native-clipboard/clipboard": "1.13.2", "@react-native-community/push-notification-ios": "1.11.0", - "@react-navigation/drawer": "6.6.7", - "@react-navigation/native": "6.1.10", - "@react-navigation/native-stack": "6.9.18", + "@react-navigation/drawer": "6.6.9", + "@react-navigation/native": "6.1.12", + "@react-navigation/native-stack": "6.9.20", "@remobile/react-native-qrcode-local-image": "https://github.com/BlueWallet/react-native-qrcode-local-image", "@spsina/bip47": "github:BlueWallet/bip47#0a2f02c90350802f2ec93afa4e6c8843be2d687c", "aezeed": "0.0.5", @@ -63,7 +63,7 @@ "react-native-camera-kit": "13.0.0", "react-native-crypto": "2.2.0", "react-native-default-preference": "1.4.4", - "react-native-device-info": "10.13.0", + "react-native-device-info": "10.13.1", "react-native-document-picker": "https://github.com/BlueWallet/react-native-document-picker#27fddb9d9a88fff09a41ce654f7008cfd33cb4c4", "react-native-draggable-flatlist": "github:BlueWallet/react-native-draggable-flatlist#ebfddc4", "react-native-elements": "3.4.3", @@ -6364,9 +6364,9 @@ } }, "node_modules/@react-navigation/core": { - "version": "6.4.10", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.10.tgz", - "integrity": "sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==", + "version": "6.4.11", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.11.tgz", + "integrity": "sha512-kOCyOc1L0lAl53DbyNl3OkUJwSFKSaVCsV8leJawUXMXJ1FTT3nbS3xMOqbZuchxIbl8T62sZ7YnlWG/21rcMw==", "dependencies": { "@react-navigation/routers": "^6.1.9", "escape-string-regexp": "^4.0.0", @@ -6380,11 +6380,11 @@ } }, "node_modules/@react-navigation/drawer": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.7.tgz", - "integrity": "sha512-9hSJySPQcG33vV199uzkI3jHewvAGjVFF2bhC28TkQYDKtp/DmtTvjCEiecOm+qep1Qp4ksh5vBo2P0A1hF6vQ==", + "version": "6.6.9", + "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.9.tgz", + "integrity": "sha512-fWRp7f2AzLJ5KsQHTeXR+ihVwDeERWigIU4FKa+uoFjPC6ncWzj7kpZYb5/nEJzFOH3ERODLfva6rUf4cPYKcA==", "dependencies": { - "@react-navigation/elements": "^1.3.22", + "@react-navigation/elements": "^1.3.24", "color": "^4.2.3", "warn-once": "^0.1.0" }, @@ -6399,9 +6399,9 @@ } }, "node_modules/@react-navigation/elements": { - "version": "1.3.22", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.22.tgz", - "integrity": "sha512-HYKucs0TwQT8zMvgoZbJsY/3sZfzeP8Dk9IDv4agst3zlA7ReTx4+SROCG6VGC7JKqBCyQykHIwkSwxhapoc+Q==", + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.24.tgz", + "integrity": "sha512-zgZV50qjlv3/N+MzNV0DIRmtg30IZcR0+LaTQRP/OxLtveQkgUG6wIEKl6SXO2ykC9yF9V82msdCzKl9uPSQCA==", "peerDependencies": { "@react-navigation/native": "^6.0.0", "react": "*", @@ -6410,11 +6410,11 @@ } }, "node_modules/@react-navigation/native": { - "version": "6.1.10", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.10.tgz", - "integrity": "sha512-jDG89TbZItY7W7rIcS1RqT63vWOPD4XuQLNKqZO0DY7mKnKh/CGBd0eg3nDMXUl143Qp//IxJKe2TfBQRDEU4A==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.12.tgz", + "integrity": "sha512-t6y7sDCr0HlMf+5TuVjLjyi0ySs0eNGfreDKcWOMEi5wooNFM4LhcUCdEVylpwCPfjQMW/lNVomNromqZFM6HQ==", "dependencies": { - "@react-navigation/core": "^6.4.10", + "@react-navigation/core": "^6.4.11", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.1.23" @@ -6425,11 +6425,11 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.18.tgz", - "integrity": "sha512-PSe0qjROy8zD78ehW048NSuzWRktioSCJmB8LzWSR65ndgVaC2rO+xvgyjhHjqm01YdyVM1XTct2EorSjDV2Ow==", + "version": "6.9.20", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.20.tgz", + "integrity": "sha512-/QXOVJGLPNGv0RXisyI5ld9oaKAdVzwcF88Q1pOA1Icp8Yce036bcixJXBsVuUhqYCJ5cBtojWt5mW6za3cRBw==", "dependencies": { - "@react-navigation/elements": "^1.3.22", + "@react-navigation/elements": "^1.3.24", "warn-once": "^0.1.0" }, "peerDependencies": { @@ -19582,9 +19582,9 @@ } }, "node_modules/react-native-device-info": { - "version": "10.13.0", - "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.13.0.tgz", - "integrity": "sha512-AuZZXxZzQbv3JKE1bV0YPMXJVVTKQ3TJGpiBcYjJMOFZa0CE18kRgqHj3nKTM6KAD8CdCpjoEfuc128Rcs2TxA==", + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.13.1.tgz", + "integrity": "sha512-j/7Z+Yl9Cesjp8vKaVzbuJQKJSVs4ojXATt5WjwipZ0Ss0mBJjqtbc4x5dfZLmQ4y55VVa7c0v8KHca1iqY/TQ==", "peerDependencies": { "react-native": "*" } @@ -27344,9 +27344,9 @@ } }, "@react-navigation/core": { - "version": "6.4.10", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.10.tgz", - "integrity": "sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==", + "version": "6.4.11", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.11.tgz", + "integrity": "sha512-kOCyOc1L0lAl53DbyNl3OkUJwSFKSaVCsV8leJawUXMXJ1FTT3nbS3xMOqbZuchxIbl8T62sZ7YnlWG/21rcMw==", "requires": { "@react-navigation/routers": "^6.1.9", "escape-string-regexp": "^4.0.0", @@ -27357,37 +27357,37 @@ } }, "@react-navigation/drawer": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.7.tgz", - "integrity": "sha512-9hSJySPQcG33vV199uzkI3jHewvAGjVFF2bhC28TkQYDKtp/DmtTvjCEiecOm+qep1Qp4ksh5vBo2P0A1hF6vQ==", + "version": "6.6.9", + "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.9.tgz", + "integrity": "sha512-fWRp7f2AzLJ5KsQHTeXR+ihVwDeERWigIU4FKa+uoFjPC6ncWzj7kpZYb5/nEJzFOH3ERODLfva6rUf4cPYKcA==", "requires": { - "@react-navigation/elements": "^1.3.22", + "@react-navigation/elements": "^1.3.24", "color": "^4.2.3", "warn-once": "^0.1.0" } }, "@react-navigation/elements": { - "version": "1.3.22", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.22.tgz", - "integrity": "sha512-HYKucs0TwQT8zMvgoZbJsY/3sZfzeP8Dk9IDv4agst3zlA7ReTx4+SROCG6VGC7JKqBCyQykHIwkSwxhapoc+Q==" + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.24.tgz", + "integrity": "sha512-zgZV50qjlv3/N+MzNV0DIRmtg30IZcR0+LaTQRP/OxLtveQkgUG6wIEKl6SXO2ykC9yF9V82msdCzKl9uPSQCA==" }, "@react-navigation/native": { - "version": "6.1.10", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.10.tgz", - "integrity": "sha512-jDG89TbZItY7W7rIcS1RqT63vWOPD4XuQLNKqZO0DY7mKnKh/CGBd0eg3nDMXUl143Qp//IxJKe2TfBQRDEU4A==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.12.tgz", + "integrity": "sha512-t6y7sDCr0HlMf+5TuVjLjyi0ySs0eNGfreDKcWOMEi5wooNFM4LhcUCdEVylpwCPfjQMW/lNVomNromqZFM6HQ==", "requires": { - "@react-navigation/core": "^6.4.10", + "@react-navigation/core": "^6.4.11", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.1.23" } }, "@react-navigation/native-stack": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.18.tgz", - "integrity": "sha512-PSe0qjROy8zD78ehW048NSuzWRktioSCJmB8LzWSR65ndgVaC2rO+xvgyjhHjqm01YdyVM1XTct2EorSjDV2Ow==", + "version": "6.9.20", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.20.tgz", + "integrity": "sha512-/QXOVJGLPNGv0RXisyI5ld9oaKAdVzwcF88Q1pOA1Icp8Yce036bcixJXBsVuUhqYCJ5cBtojWt5mW6za3cRBw==", "requires": { - "@react-navigation/elements": "^1.3.22", + "@react-navigation/elements": "^1.3.24", "warn-once": "^0.1.0" } }, @@ -37418,9 +37418,9 @@ "integrity": "sha512-h0vtgiSKws3UmMRJykXAVM4ne1SgfoocUcoBD19ewRpQd6wqurE0HJRQGrSxcHK5LdKE7QPSIB1VX3YGIVS8Jg==" }, "react-native-device-info": { - "version": "10.13.0", - "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.13.0.tgz", - "integrity": "sha512-AuZZXxZzQbv3JKE1bV0YPMXJVVTKQ3TJGpiBcYjJMOFZa0CE18kRgqHj3nKTM6KAD8CdCpjoEfuc128Rcs2TxA==" + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.13.1.tgz", + "integrity": "sha512-j/7Z+Yl9Cesjp8vKaVzbuJQKJSVs4ojXATt5WjwipZ0Ss0mBJjqtbc4x5dfZLmQ4y55VVa7c0v8KHca1iqY/TQ==" }, "react-native-document-picker": { "version": "git+ssh://git@github.com/BlueWallet/react-native-document-picker.git#27fddb9d9a88fff09a41ce654f7008cfd33cb4c4", diff --git a/package.json b/package.json index 540f44c90..0873b3fc5 100644 --- a/package.json +++ b/package.json @@ -102,12 +102,12 @@ "@keystonehq/bc-ur-registry": "0.6.4", "@ngraveio/bc-ur": "1.1.6", "@noble/secp256k1": "1.6.3", - "@react-native-async-storage/async-storage": "1.22.2", + "@react-native-async-storage/async-storage": "1.22.3", "@react-native-clipboard/clipboard": "1.13.2", "@react-native-community/push-notification-ios": "1.11.0", - "@react-navigation/drawer": "6.6.7", - "@react-navigation/native": "6.1.10", - "@react-navigation/native-stack": "6.9.18", + "@react-navigation/drawer": "6.6.9", + "@react-navigation/native": "6.1.12", + "@react-navigation/native-stack": "6.9.20", "@remobile/react-native-qrcode-local-image": "https://github.com/BlueWallet/react-native-qrcode-local-image", "@spsina/bip47": "github:BlueWallet/bip47#0a2f02c90350802f2ec93afa4e6c8843be2d687c", "aezeed": "0.0.5", diff --git a/screen/settings/language.tsx b/screen/settings/language.tsx index 0d75ac89d..595f55e47 100644 --- a/screen/settings/language.tsx +++ b/screen/settings/language.tsx @@ -6,7 +6,6 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { BlueStorageContext } from '../../blue_modules/storage-context'; import presentAlert from '../../components/Alert'; import ListItem from '../../components/ListItem'; -import navigationStyle from '../../components/navigationStyle'; import { useTheme } from '../../components/themes'; import loc, { saveLanguage } from '../../loc'; import { AvailableLanguages, TLanguage } from '../../loc/languages'; @@ -65,7 +64,5 @@ const Language = () => { /> ); }; -// @ts-ignore: Fix later -Language.navigationOptions = navigationStyle({}, opts => ({ ...opts, title: loc.settings.language })); export default Language; diff --git a/screen/wallets/addMultisigStep2.js b/screen/wallets/addMultisigStep2.js index 0c5607541..840647725 100644 --- a/screen/wallets/addMultisigStep2.js +++ b/screen/wallets/addMultisigStep2.js @@ -648,7 +648,7 @@ const WalletsAddMultisigStep2 = () => { - {loc.multisig.this_is_cosigners_xpub} + {loc.multisig.this_is_cosigners_xpub} {Platform.OS === "ios" ? loc.multisig.this_is_cosigners_xpub_airdrop : ""} diff --git a/screen/wallets/viewEditMultisigCosigners.tsx b/screen/wallets/viewEditMultisigCosigners.tsx index f600ada05..e2e1c1142 100644 --- a/screen/wallets/viewEditMultisigCosigners.tsx +++ b/screen/wallets/viewEditMultisigCosigners.tsx @@ -522,7 +522,7 @@ const ViewEditMultisigCosigners = ({ route }: Props) => { - {loc.multisig.this_is_cosigners_xpub} + {loc.multisig.this_is_cosigners_xpub} {Platform.OS === "ios" ? loc.multisig.this_is_cosigners_xpub_airdrop : ""}