Skip to content

Commit

Permalink
Merge branch 'main' into Guccio163/45951_implementApprovalWorkflowSec…
Browse files Browse the repository at this point in the history
…tion
  • Loading branch information
blazejkustra committed Jul 31, 2024
2 parents ca527d1 + c425f7c commit f4ea901
Show file tree
Hide file tree
Showing 52 changed files with 482 additions and 117 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/createNewVersion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:

steps:
- name: Run turnstyle
uses: softprops/turnstyle@ca99add00ff0c9cbc697d22631d2992f377e5bd5
uses: softprops/turnstyle@49108bdfa571e62371bd2c3094893c547ab3fc03
with:
poll-interval-seconds: 10
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/preDeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Run turnstyle
uses: softprops/turnstyle@ca99add00ff0c9cbc697d22631d2992f377e5bd5
uses: softprops/turnstyle@49108bdfa571e62371bd2c3094893c547ab3fc03
with:
poll-interval-seconds: 10
env:
Expand Down
12 changes: 6 additions & 6 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ GEM
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
excon (0.110.0)
excon (0.111.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
Expand All @@ -111,15 +111,15 @@ GEM
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.221.1)
fastlane (2.222.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
Expand Down Expand Up @@ -167,7 +167,7 @@ GEM
ffi (1.17.0)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.0-x86_64-linux)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
Expand Down Expand Up @@ -220,7 +220,7 @@ GEM
mime-types (3.5.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2023.1003)
mini_magick (4.13.1)
mini_magick (4.13.2)
mini_mime (1.1.5)
minitest (5.24.0)
molinillo (0.8.0)
Expand Down Expand Up @@ -294,7 +294,7 @@ PLATFORMS
DEPENDENCIES
activesupport (>= 6.1.7.3, < 7.1.0)
cocoapods (= 1.15.2)
fastlane (~> 2)
fastlane (~> 2, >= 2.222.0)
fastlane-plugin-aws_s3
xcpretty (~> 0)

Expand Down
3 changes: 2 additions & 1 deletion __mocks__/@react-native-firebase/crashlytics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type {FirebaseCrashlyticsTypes} from '@react-native-firebase/crashlytics';

type CrashlyticsModule = Pick<FirebaseCrashlyticsTypes.Module, 'log' | 'recordError' | 'setCrashlyticsCollectionEnabled'>;
type CrashlyticsModule = Pick<FirebaseCrashlyticsTypes.Module, 'log' | 'recordError' | 'setCrashlyticsCollectionEnabled' | 'setUserId'>;

type CrashlyticsMock = () => CrashlyticsModule;

Expand All @@ -10,6 +10,7 @@ const crashlyticsMock: CrashlyticsMock = () => ({
log: jest.fn(),
recordError: jest.fn(),
setCrashlyticsCollectionEnabled: jest.fn(),
setUserId: jest.fn(),
});

export default crashlyticsMock;
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009001405
versionName "9.0.14-5"
versionCode 1009001406
versionName "9.0.14-6"
// 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"
Expand Down
1 change: 1 addition & 0 deletions assets/images/integrationicons/qbo-icon-circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/images/integrationicons/xero-icon-circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Assign a Technical Contact
description: Adding a technical contact to receive integrations emails
---
If your workspace is connected to an [integration](https://help.expensify.com/expensify-classic/hubs/connections/), the person assigned as your Technical Contact will receive notification emails for any integration errors that occur.

To assign a Technical Contact,

1. Hover over Settings and click Workspaces.
2. Click the desired workspace name.
3. Click the Connections tab on the left.
4. In the Technical Contact field, enter the email address for the person you want to assign.
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ description: Get started with Expensify by creating a workspace for your company
---
<div id="new-expensify" markdown="1">

To create an Expensify account for your company, follow the 6 steps below.
To create an Expensify account for your company, follow the 6 steps below and enjoy a free 7-day trial, which won’t begin until workspace activity has begun.

{% include info.html %}
After you create your new company workspace, you can schedule a free private onboarding session with one of our Setup Specialists. After you complete the steps below, check your email and notifications in Expensify for your unique signup link.
{% include end-info.html %}

# 1. Meet Concierge

Concierge is your personal assistant that walks you through setting up your account and also provides:
Concierge is your personal assistant who walks you through setting up your account and also provides:
- Reminders to do things like submit your expenses
- Alerts when more information is needed on an expense report
- Updates on new and improved account features
Expand All @@ -22,15 +22,15 @@ You can get support any time by locating your chat with Concierge in your chat i
# 2. Create a new workspace

<ol type="a">
<li>Click your profile image or icon in the bottom left menu.</li>
<li>Click your profile photo or icon in the bottom left menu.</li>
<li>Scroll down and click <b>Workspaces</b> in the left menu.</li>
<li>Click <b>New workspace</b>.</li>
<li>Click the Edit pencil icon next to your workspace image or icon and select <b>Upload Image</b> to choose an image from your saved files.</li>
<li>Click <b>Name</b> to enter a new name for the workspace.</li>
<li>Click <b>Default Currency</b> to set the currency for all expenses submitted under the workspace. Expensify automatically converts all other currencies to your default currency.</li>
</ol>

![Click your profile image or icon]({{site.url}}/assets/images/ExpensifyHelp_R1_CreateWorkspace_1.png){:width="100%"}
![Click your profile photo or icon]({{site.url}}/assets/images/ExpensifyHelp_R1_CreateWorkspace_1.png){:width="100%"}

![Click Workspaces in the left menu and New Worksapce]({{site.url}}/assets/images/ExpensifyHelp_R1_CreateWorkspace_2.png){:width="100%"}

Expand Down Expand Up @@ -60,7 +60,7 @@ You can also invite members on the workspace’s Profile page by clicking **Shar

# 4. Set admins

Admins are members of your workspace that have permissions to manage the workspace. The table below shows the difference between member and admin permissions:
Admins are members of your workspace who have permission to manage the workspace. The table below shows the difference between member and admin permissions:

| Employee | Workspace Admin |
| ----------------------------------------- | ------------------------------------------ |
Expand Down Expand Up @@ -112,5 +112,7 @@ To add more features,
<li>Enable any desired feature.</li>
<li>Click the related menu item that appears in the left menu to update its settings.</li>
</ol>

Easily monitor when your Free Trial starts and how many days are left on your Subscription page. We’ll also notify you when your trial starts and ends, at which point you’ll add a billing card to continue using all your favorite features!

</div>
2 changes: 1 addition & 1 deletion ios/NewExpensify/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>9.0.14.5</string>
<string>9.0.14.6</string>
<key>FullStory</key>
<dict>
<key>OrgId</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensifyTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>9.0.14.5</string>
<string>9.0.14.6</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/NotificationServiceExtension/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleShortVersionString</key>
<string>9.0.14</string>
<key>CFBundleVersion</key>
<string>9.0.14.5</string>
<string>9.0.14.6</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
Expand Down
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
"version": "9.0.14-5",
"version": "9.0.14-6",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
Expand Down Expand Up @@ -110,7 +110,7 @@
"date-fns-tz": "^2.0.0",
"dom-serializer": "^0.2.2",
"domhandler": "^4.3.0",
"expensify-common": "2.0.57",
"expensify-common": "2.0.61",
"expo": "^50.0.3",
"expo-av": "~13.10.4",
"expo-image": "1.11.0",
Expand Down
25 changes: 12 additions & 13 deletions src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,6 @@ const CONST = {
REPORT_FIELDS_FEATURE: 'reportFieldsFeature',
WORKSPACE_FEEDS: 'workspaceFeeds',
NETSUITE_USA_TAX: 'netsuiteUsaTax',
INTACCT_ON_NEW_EXPENSIFY: 'intacctOnNewExpensify',
},
BUTTON_STATES: {
DEFAULT: 'default',
Expand Down Expand Up @@ -4254,16 +4253,16 @@ const CONST = {
'Then, send your request and wait for that sweet “Cha-ching!” when it’s complete.',
},
{
type: 'enableWallet',
type: 'addBankAccount',
autoCompleted: false,
title: 'Enable your wallet',
title: 'Add personal bank account',
description:
'You’ll need to *enable your Expensify Wallet* to get paid back. Don’t worry, it’s easy!\n' +
'You’ll need to add your personal bank account to get paid back. Don’t worry, it’s easy!\n' +
'\n' +
'Here’s how to set up your wallet:\n' +
'Here’s how to set up your bank account:\n' +
'\n' +
'1. Click your profile picture.\n' +
'2. Click *Wallet* > *Enable wallet*.\n' +
'2. Click *Wallet* > *Bank accounts* > *+ Add bank account*.\n' +
'3. Connect your bank account.\n' +
'\n' +
'Once that’s done, you can request money from anyone and get paid back right into your personal bank account.',
Expand Down Expand Up @@ -4428,19 +4427,19 @@ const CONST = {
'Feel free to add more details if you want, or just send it off. Let’s get you paid back!',
},
{
type: 'enableWallet',
type: 'addBankAccount',
autoCompleted: false,
title: 'Enable your wallet',
title: 'Add personal bank account',
description:
'You’ll need to *enable your Expensify Wallet* to get paid back. Don’t worry, it’s easy!\n' +
'You’ll need to add your personal bank account to get paid back. Don’t worry, it’s easy!\n' +
'\n' +
'Here’s how to enable your wallet:\n' +
'Here’s how to set up your bank account:\n' +
'\n' +
'1. Click your profile picture.\n' +
'2. *Click Wallet* > *Enable wallet*.\n' +
'3. Add your bank account.\n' +
'2. Click *Wallet* > *Bank accounts* > *+ Add bank account*.\n' +
'3. Connect your bank account.\n' +
'\n' +
'Once that’s done, you can request money from anyone and get paid right into your personal bank account.',
'Once that’s done, you can request money from anyone and get paid back right into your personal bank account.',
},
],
},
Expand Down
8 changes: 8 additions & 0 deletions src/Expensify.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import NetworkConnection from './libs/NetworkConnection';
import PushNotification from './libs/Notification/PushNotification';
import './libs/Notification/PushNotification/subscribePushNotification';
import Performance from './libs/Performance';
import setCrashlyticsUserId from './libs/setCrashlyticsUserId';
import StartupTimer from './libs/StartupTimer';
// This lib needs to be imported, but it has nothing to export since all it contains is an Onyx connection
import './libs/UnreadIndicatorUpdater';
Expand Down Expand Up @@ -238,6 +239,13 @@ function Expensify({
Audio.setAudioModeAsync({playsInSilentModeIOS: true});
}, []);

useEffect(() => {
if (!isAuthenticated) {
return;
}
setCrashlyticsUserId(session?.accountID ?? -1);
}, [isAuthenticated, session?.accountID]);

// Display a blank page until the onyx migration completes
if (!isOnyxMigrated) {
return null;
Expand Down
2 changes: 1 addition & 1 deletion src/components/AddPaymentMethodMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ function AddPaymentMethodMenu({

// We temporarily disabled P2P debit cards so we will automatically select the personal bank account option if there is no other option to select.
useEffect(() => {
if (!isVisible) {
if (!isVisible || !isPersonalOnlyOption) {
return;
}

Expand Down
8 changes: 4 additions & 4 deletions src/components/AvatarWithImagePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -307,16 +307,16 @@ function AvatarWithImagePicker({

const onPressAvatar = useCallback(
(openPicker: OpenPicker) => {
if (disabled && enablePreview && onViewPhotoPress) {
onViewPhotoPress();
return;
}
if (isUsingDefaultAvatar) {
openPicker({
onPicked: showAvatarCropModal,
});
return;
}
if (disabled && enablePreview && onViewPhotoPress) {
onViewPhotoPress();
return;
}
setIsMenuVisible((prev) => !prev);
},
[disabled, enablePreview, isUsingDefaultAvatar, onViewPhotoPress, showAvatarCropModal],
Expand Down
Loading

0 comments on commit f4ea901

Please sign in to comment.