Skip to content

Commit 278ad0c

Browse files
authored
Merge branch 'main' into Feat-Redesign-thread-ancestry
2 parents ad21911 + 334b630 commit 278ad0c

File tree

137 files changed

+2908
-1016
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+2908
-1016
lines changed

.eslintrc.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ const restrictedImportPatterns = [
7878

7979
module.exports = {
8080
extends: ['expensify', 'plugin:storybook/recommended', 'plugin:react-native-a11y/basic', 'plugin:@dword-design/import-alias/recommended', 'prettier'],
81-
plugins: ['react-native-a11y'],
81+
plugins: ['react-native-a11y', 'testing-library'],
8282
parser: 'babel-eslint',
8383
ignorePatterns: ['!.*', 'src/vendor', '.github/actions/**/index.js', 'desktop/dist/*.js', 'dist/*.js', 'node_modules/.bin/**', 'node_modules/.cache/**', '.git/**'],
8484
env: {
@@ -130,6 +130,20 @@ module.exports = {
130130
files: ['tests/**/*.js', 'tests/**/*.ts', 'tests/**/*.jsx', 'assets/**/*.js', '.storybook/**/*.js'],
131131
rules: {'@dword-design/import-alias/prefer-alias': ['off']},
132132
},
133+
{
134+
files: ['tests/**/*.js', 'tests/**/*.ts', 'tests/**/*.jsx', 'tests/**/*.tsx'],
135+
extends: ['plugin:testing-library/react'],
136+
rules: {
137+
'testing-library/await-async-queries': 'error',
138+
'testing-library/await-async-utils': 'error',
139+
'testing-library/no-debugging-utils': 'error',
140+
'testing-library/no-manual-cleanup': 'error',
141+
'testing-library/no-unnecessary-act': 'error',
142+
'testing-library/prefer-find-by': 'error',
143+
'testing-library/prefer-presence-queries': 'error',
144+
'testing-library/prefer-screen-queries': 'error',
145+
},
146+
},
133147
{
134148
files: ['*.js', '*.jsx'],
135149
settings: {

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ android {
9898
minSdkVersion rootProject.ext.minSdkVersion
9999
targetSdkVersion rootProject.ext.targetSdkVersion
100100
multiDexEnabled rootProject.ext.multiDexEnabled
101-
versionCode 1001046803
102-
versionName "1.4.68-3"
101+
versionCode 1001047001
102+
versionName "1.4.70-1"
103103
// Supported language variants must be declared here to avoid from being removed during the compilation.
104104
// This also helps us to not include unnecessary language variants in the APK.
105105
resConfigs "en", "es"

assets/images/connection-complete.svg

Lines changed: 330 additions & 0 deletions
Loading

docs/_data/_routes.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ platforms:
123123
title: Expensify Card
124124
icon: /assets/images/hand-card.svg
125125
description: Explore the perks and benefits of the Expensify Card.
126+
127+
- href: connections
128+
title: Connections
129+
icon: /assets/images/workflow.svg
130+
description: Connect to accounting software to streamline expense approvals.
126131

127132
- href: settings
128133
title: Settings

docs/articles/expensify-classic/workspaces/Change-member-workspace-roles.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@ To change the roles and permissions for members of your workspace,
1111
3. Click the desired workspace name.
1212
4. Click the **Members** tab on the left.
1313
5. Click the Settings icon next to the desired member.
14-
6. Select a new role for the member.
14+
6. Select a new role for the member.
1515

16-
| | Employee | Auditor | Workspace Admin |
17-
|---------------------------|----------------------------------|---------|-----------------|
18-
| Submit reports | Yes | Yes | Yes |
19-
| Comment on reports | Yes | Yes | Yes |
20-
| Approve workspace reports | Only reports submitted to them | Yes | Yes |
21-
| Edit workspace settings | No | No | Yes |
16+
| Employee | Auditor | Workspace Admin |
17+
| ----------------------------------------- | ------------------------------------------ | ----------------------------------------- |
18+
| ✔ Submit their own reports | ✔ Submit their own reports | ✔ Submit their own reports |
19+
| ✔ Approve reports submitted to them| ✔ Approve reports submitted to them | ✔ Approve reports submitted to them|
20+
| | ✔ View all workspace reports | ✔ View all workspace reports |
21+
| | | ✔ Approve all workspace reports |
22+
| | | ✔ Edit workspace settings |
2223

2324
{:start="7"}
2425
7. If your workspace uses Advanced Approvals, select an “Approves to.” This determines who the member’s reports must be approved by, if applicable. If “no one” is selected, then any one with the Auditor or Workspace Admin role can approve the member’s reports.

docs/articles/expensify-classic/workspaces/Invite-members-and-assign-roles.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@ If you’re inviting multiple people who will be assigned the same role, you can
5050

5151
7. Select a role for the new member. The following table shows the permissions available for each role:
5252

53-
| | Employee | Auditor | Workspace Admin |
54-
|---------------------------|----------------------------------|---------|-----------------|
55-
| Submit reports | Yes | Yes | Yes |
56-
| Comment on reports | Yes | Yes | Yes |
57-
| Approve workspace reports | Only reports submitted to them | Yes | Yes |
58-
| Edit workspace settings | No | No | Yes |
53+
| Employee | Auditor | Workspace Admin |
54+
| ----------------------------------------- | ------------------------------------------ | ----------------------------------------- |
55+
| ✔ Submit their own reports | ✔ Submit their own reports | ✔ Submit their own reports |
56+
| ✔ Approve reports submitted to them| ✔ Approve reports submitted to them | ✔ Approve reports submitted to them|
57+
| | ✔ View all workspace reports | ✔ View all workspace reports |
58+
| | | ✔ Approve all workspace reports |
59+
| | | ✔ Edit workspace settings |
5960

6061
8. If your workspace uses Advanced Approvals, select “Approves to.” This determines who the member’s reports must be approved by, if applicable. If “no one” is selected, then if the member submits a report, anyone with the Auditor or Workspace Admin role can approve their reports.
6162
9. Add a personal message, if desired. This message will appear in the invitation email or message.

docs/articles/expensify-classic/workspaces/reports/Scheduled-Submit.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ For individuals or employees: To enable Scheduled Submit on your individual work
2929

3030
**Manually**: An open report will be created, and expenses will be added to it automatically. However, it's important to note that the report will not be submitted automatically; manual submission of reports will be required.This is a great option for automatically gathering all an employee’s expenses on a report for the employee’s convenience, but they will still need to review and submit the report.
3131

32+
**Instantly**: Expenses are automatically added to a report in the Processing state, and all expenses will continue to accumulate on one report until it is Approved or Reimbursed. This removes the need to submit expenses, and Processing reports can either be Reimbursed right away (if Submit and Close is enabled), or Approved and then Reimbursed (if Submit and Approve is enabled) by a workspace admin.
33+
3234
# Deep Dive
3335

3436
## Schedule Submit Override
3537
If Scheduled Submit is disabled at the group workspace level or configured the frequency as "Manually," the individual workspace settings of a user will take precedence and be applied. This means an employee can still set up Scheduled Submit for themselves even if the admin has not enabled it. We highly recommend Scheduled Submit as it helps put your expenses on auto-pilot!
3638

3739
## Personal Card Transactions
3840
Personal card transactions are handled differently compared to other expenses. If a user has added a card through Settings > Account > Credit Card Import, they need to make sure it is set as non-reimbursable and transactions must be automatically merged with a SmartScanned receipt. If transactions are set to come in as reimbursable or they aren’t merged with a SmartScanned receipt, Scheduled Submit settings will not apply.
41+
42+
## A note on Instantly
43+
Setting Scheduled Submit frequency to Instantly will limit some employee actions on reports, such as the ability to retract or self-close reports, or create multiple reports. When Instantly is selected, expenses are automatically added to a Processing expense report, and new expenses will continue to accumulate on a single report until the report is Closed or Reimbursed by a workspace admin.

docs/articles/new-expensify/chat/Send-and-format-chat-messages.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ You can format the text in a chat message using markdown.
4242
- **Bold**: Add two asterisks ** on both sides of the text.
4343
- ~~Strikethrough~~: Add two tildes ~~ on both sides of the text.
4444
- Heading: Add a number sign # in front of the text.
45+
- Inline image: Add `![Alt text](image URL)` and add the URL to the image and alt text that describes the image.
46+
- Tag another member: Add an at symbol @ and enter the member's name, username, or email address.
47+
- Mention a room: Add a number sign # and enter the room name
4548
- > Blockquote: Add an angled bracket > in front of the text.
4649
- `Code block for a small amount of text`: Add a backtick ` on both sides of the text.
4750
- Code block for the entire message: Add three backticks ``` at the beginning and the end of the message.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Coming soon
3+
description: Coming soon
4+
---
5+
6+
# Coming soon
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
title: Create an expense
3+
description: Request payment from an employer or a friend
4+
redirect_from: articles/request-money/Request-and-Split-Bills/
5+
---
6+
<div id="new-expensify" markdown="1">
7+
8+
You can create an expense to request payment from an employer’s workspace or from a friend using any of the following options:
9+
- **SmartScan**: Take a picture of a receipt to capture the expense details automatically.
10+
- **Add manually**: Manually enter the expense details.
11+
- **Create a distance expense**: Capture mileage expenses by entering the addresses you traveled to. Expensify automatically calculates the distance, the rate per mile, and the total cost.
12+
13+
# SmartScan a receipt
14+
15+
{% include selector.html values="desktop, mobile" %}
16+
17+
{% include option.html value="desktop" %}
18+
1. Click the + icon in the bottom left menu and select **Submit Expense**.
19+
2. Click **Scan**.
20+
3. Drag and drop the receipt into Expensify, or click **Choose File** to select it from your saved files. *Note: The SmartScan process will auto-populate the merchant, date, and amount.*
21+
4. Use the search field to find the desired workspace or an individual’s name, email, or phone number.
22+
5. Add a description, category, tags, or tax as desired, or as required by your workspace.
23+
6. (Optional) Enable the expense as billable if it should be billed to a client.
24+
7. Click **Submit Expense**.
25+
{% include end-option.html %}
26+
27+
{% include option.html value="mobile" %}
28+
1. Tap the + icon at the bottom of the screen and select **Submit Expense**.
29+
2. Tap **Scan**.
30+
3. Tap the green button to take a photo of a receipt, or tap the Image icon to the left of it to upload a receipt from your phone. *Note: The SmartScan process will auto-populate the merchant, date, and amount.*
31+
4. Use the search field to find the desired workspace or an individual’s name, email, or phone number.
32+
5. Add a description, category, tags, or tax as desired, or as required by your workspace.
33+
6. (Optional) Enable the expense as billable if it should be billed to a client.
34+
7. Tap **Submit**.
35+
{% include end-option.html %}
36+
37+
{% include end-selector.html %}
38+
39+
{% include info.html %}
40+
You can also forward receipts to [email protected] using an email address that is your primary or secondary email address. SmartScan will automatically pull all of the details from the receipt and add it to your expenses.
41+
{% include end-info.html %}
42+
43+
# Manually add an expense
44+
45+
{% include selector.html values="desktop, mobile" %}
46+
47+
{% include option.html value="desktop" %}
48+
1. Click the + icon in the bottom left menu and select **Submit Expense**.
49+
2. Click **Manual**.
50+
3. Enter the amount on the receipt and click **Next**. *Note: Click the currency symbol to select a different currency.*
51+
4. Use the search field to find the desired workspace or an individual’s name, email, or phone number.
52+
5. (Optional) Add a description.
53+
6. Add a merchant.
54+
7. Click **Show more** to add additional fields (like a category) as desired, or as required by your workspace.
55+
8. Click **Submit**.
56+
{% include end-option.html %}
57+
58+
{% include option.html value="mobile" %}
59+
1. Tap the + icon at the bottom of the screen and select **Submit Expense**.
60+
2. Tap **Manual**.
61+
3. Enter the amount on the receipt and tap **Next**. *Note: Click the currency symbol to select a different currency.*
62+
4. Use the search field to find the desired workspace or an individual’s name, email, or phone number.
63+
5. (Optional) Add a description.
64+
6. Add a merchant.
65+
7. Tap **Show more** to add additional fields (like a category) as desired, or as required by your workspace.
66+
8. Tap **Submit**.
67+
{% include end-option.html %}
68+
69+
{% include end-selector.html %}
70+
71+
# Create a distance expense
72+
73+
{% include selector.html values="desktop, mobile" %}
74+
75+
{% include option.html value="desktop" %}
76+
1. Click the + icon in the bottom left menu and select **Submit Expense**.
77+
2. Click **Distance**.
78+
3. Click **Start** and enter the starting location of your trip.
79+
4. Click **Stop** and enter the ending location of your trip.
80+
5. (Optional) Click **Add stop** to add additional stops, if applicable.
81+
6. Tap **Next**.
82+
7. Use the search field to find the desired workspace or an individual’s name, email, or phone number.
83+
8. (Optional) Add a description.
84+
9. Click **Submit**.
85+
{% include end-option.html %}
86+
87+
{% include option.html value="mobile" %}
88+
1. Tap the + icon at the bottom of the screen and select **Submit Expense**.
89+
2. Tap **Distance**.
90+
3. Tap **Start** and enter the starting location of your trip.
91+
4. Tap **Stop** and enter the ending location of your trip.
92+
5. (Optional) Tap **Add stop** to add additional stops, if applicable.
93+
6. Tap **Next**.
94+
7. Use the search field to find the desired workspace or an individual’s name, email, or phone number.
95+
8.(Optional) Add a description.
96+
9. Tap **Submit**.
97+
{% include end-option.html %}
98+
99+
{% include end-selector.html %}
100+
101+
# Next Steps
102+
103+
The next steps for the expense depend on whether it was submitted to a workspace or to an individual:
104+
- **Expenses submitted to a workspace** are automatically added to a report and checked for any violations or inconsistencies. A chat thread for the expense is also added to your chat inbox. When you open the chat, the top banner will show the expense status and any next steps. By default, reports are automatically submitted for approval every Sunday. However, if it is ready for early submission, you can manually submit a report for approval. Once a report is submitted, your approver will be prompted to review your expense report. If changes are required, you will receive a notification to resolve any violations and resubmit. You will also be notified once your approver approves or denies your expenses.
105+
- **Expenses submitted to a friend** are sent right to that individual via email or text. You can chat with them about the expense in Expensify Chat, and you can receive payments through your Expensify Wallet or outside of Expensify.
106+
107+
{% include faq-begin.md %}
108+
**Can I divide a payment between multiple people?**
109+
110+
Yes, you can split an expense to share the cost between multiple people.
111+
112+
**Can I pay someone in another currency?**
113+
114+
While you can record your expenses in different currencies, Expensify wallets are only available for members who can add a U.S. personal bank account.
115+
116+
**Can I change an expense once I’ve submitted it?**
117+
118+
Yes, you can edit an expense until it is paid. When an expense is submitted to a workspace, you, your approvers, and admins can edit the details on an expense except for the amount and date.
119+
120+
**What are expense reports?**
121+
122+
In Expensify, expenses are submitted on an expense report. When a draft report is open, all new expenses are added to the draft report. Once a report is submitted, it shows what stage of the approval process the expenses are in and any required next steps.
123+
{% include faq-end.md %}
124+
125+
</div>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: Manually submit reports for approval
3+
description: Submit a report before the submission date
4+
---
5+
<div id="new-expensify" markdown="1">
6+
7+
By default, reports are automatically submitted for approval every Sunday. However, if it is ready for early submission, you can manually submit your report for approval.
8+
9+
To manually submit an expense for approval,
10+
11+
{% include selector.html values="desktop, mobile" %}
12+
13+
{% include option.html value="desktop" %}
14+
1. In your chat inbox, click the expense you want to submit for approval. *Note: A green dot will appear to the right of newly created expenses.*
15+
2. Review the next step provided at the top of the expense report.
16+
3. If the next step is to submit the report, click **Submit**.
17+
{% include end-option.html %}
18+
19+
{% include option.html value="mobile" %}
20+
1. In your chat inbox, tap the expense you want to submit for approval. *Note: A green dot will appear to the right of newly created expenses.*
21+
2. Review the next step provided at the top of the expense report.
22+
3. If the next step is to submit the report, tap **Submit**.
23+
{% include end-option.html %}
24+
25+
{% include end-selector.html %}
26+
27+
{% include faq-begin.md %}
28+
**How do I know the status of my expense report?**
29+
30+
You’ll see a Next Steps prompt at the top of your expense report to guide you through the next steps and give you a status of your report. Your workspace may have an automation set up that will automatically submit your expense reports when they are due, or you may be required to manually submit your expenses.
31+
32+
**Can I add more expenses to my expense report?**
33+
34+
Yes, you can add expenses to a report that is in a Draft or Processing status. Once a report is Approved or Reimbursed, expenses cannot be added or edited.
35+
36+
**How can I get reimbursed?**
37+
38+
The reimbursement options depend on the workspace’s settings.
39+
- If the workspace is set up to send reimbursements directly to your personal bank account, you can connect a personal bank account to receive ACH payments.
40+
- You can receive reimbursements with your Expensify Wallet or outside of Expensify.
41+
{% include faq-end.md %}
42+
43+
</div>

0 commit comments

Comments
 (0)