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 : ""}