Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…y-App into hur/feat/log-network-response
  • Loading branch information
hurali97 committed Aug 1, 2024
2 parents 719f5c8 + e0f17df commit db46ec7
Show file tree
Hide file tree
Showing 135 changed files with 1,876 additions and 809 deletions.
3 changes: 3 additions & 0 deletions .github/actions/javascript/getReleaseBody/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: 'Get Release Body'
description: 'Generate the body of a production release'
inputs:
GITHUB_TOKEN:
description: Auth token for New Expensify Github
required: true
PR_LIST:
description: JSON array of pull request numbers (string)
required: true
Expand Down
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
1 change: 1 addition & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ jobs:
id: getReleaseBody
uses: ./.github/actions/javascript/getReleaseBody
with:
GITHUB_TOKEN: ${{ github.token }}
PR_LIST: ${{ steps.getReleasePRList.outputs.PR_LIST }}

- name: 🚀 Create release to trigger production deploy 🚀
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
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 1009001504
versionName "9.0.15-4"
// 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
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@ description: Connect your Expensify workspace with Sage Intacct
order: 1
---
# Overview

Expensify’s seamless integration with Sage Intacct allows you to connect using either Role-based permissions or User-based permissions.

Once connected to Intacct you’re able to automate report exports, customize your coding preferences, and utilize Sage Intacct’s advanced features. When you’ve configured these settings in Expensify correctly, you can use the integration's settings to automate many tasks, streamlining your workflow for increased efficiency.

{% include info.html %}
The Sage Intacct integration is only available on the Control plan.
{% include end-info.html %}

# How to connect to Sage Intacct
We support setting up Sage Intacct with both User-based permissions and Role-based permissions for Expense Reports and Vendor Bills.
- User-based Permissions - Expense Reports
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ description: Customize the fields that appear on a report or an invoice
---
<div id="expensify-classic" markdown="1">

Workspace Admins can add additional required fields to a report to include selections for project names, locations, trip information, and more.
Workspace Admins can add additional required report fields which allow you to specify header-level details like specific project names, business trip information, locations, and more.

{% include info.html %}
You cannot create these report fields directly in Expensify if you are connected to an accounting integration (QuickBooks Online, QuickBooks Desktop, Intacct, Xero, or NetSuite). Please refer to the relevant article for instructions on creating fields within that system.
Report fields are only available on the Control plan. You cannot create these report fields directly in Expensify if you are connected to an accounting integration (QuickBooks Online, QuickBooks Desktop, Intacct, Xero, or NetSuite). Please refer to the relevant article for instructions on creating fields within that system.
{% include end-info.html %}

To create a custom field for a report,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ Expensify allows Workspace Admins to create workflows and automations that deter
5. Select an approval mode.
- **Submit and Close**: No approval is required. Once a report is submitted, it will be automatically approved and closed. This option may be useful if your expense approvals occur in another system or if the submitter and approver are the same person.
- **Submit and Approve**: All reports go to one person that you assign as the approver. Once a report is submitted, it is sent to the approver. This is the default option.
- **Advanced Approval**: Allows for more complex workflows, like assigning different approvers for different employees or requiring secondary approvals for expenses that exceed a set limit.
- **Advanced Approval**: This workflow feature is for companies that require more than one person to approve a report before it can be reimbursed.
Advanced Approval is only available on the Control plan.


To add to your approval workflow, you can also set up approval rules for specific categories and tags.

Expand Down
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 @@ -11,6 +11,12 @@ You can choose to enable, disable, or edit the default Expensify categories, or

# Enable, disable, or edit default categories

Once you have manually added your categories or automatically imported them from a connected accounting system, you can enable or disable the categories to determine whether they can be added to expenses.

{% include info.html %}
Importing GL & payroll codes from your accounting system is only available on the Control plan.
{% include end-info.html %}

1. Hover over Settings, then click **Workspaces**.
2. Click the **Group** tab on the left.
3. Click the desired workspace name.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@ order: 1

# Connect to Sage Intacct

Enjoy automated syncing and reduce manual entries with the Expensify and Sage Intacct integration. Gain in-depth, real-time financial insights with user-defined dimensions, as well as expense coding by department, class, location, customer, and project (job).

{% include info.html %}
The Sage Intacct integration is only available on the Control plan.
{% include end-info.html %}

## Overview

Expensify’s integration with Sage Intacct allows you to connect using either role-based permissions or user-based permissions and exporting either expense reports or vendor bills.

Checklist of items to complete:
Expand Down
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>
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ To delete a category,
Once you have manually added your categories or automatically imported them from a connected accounting system, you can enable or disable the categories to determine whether they can be added to expenses.

{% include info.html %}
After connecting an accounting system, Expensify automatically imports charts of accounts, GL accounts, expense accounts, and additional details into your workspace as **disabled** categories. Workspace admins can enable these categories to make them available for workspace members to add to their expenses.
Importing GL & payroll codes from your accounting system is only available on the Control plan. After connecting an accounting system, Expensify automatically imports charts of accounts, GL accounts, expense accounts, and additional details into your workspace as **disabled** categories. Workspace admins can enable these categories to make them available for workspace members to add to their expenses.
{% include end-info.html %}

To enable or disable a category,
Expand Down
2 changes: 1 addition & 1 deletion docs/articles/new-expensify/workspaces/Track-taxes.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Tax rates are only available on the Control plan. Collect plan users will need t

## Enable taxes on a workspace

Taxes can be enabled on any workspace where the default currency is not USD. Please note that if you have a direct accounting integration, tax rates will be managed through the integration and cannot be manually enabled or disabled using the instructions below.
Tax codes are only available on the Control plan. Taxes can be enabled on any workspace where the default currency is not USD. Please note that if you have a direct accounting integration, tax rates will be managed through the integration and cannot be manually enabled or disabled using the instructions below.

**To enable taxes on your workspace:**

Expand Down
Binary file added docs/assets/images/QBO_help_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/QBO_help_02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/QBO_help_03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/QBO_help_04.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions ios/NewExpensify/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>9.0.14</string>
<string>9.0.15</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
Expand All @@ -40,7 +40,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>9.0.14.5</string>
<string>9.0.15.4</string>
<key>FullStory</key>
<dict>
<key>OrgId</key>
Expand Down
4 changes: 2 additions & 2 deletions ios/NewExpensifyTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>9.0.14</string>
<string>9.0.15</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>9.0.14.5</string>
<string>9.0.15.4</string>
</dict>
</plist>
4 changes: 2 additions & 2 deletions ios/NotificationServiceExtension/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundleShortVersionString</key>
<string>9.0.14</string>
<string>9.0.15</string>
<key>CFBundleVersion</key>
<string>9.0.14.5</string>
<string>9.0.15.4</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

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

2 changes: 1 addition & 1 deletion 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.15-4",
"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
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/node_modules/react-native-keyboard-controller/src/components/KeyboardAvoidingView/hooks.ts b/node_modules/react-native-keyboard-controller/src/components/KeyboardAvoidingView/hooks.ts
index 676eafc..6d84beb 100644
--- a/node_modules/react-native-keyboard-controller/src/components/KeyboardAvoidingView/hooks.ts
+++ b/node_modules/react-native-keyboard-controller/src/components/KeyboardAvoidingView/hooks.ts
@@ -33,6 +33,10 @@ export const useKeyboardAnimation = () => {

isClosed.value = e.height === 0;

+ if (e.height > 0) {
+ heightWhenOpened.value = e.height;
+ }
+
// `height` update happens in `onMove` handler
// in `onEnd` we need to update only if `onMove`
// wasn't called (i. e. duration === 0)
2 changes: 1 addition & 1 deletion 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 @@ -1409,6 +1408,7 @@ const CONST = {
SYNC_REIMBURSED_REPORTS: 'syncReimbursedReports',
REIMBURSEMENT_ACCOUNT_ID: 'reimbursementAccountID',
ENTITY: 'entity',
DIMENSION_PREFIX: 'dimension_',
},

SAGE_INTACCT: {
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
5 changes: 5 additions & 0 deletions src/ONYXKEYS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,13 @@ const ONYXKEYS = {

/** Whether the user has seen HybridApp explanation modal */
NVP_SEEN_NEW_USER_MODAL: 'nvp_seen_new_user_modal',

/** Store the state of the subscription */
NVP_PRIVATE_SUBSCRIPTION: 'nvp_private_subscription',

/** Store the state of the private tax-exempt */
NVP_PRIVATE_TAX_EXEMPT: 'nvp_private_taxExempt',

/** Store the stripe id status */
NVP_PRIVATE_STRIPE_CUSTOMER_ID: 'nvp_private_stripeCustomerID',

Expand Down Expand Up @@ -844,6 +848,7 @@ type OnyxValuesMapping = {
[ONYXKEYS.UPDATE_REQUIRED]: boolean;
[ONYXKEYS.RESET_REQUIRED]: boolean;
[ONYXKEYS.PLAID_CURRENT_EVENT]: string;
[ONYXKEYS.NVP_PRIVATE_TAX_EXEMPT]: boolean;
[ONYXKEYS.LOGS]: OnyxTypes.CapturedLogs;
[ONYXKEYS.SHOULD_STORE_LOGS]: boolean;
[ONYXKEYS.SHOULD_MASK_ONYX_STATE]: boolean;
Expand Down
8 changes: 8 additions & 0 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ const ROUTES = {

SEARCH_ADVANCED_FILTERS_STATUS: 'search/filters/status',

SEARCH_ADVANCED_FILTERS_MERCHANT: 'search/filters/merchant',

SEARCH_ADVANCED_FILTERS_DESCRIPTION: 'search/filters/description',

SEARCH_ADVANCED_FILTERS_REPORT_ID: 'search/filters/reportID',

SEARCH_ADVANCED_FILTERS_CATEGORY: 'search/filters/category',

SEARCH_REPORT: {
route: 'search/view/:reportID',
getRoute: (reportID: string) => `search/view/${reportID}` as const,
Expand Down
4 changes: 4 additions & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ const SCREENS = {
ADVANCED_FILTERS_DATE_RHP: 'Search_Advanced_Filters_Date_RHP',
ADVANCED_FILTERS_TYPE_RHP: 'Search_Advanced_Filters_Type_RHP',
ADVANCED_FILTERS_STATUS_RHP: 'Search_Advanced_Filters_Status_RHP',
ADVANCED_FILTERS_DESCRIPTION_RHP: 'Search_Advanced_Filters_Description_RHP',
ADVANCED_FILTERS_MERCHANT_RHP: 'Search_Advanced_Filters_Merchant_RHP',
ADVANCED_FILTERS_REPORT_ID_RHP: 'Search_Advanced_Filters_ReportID_RHP',
ADVANCED_FILTERS_CATEGORY_RHP: 'Search_Advanced_Filters_Category_RHP',
TRANSACTION_HOLD_REASON_RHP: 'Search_Transaction_Hold_Reason_RHP',
BOTTOM_TAB: 'Search_Bottom_Tab',
},
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
Loading

0 comments on commit db46ec7

Please sign in to comment.