Skip to content

Commit

Permalink
Merge branch 'main' into pac-guerreiro/refactor/migrate-25309-25310-2…
Browse files Browse the repository at this point in the history
…5311-25312-25313-to-typescript

# Conflicts:
#	src/libs/OptionsListUtils.ts
  • Loading branch information
pac-guerreiro committed Mar 13, 2024
2 parents a5131ed + fa6bcc0 commit d78e9d1
Show file tree
Hide file tree
Showing 315 changed files with 4,900 additions and 3,683 deletions.
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ module.exports = {
{
selector: ['parameter', 'method'],
format: ['camelCase', 'PascalCase'],
leadingUnderscore: 'allow',
},
],
'@typescript-eslint/ban-types': [
Expand Down
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@ This is a checklist for PR authors. Please make sure to complete all tasks and c
- [ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like `Avatar` is modified, I verified that `Avatar` is working as expected in all cases)
- [ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
- [ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
- [ ] If the PR modifies the form input styles:
- [ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
- [ ] I verified that all the inputs inside a form are aligned with each other.
- [ ] I added `Design` label so the design team can review the changes.
- [ ] I added `Design` label and/or tagged `@Expensify/design` so the design team can review the changes.
- [ ] If a new page is added, I verified it's using the `ScrollView` component to make it scrollable when more elements are added to the page.
- [ ] If the `main` branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the `Test` steps.

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/e2ePerformanceTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ jobs:
run: npm run e2e-test-runner-build

- name: Copy e2e code into zip folder
run: cp tests/e2e/dist/index.js zip/testRunner.js
run: cp tests/e2e/dist/index.js zip/testRunner.ts

- name: Zip everything in the zip directory up
run: zip -qr App.zip ./zip
Expand Down
5 changes: 2 additions & 3 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1001045002
versionName "1.4.50-2"
versionCode 1001045103
versionName "1.4.51-3"
}

flavorDimensions "default"
Expand Down Expand Up @@ -181,7 +181,6 @@ android {
dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation("com.facebook.react:flipper-integration")

if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
Expand Down
Binary file modified assets/fonts/web/ExpensifyNewKansas-Medium.woff
Binary file not shown.
Binary file modified assets/fonts/web/ExpensifyNewKansas-Medium.woff2
Binary file not shown.
Binary file modified assets/fonts/web/ExpensifyNewKansas-MediumItalic.woff
Binary file not shown.
Binary file modified assets/fonts/web/ExpensifyNewKansas-MediumItalic.woff2
Binary file not shown.
7 changes: 1 addition & 6 deletions assets/images/document-slash.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ const metro = {
};

/*
* We use Flipper, <React.Profiler> and react-native-performance to capture/monitor stats
* We use <React.Profiler> and react-native-performance to capture/monitor stats
* By default <React.Profiler> is disabled in production as it adds small overhead
* When CAPTURE_METRICS is set we're explicitly saying that we want to capture metrics
* To enable the <Profiler> for release builds we add these aliases */
Expand Down
1 change: 0 additions & 1 deletion config/webpack/webpack.common.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ const includeModules = [
'@react-native-picker',
'react-native-modal',
'react-native-gesture-handler',
'react-native-flipper',
'react-native-google-places-autocomplete',
'react-native-qrcode-svg',
'react-native-view-shot',
Expand Down
4 changes: 2 additions & 2 deletions contributingGuides/REVIEWER_CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@
- [ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like `Avatar` is modified, I verified that `Avatar` is working as expected in all cases)
- [ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
- [ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
- [ ] If the PR modifies the form input styles:
- [ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
- [ ] I verified that all the inputs inside a form are aligned with each other.
- [ ] I added `Design` label so the design team can review the changes.
- [ ] I added `Design` label and/or tagged `@Expensify/design` so the design team can review the changes.
- [ ] If a new page is added, I verified it's using the `ScrollView` component to make it scrollable when more elements are added to the page.
- [ ] If the `main` branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the `Test` steps.
- [ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.
Expand Down
35 changes: 20 additions & 15 deletions docs/_data/_routes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ platforms:
icon: /assets/images/bank-card.svg
description: Find out how to connect Expensify to your financial institutions, track credit card transactions, and best practices for reconciling company cards.

- href: billing-and-subscriptions
title: Billing & Subscriptions
- href: expensify-billing
title: Expensify Billing
icon: /assets/images/subscription-annual.svg
description: Here is where you can review Expensify's billing and subscription options, plan types, and payment methods.
description: Review Expensify's subscription options, plan types, and payment methods.

- href: expense-and-report-features
title: Expense & Report Features
- href: reports
title: Reports
icon: /assets/images/money-receipt.svg
description: From enabling automatic expense auditing to tracking attendees, here is where you can review tips and tutorials to streamline expense management.
description: Set approval workflows and use Expensify’s automated report features.

- href: expensify-card
title: Expensify Card
Expand All @@ -49,10 +49,10 @@ platforms:
icon: /assets/images/handshake.svg
description: Discover how to get the most out of Expensify as an ExpensifyApproved! accountant partner. Learn how to set up your clients, receive CPE credits, and take advantage of your partner discount.

- href: get-paid-back
title: Get Paid Back
- href: expenses
title: Expenses
icon: /assets/images/money-into-wallet.svg
description: Whether you submit an expense report or an invoice, find out here how to ensure a smooth and timely payback process every time.
description: Learn more about expense tracking and submission.

- href: insights-and-custom-reporting
title: Insights & Custom Reporting
Expand All @@ -64,20 +64,25 @@ platforms:
icon: /assets/images/workflow.svg
description: Enhance Expensify’s capabilities by integrating it with your accounting or HR software. Here is where you can learn more about creating a synchronized financial management ecosystem.

- href: manage-employees-and-report-approvals
title: Manage Employees & Report Approvals
- href: copilots-and-delegates
title: Copilots & Delegates
icon: /assets/images/envelope-receipt.svg
description: Master the art of overseeing employees and reports by utilizing Expensify’s automation features and approval workflows.
description: Assign Copilots and delegate report approvals.

- href: send-payments
title: Send Payments
icon: /assets/images/send-money.svg
description: Uncover step-by-step guidance on sending direct reimbursements to employees, paying an invoice to a vendor, and utilizing third-party payment options.

- href: workspace-and-domain-settings
title: Workspace & Domain Settings
- href: workspaces
title: Workspaces
icon: /assets/images/shield.svg
description: Discover how to set up and manage workspace, define user permissions, and implement compliance rules to maintain a secure and compliant financial management landscape.
description: Configure rules, settings, and limits for your company’s spending.

- href: domains
title: Domains
icon: /assets/images/domains.svg
description: Claim and verify your company’s domain to access additional management and security features.

- href: new-expensify
title: New Expensify
Expand Down
1 change: 1 addition & 0 deletions docs/_sass/_main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -508,6 +508,7 @@ button {

.info {
padding: 12px;
margin-bottom: 20px;
border-radius: 8px;
background-color: $color-highlightBG;
color: $color-text;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: Claim and verify a domain
description: Grant specific employee permissions by claiming a private domain and verifying it in Expensify
---
<div id="expensify-classic" markdown="1">

If you have a private domain (like yourcompany.com), you can add the domain to your Expensify account. Claiming a domain allows you to grant specific permissions to accounts that include the domain in their email address (for example, if your domain is yourcompany.com, anyone who signs up under this domain—like [email protected]—will have these domain rules applied to their account).

Claiming a domain also allows you to:
* Import and reconcile company credit cards and Expensify Cards
* Add company credit card and Expensify Card rules and restrictions

Once you verify your domain, you’ll be able to:
* Assign delegates for employees who are on vacation
* Delete employee Expensify accounts
* Enable SAML / SSO settings for secure log in

{% include info.html %}
You can claim and verify private domains only. Public domains (like gmail.com) cannot be used to create a domain.
{% include end-info.html %}

# Step 1: Claim domain

<ol type="a">
<li>Hover over Settings, then click <b>Domains</b>.</li>
<li>Click <b>New Domain</b>.</li>
<li>Enter your domain name (e.g., yourcompany.com).</li>
<li>Click <b>Submit</b>.</li>
</ol>

# Step 2: Verify domain ownership

{% include info.html %}
To complete this step, you must have a Control workspace, and you’ll need access to your domain provider account (GoDaddy, Wix, GSuite, etc.). If you don’t verify the domain, you will still have access to the domain to add and manage credit card expenses and domain admins, but you will not be able to invite members, add groups, use domain reporting tools, set delegates for employees on vacation, or enable SAML SSO. For more guidance on how to complete this process for a specific provider, check the provider’s website.{% include end-info.html %}

<ol type="a">
<li>Log in to your DNS service provider (which may be the website you purchased the domain from or that currently hosts the domain, like NameCheap, GoDaddy, DNSMadeEasy, or Amazon Route53. You may need to contact your company’s IT department if your domain is managed internally).</li>
<li>Find the page for DNS records, which might be labeled as DNS Management or Zone File Editor.</li>
<li>Add a new TXT record and set the value as 532F6180D8.</li>
<li>Save your changes.</li>
<li>In Expensify, click the Domain Members tab and click <b>Verify</b>.</li>
</ol>

After successful verification, an email will be sent to all members of the Expensify domain to inform them that their accounts will be under domain control (i.e. the rules set for the domain will affect their account).

# Add another domain

To add an additional domain, you’ll have to first add your email address that is connected with your domain as your [primary or secondary email] (https://help.expensify.com/articles/expensify-classic/settings/account-settings/Change-or-add-email-address) (for example, if your domain is yourcompany.com, then you want to add and verify your email address @yourcompany.com as your primary or secondary email address). Then you can complete the steps above to add the domain.

</div>
26 changes: 26 additions & 0 deletions docs/articles/expensify-classic/domains/Create-A-Group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
title: Create a group
description: How to set different rules for different members of your domain
---
<div id="expensify-classic" markdown="1">

To set different domain rules for different members, you can place them into groups. For example, many organizations create different groups for employees and managers since they generally need different domain permissions.

To create a group,

1. Hover over Settings, then click **Domains**.
2. Click the name of the domain.
3. Click the **Groups** tab on the left.
4. Click **Create Group**.
5. Select all of the group settings and permissions.
- **Permission Group Name**: Enter a name for the group
- **Default Group**: Determine if new domain members will be automatically added to this group.
- **Strictly enforce expense workspace rules**: Determine if all expense rules must be met before people in this group can submit a report.
- **Restrict primary login selection**: Determine if members of this group will be restricted from using a personal email address to access their Expensify account.
- **Restrict expense workspace creation/removal**: Determine if members of this group will be allowed to create new workspaces.
- **Preferred workspace**: Determine if this group will automatically have their expenses and reports posted to a specific workspace.
- **Set preferred workspace to**: If preferred workspace is enabled, select which workspace members of this group will have set as their preferred workspace.
- **Expensify Card Preferred Workspace**: If preferred workspace is enabled, determine if Expensify Card transactions for this group will be posted to the preferred workspace listed for the Expensify Card instead of the preferred workspace listed in the above settings.
6. Click **Save**.

</div>
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ To view details about your past or upcoming trips, follow these steps within the
If you received your receipt in an email that is not associated with your Expensify account, you can add this email as a [secondary login](https://help.expensify.com/articles/expensify-classic/account-settings/Account-Details#how-to-add-a-secondary-login) to directly forward the receipt into your account.

## How do I upload Trip receipts that were not sent to me by email?
If your trip receipt was not sent to you by email, you can manually upload the receipt to your account. Check out this resource for more information on [manually uploading receipts](https://help.expensify.com/articles/expensify-classic/get-paid-back/expenses/Upload-Receipts#manually-upload).
If your trip receipt was not sent to you by email, you can manually upload the receipt to your account. Check out this resource for more information on [manually uploading receipts](https://help.expensify.com/articles/expensify-classic/expenses/expenses/Upload-Receipts#manually-upload).

{% include faq-end.md %}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Learn more about your pay-per-use subscription.
# Overview
Pay-per-use is a billing option for people who prefer to use Expensify month to month or on an as-needed basis. On a pay-per-use subscription, you will only pay for active users in that given month.

**We recommend this billing setup for companies that use Expensify a few months out of the year**. If you have expenses to manage for more than 6 out of 12 months, an [**Annual Subscription**](https://help.expensify.com/articles/expensify-classic/billing-and-subscriptions/Annual-Subscription) may better suit your needs.
**We recommend this billing setup for companies that use Expensify a few months out of the year**. If you have expenses to manage for more than 6 out of 12 months, an [**Annual Subscription**](https://help.expensify.com/articles/expensify-classic/expensify-billing/Annual-Subscription) may better suit your needs.

# How to start a pay-per-use subscription
1. Create a Group Workspace if you haven’t already by going to **Settings > Workspaces > Group > New Workspace**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ If you need to cancel your Expensify Card and cannot access the website or mobil

It's not possible to order a replacement card over the phone, so, if applicable, you would need to handle this step from your Expensify account.

# Card Expiration Date

If you notice that your card expiration date is soon, it's time for a new Expensify card. Expensify will automatically input a notification in your account's Home (Inbox) tab. This notice will ask you to input your address, but this is more if you have changed your address since your card was issued to you. You can ignore it and do nothing; the new Expensify card will ship to your address on file. The new Expensify card will have a new, unique card number and will not be associated with the old one.

{% include faq-begin.md %}

## What if I haven’t received my card after multiple weeks?
Expand Down
Loading

0 comments on commit d78e9d1

Please sign in to comment.