Skip to content

Commit

Permalink
Merge pull request #2 from Expensify/main
Browse files Browse the repository at this point in the history
Even with expensify/main
  • Loading branch information
graylewis authored Oct 14, 2023
2 parents 8f44f99 + fe282b4 commit 6a66f0b
Show file tree
Hide file tree
Showing 174 changed files with 8,646 additions and 4,794 deletions.
11 changes: 8 additions & 3 deletions .github/scripts/findUnusedKeys.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LIB_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../../ && pwd)"

readonly SRC_DIR="${LIB_PATH}/src"
readonly STYLES_DIR="${LIB_PATH}/src/styles"
readonly STYLES_FILE="${LIB_PATH}/src/styles/styles.js"
readonly STYLES_FILE="${LIB_PATH}/src/styles/styles.ts"
readonly UTILITIES_STYLES_FILE="${LIB_PATH}/src/styles/utilities"
readonly STYLES_KEYS_FILE="${LIB_PATH}/scripts/style_keys_list_temp.txt"
readonly UTILITY_STYLES_KEYS_FILE="${LIB_PATH}/scripts/utility_keys_list_temp.txt"
Expand Down Expand Up @@ -210,7 +210,12 @@ find_theme_style_and_store_keys() {
fi

# Check if we are inside an arrow function
if [[ "$line" =~ ^[[:space:]]*([a-zA-Z0-9_-])+:[[:space:]]*\(.*\)[[:space:]]*'=>'[[:space:]]*\(\{ || "$line" =~ ^[[:space:]]*(const|let|var)[[:space:]]+([a-zA-Z0-9_-]+)[[:space:]]*=[[:space:]]*\(.*\)[[:space:]]*'=>' ]]; then
if [[ "$line" =~ ^[[:space:]]*([a-zA-Zgv 0-9_-])+:[[:space:]]*\(.*\)[[:space:]]*'=>'[[:space:]]*\(\{ || "$line" =~ ^[[:space:]]*([a-zA-Zgv 0-9_-])+:[[:space:]]*\(.*\)[[:space:]]*'=>' ]]; then
inside_arrow_function=true
continue
fi

if [[ "$line" =~ ^[[:space:]]*(const|let|var)[[:space:]]+([a-zA-Z0-9_-]+)[[:space:]]*=[[:space:]]*\(.*\)[[:space:]]*'=>' ]]; then
inside_arrow_function=true
continue
fi
Expand Down Expand Up @@ -348,7 +353,7 @@ echo "🔍 Looking for styles."
find_utility_styles_store_prefix
find_utility_usage_as_styles

# Find and store keys from styles.js
# Find and store keys from styles.ts
find_styles_object_and_store_keys "$STYLES_FILE"
find_styles_functions_and_store_keys "$STYLES_FILE"
collect_theme_keys_from_styles "$STYLES_FILE"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cherryPick.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
validateActor:
runs-on: ubuntu-latest
outputs:
IS_DEPLOYER: ${{ fromJSON(steps.isDeployer.outputs.IS_DEPLOYER) || github.actor == 'OSBotify' }}
IS_DEPLOYER: ${{ fromJSON(steps.isDeployer.outputs.IS_DEPLOYER) || github.actor == 'OSBotify' || github.actor == 'os-botify[bot]' }}
steps:
- name: Check if user is deployer
id: isDeployer
Expand Down
23 changes: 12 additions & 11 deletions .github/workflows/e2ePerformanceTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,14 +191,15 @@ jobs:
if: ${{ always() && runner.debug != null && fromJSON(runner.debug) }}
run: cat "./Host_Machine_Files/\$WORKING_DIRECTORY/debug.log"

- name: Check if test failed, if so post the results and add the DeployBlocker label
run: |
if grep -q '🔴' ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md; then
gh pr edit ${{ inputs.PR_NUMBER }} --add-label DeployBlockerCash
gh pr comment ${{ inputs.PR_NUMBER }} -F ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md
gh pr comment ${{ inputs.PR_NUMBER }} -b "@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker."
else
echo '✅ no performance regression detected'
fi
env:
GITHUB_TOKEN: ${{ github.token }}
# TODO: Once tests are more reliable we should uncomment this
# - name: Check if test failed, if so post the results and add the DeployBlocker label
# run: |
# if grep -q '🔴' ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md; then
# gh pr edit ${{ inputs.PR_NUMBER }} --add-label DeployBlockerCash
# gh pr comment ${{ inputs.PR_NUMBER }} -F ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md
# gh pr comment ${{ inputs.PR_NUMBER }} -b "@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker."
# else
# echo '✅ no performance regression detected'
# fi
# env:
# GITHUB_TOKEN: ${{ github.token }}
2 changes: 1 addition & 1 deletion .github/workflows/platformDeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
validateActor:
runs-on: ubuntu-latest
outputs:
IS_DEPLOYER: ${{ fromJSON(steps.isUserDeployer.outputs.IS_DEPLOYER) || github.actor == 'OSBotify' }}
IS_DEPLOYER: ${{ fromJSON(steps.isUserDeployer.outputs.IS_DEPLOYER) || github.actor == 'OSBotify' || github.actor == 'os-botify[bot]' }}
steps:
- name: Check if user is deployer
id: isUserDeployer
Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1001038306
versionName "1.3.83-6"
versionCode 1001038400
versionName "1.3.84-0"
}

flavorDimensions "default"
Expand Down
1 change: 1 addition & 0 deletions assets/animations/FastMoney.json

Large diffs are not rendered by default.

1,635 changes: 1,635 additions & 0 deletions assets/images/eReceipt_background.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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
@@ -1,5 +1,45 @@
---
title: Annual Subscription
description: Annual Subscription
description: Learn more about managing your Annual Subscription.
---
## Resource Coming Soon!
# Overview
An Annual Subscription offers a 50% cost savings on active user pricing while allowing your company to manage multiple Workspaces across your organization and maintain predictable cost for your Expensify activity.

_For pricing details, see [expensify.com/pricing](http://www.expensify.com/pricing), and find more ways to save with the Expensify Card here._

# How to set subscription size
When you first create a subscription, the best practice is to set your subscription size by entering the average number of active users you expect to have each month for the next year. For example, if you expect to have an average of 10 users each month, even if they are not always the same users, set your subscription size to 10. No need to provision and deprovision access to your team, so you still enjoy flexible usage across the entire company!

If your Workspaces have more than 10 active users in a month, you will pay the unbundled Pay-per-use rate for the additional users. If you’d like to avoid this, you can enable Auto Increase so your subscription size increases based on Workspace user activity.

An ‘Active User’ is anyone who chats, creates, submits, approves, reimburses, or exports a report in Expensify. This includes actions taken by Copilots and any automated settings.

To set your subscription size, go to **Settings > Workspaces > Groups > Subscription**.

If you do not set a specific subscription size, this will be automatically updated based on your past activity:

* If you’ve never had activity in Expensify, your subscription size will be set after your first month. Work with your Setup Specialist or Account Manager to determine the best subscription size for your team!

* For existing Workspaces switching to an Annual Subscription, the subscription size is set to the number of active users on your last month’s billing history.

* If Auto Increase is not selected, and you have more active users than you’ve input as the subscription size, you will be billed for those at the Pay-per-use rate.

# How to adjust subscription size
You can add users to your subscription at any time. However, note that when your subscription size is increased, you will start a new 12-month subscription at that new subscription size.

You can increase your subscription size manually or automatically.

* To manually increase the size, just update the number in your subscription settings (**Settings > Workspaces > Groups > Subscription**).

* To automatically increase your subscription size, enable **Auto Increase**. This feature manages your subscription by automatically increasing the count whenever there is activity that exceeds your subscription size. (**Settings > Workspaces > Groups > Subscription**)

Note: After increasing your subscription size, you won't be able to decrease it for the next 12 months. If your active user numbers tend to fluctuate, you might want to keep this feature disabled. This way, you'll only pay for additional active users in the months they are active. Keep in mind that increasing the subscription size will reset your 12-month subscription period.

# How to disable Auto Renew
By default, your subscription is set to automatically renew after a year. To disable this, click the toggle from your subscription settings before the current subscription ends. (**Settings > Workspaces > Groups > Subscription**)

If Auto Renew is disabled, then the last bill at the annual rate will be issued on the date listed under the Auto Renew settings. For example, if your subscription expires on March 1, 2021, then February 2021 will be the last month billed at the annual rate. If you do not set a new subscription, March activity will be billed at the Pay-per-use rate.

We recommend that you review your user count annually on a proactive basis. Set a reminder to review your active user numbers a month before your subscription expires! If you’d like assistance determining your subscription number, please contact your Account Manager or [email protected].

If you need to decrease your subscription size, you can do this in the first billing month before you are billed. Using the example above, this would be during March 2021.
81 changes: 81 additions & 0 deletions docs/articles/expensify-classic/get-paid-back/Distance-Tracking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
title: Distance Tracking in Expensify
description: Learn how distance tracking works in Expensify!
---

# Overview

Expensify provides a convenient feature for tracking your mileage-related expenses. You'll find all the essential information to begin logging your trips below.

# How to Use Distance Tracking
## Mobile App

First, you’ll want to click the **+** in the top right corner.

If you select **Manually Create**, you’ll be prompted to enter your mileage, select a rate, and code the expense before clicking **Save**.

![Click manually create or odometer to create a distance request.](https://help.expensify.com/assets/images/ExpensifyHelp_CreateExpense_Mobile.png){:width="100%"}

If you select **Manually Create**:
- Enter your mileage.
- Select a rate.
- Code the expense.
- Click **Save**.

![Enter your mileage, rate, code the expense, and click save.](https://help.expensify.com/assets/images/ExpensifyHelp_ManualDistance_Mobile.png){:width="100%"}

If you select **Odometer**:
- Enter your vehicle’s mileage reading before and after your trip.
- Select your rate.
- Code the expense.
- Click **Save**.

![Etner your mileage readings, your rate, code the expense, and click save.](https://help.expensify.com/assets/images/ExpensifyHelp_Odometer_Mobile.png){:width="100%"}

The **Start GPS** option also exists on the mobile app. However, we’ve learned that most customers prefer to track their mileage after their trips (thus not needing to hit that start button!)

We’ve temporarily paused the development of GPS mileage tracking in the mobile app, and we recommend you use one of the above options instead!


## Web

Navigate to the **Expenses** page, click **New Expense**, and review the two **Distance** options.

![Select manually create or create from map to create a new distance request.](https://help.expensify.com/assets/images/ExpensifyHelp_CreateExpense.png){:width="100%"}

If you select **Manually Create**:
- Enter the number of miles for your trip.
- Mileage rate is automatically selected based on your history, or manually select it if it's your first time.
- Complete any other applicable coding fields.
- Click **Save**.

![Enter the number of miles, select your rate, code the expense, and click save.](https://help.expensify.com/assets/images/ExpensifyHelp_ManualDistance.png){:width="100%"}

For **Create from Map** expenses:
- Add your start and end location, and the distance will be calculated.
- You can also click **Add Destination** for multiple stops.
- Leave **Create Receipt** selected if you want a map receipt generated.
- Click **Save**.

![Enter your start and end locations, and click save.](https://help.expensify.com/assets/images/ExpensifyHelp_ManualDistanceMap.png){:width="100%"}

Once you click **Save**, review the details from your map selection.
- Select your rate.
- Enter any other applicable coding.
- Click **Save**.

![Select your rate, code the expense, and click save.](https://help.expensify.com/assets/images/ExpensifyHelp_ManualDistanceConfirm.png){:width="100%"}

# Mileage Tracking FAQs
## **How can I change the rate of my mileage expenses?**
You can change the rate by going to Settings > Workspaces > [Your Workspace] > Expenses > Distance > Add a Mileage Rate.
If you submit mileage expenses on a group workspace, only workspace admins can do this.

## **Do you plan to add the "Create from Map" option to the mobile app or "Odometer" option to web?**
Not now, but if that changes, you'll be the first to know!

## **Will you restart maintenance on the mobile app's GPS option anytime soon?**
Not now, but if that changes, you'll be the first to know!

## **Does Expensify automatically update IRS Mileage rates?**
We never automatically update mileage rates in Expensify because different companies want the new rates to become effective on different dates.
5 changes: 0 additions & 5 deletions docs/articles/expensify-classic/get-paid-back/Mileage.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
title: Importing Receipts from Various Platforms to Expensify
description: Detailed guide on how to import receipts from multiple travel platforms into Expensify.
---

# Overview
You can automatically import receipts from many travel platforms into Expensify, to make tracking expenses while traveling for business a breeze. Read on to learn how to import receipts from Bolt Work, Spot Hero, Trainline, Grab, HotelTonight, and Kayak for Business.

## How to Connect to Bolt Work

### Set Up Bolt Work Profile
- Open the Bolt app, go to the side navigation menu, and select Payment.
- At the bottom, select Set up work profile and follow the instructions, entering your work email for verification.

### Link to Expensify
- In the Bolt app, go to Work Rides.
- Select Add expense provider, choose Expensify, and enter the associated email to receive a verification link.
- Ensure you select your work ride profile as the payment method before booking.

## How to Connect to SpotHero

### Set up a Business Profile
- Open the SpotHero app, click the hamburger icon, and go to Account Settings.
- Click Set up Business Profile.
- Specify the email connected to Expensify and set up your payment method.
- Upon checkout, choose between Business and Personal Profiles in the "Payment Details" section.
- If you want, you can set a weekly or monthly cadence for consolidated SpotHero expense reports in your Business Profile settings. This will batch all of your SpotHero expenses to import into Expensify at that cadence.

## How to Connect to Trainline
- To send a ticket receipt to Expensify:
- In the Trainline app, navigate to the My Tickets tab.
- Tap Manage my booking > Expense receipt > Send to Expensify.
- That’s it!

## How to Connect to Grab
- In the Grab app, tap on your name, go to “Profiles”, and “Add a business profile”.
- Follow instructions and enter your work email for verification.
- In your profile, tap on Business > Expense Solution > Expensify > Save.
- Before booking, select your Business profile and confirm.

## How to Connect to HotelTonight
- In HotelTonight, go to the Bookings tab and select your booking.
- Select Receipt > Expensify, enter your Expensify email, and send.

## How to Connect to Kayak for Business

### Admin Setup
- Admins should go to “Company Settings” and click on “Connect to Expensify”.
- Bookings made by employees will automatically be sent to Expensify.

### Traveler Setup
- From your account settings, choose whether expenses should be sent to Expensify automatically or manually.
- We recommend sending them automatically, so you can travel without even thinking about your expense reports.

# FAQ

**Q: What if I don’t have the option for Send to Expensify in Trainline?**

A: This can happen if the native iOS Mail app is not installed on an Apple device. However, you can still use the native iOS share to Expensify function for Trainline receipts.

**Q: Why should I choose automatic mode in Kayak for Business?**

A: Automatic mode is less effort as it’s easier to delete an expense in Expensify than to remember to forward a forgotten receipt.

**Q: Can I receive consolidated reports from SpotHero?**

A: Yes, you can set a weekly or monthly cadence for SpotHero expenses to be emailed in a consolidated report.

**Q: Do I need to select a specific profile before booking in Bolt Work and Grab?**

A: Yes, ensure you have selected your work or business profile as the payment method before booking.
Loading

0 comments on commit 6a66f0b

Please sign in to comment.