Skip to content

Commit 0364988

Browse files
committed
Merge branch 'main' of github.com:Expensify/App into beaman-removePolicyExpenseChatBeta
2 parents 093590f + 03cf0b1 commit 0364988

File tree

94 files changed

+2274
-1866
lines changed

Some content is hidden

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

94 files changed

+2274
-1866
lines changed

.github/workflows/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,4 +144,4 @@ In order to bundle actions with their dependencies into a single Node.js executa
144144
Do not try to use a relative path.
145145
- Confusingly, paths in action metadata files (`action.yml`) _must_ use relative paths.
146146
- You can't use any dynamic values or environment variables in a `uses` statement
147-
- In general, it is a best practice to minimize any side-effects of each action. Using atomic ("dumb") actions that have a clear and simple purpose will promote reuse and make it easier to understand the workflows that use them.
147+
- In general, it is a best practice to minimize any side-effects of each action. Using atomic ("dumb") actions that have a clear and simple purpose will promote reuse and make it easier to understand the workflows that use them.

.github/workflows/testBuild.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
sed -i 's/ENVIRONMENT=staging/ENVIRONMENT=adhoc/' .env.adhoc
8181
echo "PULL_REQUEST_NUMBER=$PULL_REQUEST_NUMBER" >> .env.adhoc
8282
83-
- uses: ./.github/actions/composite/setupNode
83+
- uses: Expensify/App/.github/actions/composite/setupNode@main
8484

8585
- uses: ruby/setup-ruby@eae47962baca661befdfd24e4d6c34ade04858f7
8686
with:

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ android {
9090
minSdkVersion rootProject.ext.minSdkVersion
9191
targetSdkVersion rootProject.ext.targetSdkVersion
9292
multiDexEnabled rootProject.ext.multiDexEnabled
93-
versionCode 1001035504
94-
versionName "1.3.55-4"
93+
versionCode 1001035507
94+
versionName "1.3.55-7"
9595
}
9696

9797
flavorDimensions "default"

docs/_sass/_colors.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
$color-green400: #03D47C;
22
$color-green-icons: #8B9C8F;
33
$color-green-borders: #1A3D32;
4+
$color-button-background: #1A3D32;
5+
$color-button-hovered: #2C6755;
46
$color-green-highlightBG: #07271F;
7+
$color-green-highlightBG-hover: #06231c;
58
$color-green-appBG: #061B09;
69
$color-green-hover: #00a862;
710
$color-light-gray-green: #AFBBB0;

docs/_sass/_search-bar.scss

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
$color-appBG: $color-green-appBG;
66
$color-highlightBG: $color-green-highlightBG;
7+
$color-highlightBG-hover: $color-green-highlightBG-hover;
78
$color-accent : $color-green400;
89
$color-borders: $color-green-borders;
910
$color-icons: $color-green-icons;
@@ -27,6 +28,7 @@ $color-gray-label: $color-gray-label;
2728
display: block;
2829
top: 0;
2930
right: 0;
31+
z-index: 2;
3032
}
3133

3234
@media only screen and (max-width: $breakpoint-tablet) {
@@ -69,7 +71,7 @@ $color-gray-label: $color-gray-label;
6971
right: 0;
7072
bottom: 0;
7173
background-color: rgba(0, 0, 0, 0.4);
72-
z-index: 2;
74+
z-index: 1;
7375
}
7476

7577
/* All gsc id & class are Google Search relate gcse_0 is the search bar parent & gcse_1 is the search result list parent */
@@ -156,6 +158,13 @@ label.search-label {
156158
font-family: "ExpensifyNeue", "Helvetica Neue", "Helvetica", Arial, sans-serif !important;
157159
max-height: 80vh;
158160
overflow-y: scroll;
161+
-ms-overflow-style: none;
162+
scrollbar-width: none;
163+
}
164+
165+
/* Hide the scrollbar */
166+
.gsc-control-cse::-webkit-scrollbar {
167+
display: none;
159168
}
160169

161170
.gs-title {
@@ -195,3 +204,67 @@ label.search-label {
195204
.gsc-resultsbox-visible .gsc-webResult .gsc-result {
196205
border-bottom: none;
197206
}
207+
208+
209+
/* Change Font the Google Search result */
210+
.gsc-control-cse .gsc-table-result {
211+
font-family: "ExpensifyNeue", "Helvetica Neue", "Helvetica", Arial, sans-serif !important;
212+
}
213+
214+
/* Change Font result Paragraph color */
215+
.gsc-results .gs-webResult:not(.gs-no-results-result):not(.gs-error-result) .gs-snippet, .gs-fileFormatType {
216+
color: $color-text;
217+
}
218+
219+
220+
/* Change the color of the Google Search Suggestion font */
221+
.gs-spelling.gs-result {
222+
color: $color-text;
223+
}
224+
225+
/* Pagination related style */
226+
.gsc-resultsbox-visible .gsc-results .gsc-cursor-box {
227+
text-align: center;
228+
}
229+
230+
.gsc-resultsbox-visible .gsc-results .gsc-cursor-box .gsc-cursor-page {
231+
margin: 4px;
232+
width: 28px;
233+
height: 28px;
234+
border-radius: 25px;
235+
display: inline-block;
236+
line-height: 2.5;
237+
background-color: $color-accent;
238+
font-weight: bold;
239+
font-size: 11px;
240+
}
241+
242+
243+
/* Change the color & background of Google Search Pagination */
244+
.gsc-cursor-next-page,
245+
.gsc-cursor-final-page {
246+
color: $color-text;
247+
background-color: $color-appBG;
248+
}
249+
250+
/* Change the color & background of Google Search Current Page */
251+
.gsc-resultsbox-visible .gsc-results .gsc-cursor-box .gsc-cursor-page.gsc-cursor-current-page {
252+
background-color: $color-accent;
253+
color: $color-text;
254+
255+
&:hover {
256+
text-decoration: none;
257+
background-color: $color-accent;
258+
}
259+
}
260+
261+
/* Change the color & background of Google Search of Other Page */
262+
.gsc-resultsbox-visible .gsc-results .gsc-cursor-box .gsc-cursor-page {
263+
background-color: $color-button-background;
264+
color: $color-text;
265+
266+
&:hover {
267+
background-color: $color-button-hovered;
268+
text-decoration: none;
269+
}
270+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
title: Enable Location Access on Web
3+
description: How to enable location access for Expensify websites on your browser
4+
---
5+
<!-- The lines above are required by Jekyll to process the .md file -->
6+
7+
# About
8+
<!--
9+
This short blurb provides all the context the user might need to know what the feature is and why they'd use it. If there are particular best practices embedded in the design, we'd explain why they're best practices here.
10+
11+
What advantages does this feature provide in general?
12+
What is unique about this feature in terms of our specific implementation of it in Expensify?
13+
-->
14+
If you'd like to use features that rely on your current location you will need to enable location permissions for Expensify. You can find instructions for how to enable location settings on the three most common web browsers below. If your browser is not in the list then please do a web search for your browser and "enable location settings".
15+
16+
# How-to
17+
<!--
18+
This section covers the most essential information a user needs to operate a feature i.e. what to click on. We’ll go over any action the user might take when configuring or using the feature, starting from configuration and moving to usage.
19+
20+
What options does a user have when configuring this feature?
21+
What options does a user have then interacting with this feature?
22+
What elements of this feature are pay-walled vs. free?
23+
-->
24+
25+
### Chrome
26+
1. Open Chrome
27+
2. At the top right, click the three-dot Menu > Settings
28+
3. Click "Privacy and Security" and then "Site Settings"
29+
4. Click Location
30+
5. Check the "Not allowed to see your location" list to make sure expensify.com and new.expensify.com are not listed. If they are, click the delete icon next to them to allow location access
31+
32+
[Chrome help page](https://support.google.com/chrome/answer/142065)
33+
34+
### Firefox
35+
36+
1. Open Firefox
37+
2. In the URL bar enter "about:preferences"
38+
3. On the left hand side select "Privacy & Security"
39+
4. Scroll down to Permissions
40+
5. Click on Settings next to Location
41+
6. If location access is blocked for expensify.com or new.expensify.com, you can update it here to allow access
42+
43+
[Firefox help page](https://support.mozilla.org/en-US/kb/permissions-manager-give-ability-store-passwords-set-cookies-more)
44+
45+
### Safari
46+
1. In the top menu bar click Safari
47+
2. Then select Settings > Websites
48+
3. Click Location on the left hand side
49+
4. If expensify.com or new.expensify.com have "Deny" set as their access, update it to "Ask" or "Allow"
50+
51+
Ask: The site must ask if it can use your location.
52+
Deny: The site can’t use your location.
53+
Allow: The site can always use your location.
54+
55+
[Safari help page](https://support.apple.com/guide/safari/websites-ibrwe2159f50/mac)

docs/articles/playbooks/Expensify-Chat-Playbook-for-Conferences.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ We find chat to be a powerful way to not only engage your attendees, but direct
9797
- #social: Have your employees in this room sharing fun photos, stoking conversations, and responding to any questions or feedback.
9898
- Speaker rooms: Encourage your employees to jump in to comment on content and nudge attendees to engage with each other during sessions.
9999

100-
*Protip*: Expensify Chat has moderation tools to help flag comments deemed to be spam, inconsiderate, intimidating, bullying, harassment, assault. On any comment, just click the flag icon to moderate conversation.
100+
*Protip*: Expensify Chat has [moderation tools](https://help.expensify.com/articles/other/Everything-About-Chat#flagging-content-as-offensive) to help flag comments deemed to be spam, inconsiderate, intimidating, bullying, harassment, assault. On any comment, just click the flag icon to moderate conversation.
101101

102102
### Step 7: Follow up with attendees after the event
103103

docs/assets/js/main.js

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,6 @@ function injectFooterCopywrite() {
7575
footer.innerHTML = `&copy;2008-${new Date().getFullYear()} Expensify, Inc.`;
7676
}
7777

78-
function openSidebar() {
79-
document.getElementById('sidebar-layer').style.display = 'block';
80-
81-
// Make body unscrollable
82-
const yAxis = document.documentElement.style.getPropertyValue('y-axis');
83-
const body = document.body;
84-
body.style.position = 'fixed';
85-
body.style.top = `-${yAxis}`;
86-
}
87-
8878
function closeSidebar() {
8979
document.getElementById('sidebar-layer').style.display = 'none';
9080

@@ -100,6 +90,31 @@ function closeSidebar() {
10090
window.scrollTo(0, parseInt(scrollY || '0', 10) * -1);
10191
}
10292

93+
function closeSidebarOnClickOutside(event) {
94+
const sidebarLayer = document.getElementById('sidebar-layer');
95+
96+
if (event.target !== sidebarLayer) {
97+
return;
98+
}
99+
closeSidebar();
100+
}
101+
102+
function openSidebar() {
103+
document.getElementById('sidebar-layer').style.display = 'block';
104+
105+
// Make body unscrollable
106+
const yAxis = document.documentElement.style.getPropertyValue('y-axis');
107+
const body = document.body;
108+
body.style.position = 'fixed';
109+
body.style.top = `-${yAxis}`;
110+
111+
// Close the sidebar when clicking sidebar layer (outside the sidebar search)
112+
const sidebarLayer = document.getElementById('sidebar-layer');
113+
if (sidebarLayer) {
114+
sidebarLayer.addEventListener('click', closeSidebarOnClickOutside);
115+
}
116+
}
117+
103118
// Function to adapt & fix cropped SVG viewBox from Google based on viewport (Mobile or Tablet-Desktop)
104119
function changeSVGViewBoxGoogle() {
105120
// Get all inline Google SVG elements on the page

ios/NewExpensify/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
</dict>
4141
</array>
4242
<key>CFBundleVersion</key>
43-
<string>1.3.55.4</string>
43+
<string>1.3.55.7</string>
4444
<key>ITSAppUsesNonExemptEncryption</key>
4545
<false/>
4646
<key>LSApplicationQueriesSchemes</key>

ios/NewExpensifyTests/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>
22-
<string>1.3.55.4</string>
22+
<string>1.3.55.7</string>
2323
</dict>
2424
</plist>

package-lock.json

Lines changed: 9 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "new.expensify",
3-
"version": "1.3.55-4",
3+
"version": "1.3.55-7",
44
"author": "Expensify, Inc.",
55
"homepage": "https://new.expensify.com",
66
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
@@ -126,7 +126,7 @@
126126
"react-native-linear-gradient": "^2.8.1",
127127
"react-native-localize": "^2.2.6",
128128
"react-native-modal": "^13.0.0",
129-
"react-native-onyx": "1.0.52",
129+
"react-native-onyx": "1.0.61",
130130
"react-native-pager-view": "^6.2.0",
131131
"react-native-pdf": "^6.6.2",
132132
"react-native-performance": "^4.0.0",

src/CONST.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ const CONST = {
3333
ANIMATED_TRANSITION: 300,
3434
ANIMATED_TRANSITION_FROM_VALUE: 100,
3535
ANIMATION_IN_TIMING: 100,
36+
ANIMATION_DIRECTION: {
37+
IN: 'in',
38+
OUT: 'out',
39+
},
3640
ARROW_HIDE_DELAY: 3000,
3741

3842
API_ATTACHMENT_VALIDATIONS: {
@@ -182,10 +186,6 @@ const CONST = {
182186
// If the length is longer than 13 digits, we show the first 6 and last 4 digits, hiding the rest with X
183187
MASKED_US_ACCOUNT_NUMBER: /^[X]{0,9}[0-9]{4}$|^[0-9]{6}[X]{4,7}[0-9]{4}$/,
184188
SWIFT_BIC: /^[A-Za-z0-9]{8,11}$/,
185-
186-
TIME_STARTS_01: /^01:\d{2} [AP]M$/,
187-
TIME_FORMAT: /^\d{2}:\d{2} [AP]M$/,
188-
DATE_TIME_FORMAT: /^\d{2}-\d{2} \d{2}:\d{2} [AP]M$/,
189189
},
190190
VERIFICATION_MAX_ATTEMPTS: 7,
191191
STATE: {
@@ -1171,6 +1171,10 @@ const CONST = {
11711171
VALIDATE_LOGIN: /\/v($|(\/\/*))/,
11721172
UNLINK_LOGIN: /\/u($|(\/\/*))/,
11731173
},
1174+
1175+
TIME_STARTS_01: /^01:\d{2} [AP]M$/,
1176+
TIME_FORMAT: /^\d{2}:\d{2} [AP]M$/,
1177+
DATE_TIME_FORMAT: /^\d{2}-\d{2} \d{2}:\d{2} [AP]M$/,
11741178
},
11751179

11761180
PRONOUNS: {
@@ -2533,6 +2537,13 @@ const CONST = {
25332537
AFTER_WEEK: 'afterWeek',
25342538
CUSTOM: 'custom',
25352539
},
2540+
TWO_FACTOR_AUTH_STEPS: {
2541+
CODES: 'CODES',
2542+
VERIFY: 'VERIFY',
2543+
SUCCESS: 'SUCCESS',
2544+
ENABLED: 'ENABLED',
2545+
DISABLED: 'DISABLED',
2546+
},
25362547
TAB: {
25372548
RECEIPT_TAB_ID: 'ReceiptTab',
25382549
MANUAL: 'manual',

0 commit comments

Comments
 (0)