diff --git a/.eslintrc.js b/.eslintrc.js index 650692c54eb7..fefad92ce29d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,18 +3,7 @@ const path = require('path'); const restrictedImportPaths = [ { name: 'react-native', - importNames: [ - 'useWindowDimensions', - 'StatusBar', - 'TouchableOpacity', - 'TouchableWithoutFeedback', - 'TouchableNativeFeedback', - 'TouchableHighlight', - 'Pressable', - 'Text', - 'ScrollView', - 'Animated', - ], + importNames: ['useWindowDimensions', 'StatusBar', 'TouchableOpacity', 'TouchableWithoutFeedback', 'TouchableNativeFeedback', 'TouchableHighlight', 'Pressable', 'Text', 'ScrollView'], message: [ '', "For 'useWindowDimensions', please use '@src/hooks/useWindowDimensions' instead.", @@ -22,7 +11,6 @@ const restrictedImportPaths = [ "For 'StatusBar', please use '@libs/StatusBar' instead.", "For 'Text', please use '@components/Text' instead.", "For 'ScrollView', please use '@components/ScrollView' instead.", - "For 'Animated', please use 'Animated' from 'react-native-reanimated' instead.", ].join('\n'), }, { @@ -146,10 +134,6 @@ module.exports = { { selector: ['variable', 'property'], format: ['camelCase', 'UPPER_CASE', 'PascalCase'], - filter: { - regex: '^private_[a-z][a-zA-Z0-9]+$', - match: false, - }, }, { selector: 'function', diff --git a/.github/ISSUE_TEMPLATE/TooltipsTemplate.md b/.github/ISSUE_TEMPLATE/TooltipsTemplate.md deleted file mode 100644 index 882d88f6ccfb..000000000000 --- a/.github/ISSUE_TEMPLATE/TooltipsTemplate.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: 'Tooltips Template' -about: Create this issue when adding a new tooltip to New Expensify -labels: Daily, Design, WaitingForCopy -title: 'Tooltips Template' ---- -Refer to https://stackoverflowteams.com/c/expensify/questions/20762 for the full process to add a tooltip. - -### Problem -Enter the problem that currently exists without the tooltip. - -### Solution -Enter the solution that implementing the tooltip will achieve. - -### What is the purpose of the tooltip? -Enter the purpose. - -### How should the tooltip look -Add the Figma Mock Up that Design builds. - -### Condition -We should show this tooltip to: - -### Decide the prioritisation - -Priority score: - -NOTE: Only one tooltip is shown at a time. diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 45dacacd0b16..b2cc58fa4a6a 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -94,7 +94,6 @@ The GitHub workflows require a large list of secrets to deploy, notify and test 1. `CSC_LINK` - Required to be set for desktop code signing: https://www.electron.build/code-signing.html#travis-appveyor-and-other-ci-servers 1. `CSC_KEY_PASSWORD` - Required to be set for desktop code signing: https://www.electron.build/code-signing.html#travis-appveyor-and-other-ci-servers 1. `APPLE_ID` - Required for notarizing desktop code in `desktop/notarize.js` -1. `APPLE_TEAM_ID` - Required for notarizing desktop code in `desktop/notarize.js` 1. `APPLE_ID_PASSWORD` - Required for notarizing desktop code in `desktop/notarize.js` 1. `AWS_ACCESS_KEY_ID` - Required for hosting website and desktop compiled code 1. `AWS_SECRET_ACCESS_KEY` - Required for hosting website and desktop compiled code diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fab1604f1ee4..d90df954b216 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -318,7 +318,6 @@ jobs: CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/testBuild.yml b/.github/workflows/testBuild.yml index d00781fa2a32..b05a308c49de 100644 --- a/.github/workflows/testBuild.yml +++ b/.github/workflows/testBuild.yml @@ -266,7 +266,6 @@ jobs: CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/testBuildHybrid.yml b/.github/workflows/testBuildHybrid.yml index db40942316b1..549349887e3d 100644 --- a/.github/workflows/testBuildHybrid.yml +++ b/.github/workflows/testBuildHybrid.yml @@ -77,11 +77,11 @@ jobs: const pullRequest = await github.rest.pulls.get({ owner: context.repo.owner, repo: context.repo.repo, - pull_number: '${{ env.PULL_REQUEST_NUMBER }}'', + pull_number: env.PULL_REQUEST_NUMBER, }); const body = pullRequest.data.body; - const regex = /MOBILE-EXPENSIFY:(?\d+)/; + const regex = /MOBILE-EXPENSIFY:(?.*)/; const found = body.match(regex)?.groups?.prNumber || ""; return found.trim(); @@ -93,14 +93,11 @@ jobs: outputs: OLD_DOT_REF: ${{ steps.getHeadRef.outputs.REF }} steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Check if pull request number is correct id: getHeadRef run: | set -e - echo "REF=$(gh pr view ${{ needs.getOldDotPR.outputs.OLD_DOT_PR }} -R 'Expensify/Mobile-Expensify' --json headRefOid --jq '.headRefOid')" >> "$GITHUB_OUTPUT" + echo "REF=$(gh pr view ${{ needs.getOldDotPR.outputs.OLD_DOT_PR }} --json headRefOid --jq '.headRefOid')" >> "$GITHUB_OUTPUT" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/Mobile-Expensify b/Mobile-Expensify index 33f71a1b24e1..618fe635eca8 160000 --- a/Mobile-Expensify +++ b/Mobile-Expensify @@ -1 +1 @@ -Subproject commit 33f71a1b24e15527a8207281344ed9fa57203c69 +Subproject commit 618fe635eca8ca244bd556cbc010705b2df5e730 diff --git a/README.md b/README.md index 42d96ea06dbc..a3862d391518 100644 --- a/README.md +++ b/README.md @@ -794,6 +794,20 @@ The commands used to compile a production or staging desktop build are `npm run HOWEVER, by default those commands will try to notarize the build (signing it as Expensify) and publish it to the S3 bucket where it's hosted for users. In most cases you won't actually need or want to do that for your local testing. To get around that and disable those behaviors for your local build, apply the following diff: ```diff +diff --git a/config/electronBuilder.config.js b/config/electronBuilder.config.js +index e4ed685f65..4c7c1b3667 100644 +--- a/config/electronBuilder.config.js ++++ b/config/electronBuilder.config.js +@@ -42,9 +42,6 @@ module.exports = { + entitlements: 'desktop/entitlements.mac.plist', + entitlementsInherit: 'desktop/entitlements.mac.plist', + type: 'distribution', +- notarize: { +- teamId: '368M544MTT', +- }, + }, + dmg: { + title: 'New Expensify', diff --git a/scripts/build-desktop.sh b/scripts/build-desktop.sh index 791f59d733..526306eec1 100755 --- a/scripts/build-desktop.sh diff --git a/android/app/build.gradle b/android/app/build.gradle index 23de9fc95273..0eaeab305790 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -110,8 +110,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1009008902 - versionName "9.0.89-2" + versionCode 1009008805 + versionName "9.0.88-5" // Supported language variants must be declared here to avoid from being removed during the compilation. // This also helps us to not include unnecessary language variants in the APK. resConfigs "en", "es" diff --git a/config/electronBuilder.config.js b/config/electronBuilder.config.js index 5bfa9b75c463..ad3a23407b89 100644 --- a/config/electronBuilder.config.js +++ b/config/electronBuilder.config.js @@ -42,6 +42,9 @@ module.exports = { entitlements: 'desktop/entitlements.mac.plist', entitlementsInherit: 'desktop/entitlements.mac.plist', type: 'distribution', + notarize: { + teamId: '368M544MTT', + }, target: [ { target: 'default', diff --git a/contributingGuides/TS_CHEATSHEET.md b/contributingGuides/TS_CHEATSHEET.md index e8c899a0aafb..77d316bb861d 100644 --- a/contributingGuides/TS_CHEATSHEET.md +++ b/contributingGuides/TS_CHEATSHEET.md @@ -101,46 +101,22 @@ - [1.4](#animated-style) **Animated styles** -The recommended approach to creating animations is by using the `react-native-reanimated` library, -as it offers greater efficiency and convenience compared to using the `Animated` API directly from -React Native. - ```ts - import React from 'react'; - import { View, StyleSheet, StyleProp, ViewStyle } from 'react-native'; - import Animated, { useAnimatedStyle, useSharedValue, withTiming, SharedValue, WithTimingConfig } from 'react-native-reanimated'; - + import {useRef} from 'react'; + import {Animated, StyleProp, ViewStyle} from 'react-native'; + type MyComponentProps = { - opacity: Animated.SharedValue; - }; - - const MyComponent = ({ opacity }: MyComponentProps) => { - const animatedStyle = useAnimatedStyle(() => ({ - opacity: opacity.value, - })); - - return ( - - ); - }; - - const App = () => { - const opacity = useSharedValue(0); - - const startAnimation = () => { - opacity.value = withTiming(1, { - duration: 1000, - easing: Easing.inOut(Easing.quad), - }); - }; - - return ( - - -