Skip to content
Closed
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
576 commits
Select commit Hold shift + click to select a range
a0f651d
Fix lint
shubham1206agra Apr 21, 2026
d761f39
Merge branch 'main' into knip-audit-export-5
shubham1206agra Apr 21, 2026
2372b23
Merge branch 'main' into knip-audit-export-6
shubham1206agra Apr 21, 2026
6bd2bf5
Removed unused file
shubham1206agra Apr 21, 2026
2ed1297
Merge branch 'main' into VickyStash/bugfix/88107-fix-trip-gap
VickyStash Apr 21, 2026
e015e90
Fix TripRoomPreview rows alignment
VickyStash Apr 21, 2026
7a9b608
Merge branch 'main' into paulnjs-fix/80486-part-2
paulnjs Apr 21, 2026
333d336
fix: bulk edit, tax field is missing for unreported expenses
LukasMod Apr 21, 2026
d339f72
refactor: separate logic and add unit tests isBulkEditTaxTrackingEnabled
LukasMod Apr 21, 2026
80685c5
move toggleReaction and currentUserAccountID to ReportActionItemEmoji…
LukasMod Apr 20, 2026
4425707
refactor: ReportActionItemEmojiReactions, replace HOC with hook
LukasMod Apr 20, 2026
95dc981
refactor: ReportActionItemEmojiReactions, self-subscribe to locale
LukasMod Apr 20, 2026
5d7e5c6
refactor: ReportActionItemEmojiReactions, self-subscribe to emojiReac…
LukasMod Apr 20, 2026
01e2ed7
refactor: ReactionTooltipContent, move localization and account subsc…
LukasMod Apr 20, 2026
384d63a
fix issue with missing EmojiTrie after changing language
LukasMod Apr 20, 2026
c5135ac
change condition order to first check easy boolean
LukasMod Apr 20, 2026
662e16b
Added back future code
shubham1206agra Apr 21, 2026
2400c8f
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 21, 2026
ef1754d
fix: restore previous eslint @typescript-eslint/no-deprecated
LukasMod Apr 21, 2026
0cda6bc
remove @typescript-eslint/naming-convention
LukasMod Apr 21, 2026
ee1ccd1
fix(expense): resolve no action when clicking "Pay with personal acco…
Apr 21, 2026
1d1a235
fix: prevent isEditingConfirmation cleanup from nullifying draft on b…
jakubkalinski0 Apr 21, 2026
1803278
Merge remote-tracking branch 'origin/main' into fix/newChatPage/dataP…
sharabai Apr 21, 2026
adaae03
use isLoadingOnyxValue util
sharabai Apr 21, 2026
0d13dec
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 21, 2026
99b97d3
Merge branch 'main' into jakubkalinski0/Odometer_add_discard_changes_…
jakubkalinski0 Apr 21, 2026
ec32dbb
Improve re-rendering of transaction{id} subscribers after a marchant …
OlGierd03 Apr 21, 2026
23ffcad
refactor updateSplitTransactionsFromSplitExpensesFlow to use isOfflin…
dukenv0307 Apr 21, 2026
9e9e370
perf: Decompose MoneyRequestParticipantsSelector into render boundaries
OlimpiaZurek Apr 21, 2026
7e07360
fix conflicts
OlimpiaZurek Apr 21, 2026
c595e87
fix submodule
OlimpiaZurek Apr 21, 2026
56ceabc
ts fix
OlimpiaZurek Apr 21, 2026
fa0634e
lint fix
OlimpiaZurek Apr 21, 2026
af83941
fix: remove redundant shouldEnableDiscardConfirmation const and repla…
jakubkalinski0 Apr 21, 2026
fc8db55
Merge remote-tracking branch 'origin/main' into jakubstec/remove-onyx…
jakubstec Apr 21, 2026
4eac84c
fix: apply onCancel and onVisibilityChange to useDiscardChangesConfir…
jakubkalinski0 Apr 21, 2026
7dee6a8
fix issue with missing EmojiTrie after refresh
LukasMod Apr 21, 2026
dbbfb24
Merge branch 'main' into perf/MoneyRequestParticipantsSelector-decomp…
OlimpiaZurek Apr 21, 2026
b91e036
apply reviewer changes
jakubstec Apr 21, 2026
b2e1a0f
apply review changes
jakubstec Apr 21, 2026
90c3ed7
fix: add onCancel support to useDiscardChangesConfirmation native imp…
jakubkalinski0 Apr 21, 2026
923896b
skip columns filter
bernhardoj Apr 21, 2026
ae88c1b
show applied displays
bernhardoj Apr 21, 2026
33609ea
only show columns when the length is > 0
bernhardoj Apr 21, 2026
7c9951d
Add Gusto HR page and settings screens
ShridharGoel Apr 21, 2026
c15eed6
Reduce HR page to Gusto card
ShridharGoel Apr 21, 2026
7cdc6b1
Keep existing Gusto labels
ShridharGoel Apr 21, 2026
ad56f57
Merge branch 'main' into collectioneur/generate-full-state
collectioneur Apr 21, 2026
fbde5d9
Update HR page visuals
ShridharGoel Apr 21, 2026
66df21f
fix mocks
collectioneur Apr 21, 2026
3fc5701
Allow agent-device skill path echo in permissions allowlist
kacper-mikolajczak Apr 21, 2026
432dc70
Adjust HR page visuals
ShridharGoel Apr 21, 2026
ae834e6
Compress HR SVGs
ShridharGoel Apr 21, 2026
7cfd30e
use ONYXKEYS types for onyxKeysToRemove instead of Set<string>
abbasifaizan70 Apr 21, 2026
2d338e6
Fix native HR icons
ShridharGoel Apr 21, 2026
b54eff5
Add translations
ShridharGoel Apr 21, 2026
4242f09
Compress SVG
ShridharGoel Apr 21, 2026
c907095
refactor(WorkspaceCompanyCardDetailsPage): fix refs-during-render and…
roryabraham Apr 21, 2026
6103b26
chore: lower eslint --max-warnings to 292
roryabraham Apr 21, 2026
799cdde
Compress SVG
ShridharGoel Apr 21, 2026
01dc46f
Merge remote-tracking branch 'origin/main' into rory-rc-company-card-…
roryabraham Apr 21, 2026
fd83751
Apply suggestions from code review
stephanieelliott Apr 21, 2026
94619d5
Update Close-Your-Expensify-Account.md
stephanieelliott Apr 21, 2026
037b91c
Update Expensify-Home-Overview.md
stephanieelliott Apr 22, 2026
95709ad
Merge branch 'main' into claude-addGettingStartedSectionToHomeOverview
stephanieelliott Apr 22, 2026
d73d73f
Merge remote-tracking branch 'origin/main' into rory-rc-company-card-…
roryabraham Apr 22, 2026
73725df
Merge branch 'main' into fix/88051-popover-height-in-landscape-mode
bernhardoj Apr 22, 2026
5a890f3
apply the height to the list instead of the whole popover
bernhardoj Apr 22, 2026
b4ef429
make it scrollable
bernhardoj Apr 22, 2026
e839029
pass missing isSearchable
bernhardoj Apr 22, 2026
2dd1957
remove unused var
bernhardoj Apr 22, 2026
b6df843
perf(ReportWelcomeText): avoid mapping all personal details
TMisiukiewicz Apr 22, 2026
84df464
Merge remote-tracking branch 'origin/main' into perf/report-welcome-text
TMisiukiewicz Apr 22, 2026
2939ad1
Merge remote-tracking branch 'upstream/main' into agent-device-local-…
kacper-mikolajczak Apr 22, 2026
082a951
Merge branch 'main' into sentry/experimental-trace-lifecycle
sosek108 Apr 22, 2026
3a32e42
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 22, 2026
cacd11e
Merge pull request #87089 from software-mansion-labs/collectioneur/ge…
mjasikowski Apr 22, 2026
2d925be
Fix mWeb - Company card - Learn more button is shown as a single L bu…
GCyganek Apr 22, 2026
c4ba24a
Merge pull request #88326 from callstack-internal/perf-send-message-p…
cristipaval Apr 22, 2026
52ec734
Merge branch 'main' of github.com:callstack-internal/Expensify-App in…
LukasMod Apr 22, 2026
9ce8f07
Merge remote-tracking branch 'origin/main' into cristipaval/send-mone…
cristipaval Apr 22, 2026
03e400a
Block reports export for deleted expenses
jnowakow Apr 22, 2026
5ee9e9c
Add configuration to NotificationServiceExtension target
mateuuszzzzz Apr 22, 2026
c0199bb
Merge pull request #88514 from software-mansion-labs/@GCyganek/landsc…
mjasikowski Apr 22, 2026
43b4bf2
Merge pull request #87572 from Expensify/claude-addGettingStartedSect…
zanyrenney Apr 22, 2026
419646b
Update Podfile.lock
mateuuszzzzz Apr 22, 2026
6d7b640
Update Podfile.lock
mateuuszzzzz Apr 22, 2026
c568b7c
Define project globally so all targets can inherit from it
mateuuszzzzz Apr 22, 2026
de5f71f
dry up code
cristipaval Apr 22, 2026
a43dff0
Fix NEW_EMAILS_INVITED noise when 0 or undefined
cristipaval Apr 22, 2026
4672791
Merge pull request #88324 from callstack-internal/perf-send-message-p…
cristipaval Apr 22, 2026
51fd916
Revert unnecessary module change
cristipaval Apr 22, 2026
002b79e
Add a comment
cristipaval Apr 22, 2026
8a042e5
Remove less complete fix with that changes debug configuration in pos…
mateuuszzzzz Apr 22, 2026
fc7b2a1
Merge pull request #84271 from software-mansion-labs/feature/jakubste…
iwiznia Apr 22, 2026
f6174d4
Merge pull request #87662 from callstack-internal/agent-device-local-…
rlinoz Apr 22, 2026
4a128f1
Merge pull request #87560 from callstack-internal/sentry/experimental…
rlinoz Apr 22, 2026
3e7e8cf
Revert "fix: prevent overlay dismiss during in-flight RHP transitions"
KJ21-ENG Apr 22, 2026
d5f883d
fix: migrate auto-focus from raw InteractionManager to useAutoFocusInput
KJ21-ENG Apr 22, 2026
db3dedd
address review: apply same perf fix to DebugReportActions and fix tes…
TMisiukiewicz Apr 22, 2026
cf8f577
test: wrap IOURequestEditReportCommon test in NavigationContainer
KJ21-ENG Apr 22, 2026
f90f35b
Merge pull request #87041 from paulnjs/paulnjs-fix/80486-part-2
Valforte Apr 22, 2026
6858d23
Merge pull request #88485 from Expensify/rory-rc-company-card-details
Valforte Apr 22, 2026
f686a11
Merge pull request #86517 from software-mansion-labs/jakubstec/remove…
Valforte Apr 22, 2026
01ecd17
Merge pull request #87728 from Krishna2323/krishna2323/issue/86683
Valforte Apr 22, 2026
89b7c94
Merge pull request #88325 from Pujan92/fix/88147
Valforte Apr 22, 2026
b1eae81
Clean up MoneyRequestParticipantsSelector data ownership
OlimpiaZurek Apr 22, 2026
a4d4fe8
Merge branch 'main' into perf/MoneyRequestParticipantsSelector-decomp…
OlimpiaZurek Apr 22, 2026
63c4076
Merge pull request #88205 from Expensify/claude-hideEmptyCustomFieldC…
Valforte Apr 22, 2026
c77ed49
Merge pull request #87690 from nabi-ebrahimi/fix/offline-business-ba-…
Valforte Apr 22, 2026
3d58c9d
Revert "fix: show inline member row error when workspace role update …
JS00001 Apr 22, 2026
1984eca
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 22, 2026
e2d048b
Merge pull request #88531 from Expensify/revert-87994-fix/workspace-m…
amyevans Apr 22, 2026
5b64ac0
fix: pass backToReport instead of action to useRestartOnOdometerImage…
jakubkalinski0 Apr 22, 2026
048c7cb
fix: pass backToReport instead of action to useRestartOnOdometerImage…
jakubkalinski0 Apr 22, 2026
095f724
Merge pull request #88417 from software-mansion-labs/@OlGierd03/perf-…
rlinoz Apr 22, 2026
ae001d4
chore: prettier run
jakubkalinski0 Apr 22, 2026
c2b4c2b
Revert "[cp staging] Revert "fix: show inline member row error when w…
JS00001 Apr 22, 2026
4687a71
address comment
OlimpiaZurek Apr 22, 2026
627eb88
Merge pull request #87238 from nabi-ebrahimi/fix/report-total-greyout…
iwiznia Apr 22, 2026
0563bbd
Merge branch 'Expensify:main' into knip-audit-export-1
shubham1206agra Apr 22, 2026
76f633f
Merge pull request #88533 from Expensify/revert-88531-revert-87994-fi…
JS00001 Apr 22, 2026
369ce44
Merge branch 'main' into knip-audit-export-5
shubham1206agra Apr 22, 2026
977b90e
Merge branch 'main' into knip-audit-export-4
shubham1206agra Apr 22, 2026
cd5dec9
Merge branch 'Expensify:main' into knip-audit-export-6
shubham1206agra Apr 22, 2026
43f2776
Match HR section width to Accounting
ShridharGoel Apr 22, 2026
418d815
fix types
JS00001 Apr 22, 2026
f26c7f6
Merge remote-tracking branch 'upstream/main' into gusto1.5
ShridharGoel Apr 22, 2026
885f601
Merge pull request #88537 from Expensify/jsenyitko-main-type
JS00001 Apr 22, 2026
ca0f1ca
fix: preserve effect cleanup for async pre-flight in OdometerReceiptS…
jakubkalinski0 Apr 22, 2026
705830c
Merge pull request #88163 from Expensify/onboarding-improvements
grgia Apr 22, 2026
23e3b4c
Address PR review comments
sharabai Apr 22, 2026
e9e52c2
Merge remote-tracking branch 'origin/main' into fix/newChatPage/dataP…
sharabai Apr 22, 2026
46294cd
Fix spelling
sharabai Apr 22, 2026
3a9ebb8
fix chatAttachment width/height
mrejdak Apr 22, 2026
5ec9d04
Fix lint
shubham1206agra Apr 22, 2026
2a8ad71
Merge branch 'Expensify:main' into knip-audit-export-1
shubham1206agra Apr 22, 2026
5013961
Merge branch 'Expensify:main' into knip-audit-export-4
shubham1206agra Apr 22, 2026
0236638
Merge branch 'Expensify:main' into knip-audit-export-6
shubham1206agra Apr 22, 2026
e3c8528
Merge branch 'Expensify:main' into knip-audit-export-5
shubham1206agra Apr 22, 2026
b734f33
Merge pull request #88430 from callstack-internal/perf/MoneyRequestPa…
Julesssss Apr 22, 2026
9bf15b2
Merge branch 'main' of https://github.com/Expensify/App into gusto1.5
ShridharGoel Apr 22, 2026
21ce298
Merge pull request #87269 from software-mansion-labs/jakubkalinski0/O…
Julesssss Apr 22, 2026
7339429
Merge pull request #88283 from shubham1206agra/knip-audit-export-4
Julesssss Apr 22, 2026
63204ef
Merge pull request #88284 from shubham1206agra/knip-audit-export-5
Julesssss Apr 22, 2026
affa37f
Merge pull request #88203 from callstack-internal/VickyStash/bugfix/8…
Julesssss Apr 22, 2026
5a2d4dd
Merge pull request #87959 from callstack-internal/perf/extract-useRes…
Julesssss Apr 22, 2026
6361f34
Merge pull request #88285 from shubham1206agra/knip-audit-export-6
Julesssss Apr 22, 2026
facd48d
Merge branch 'Expensify:main' into knip-audit-export-1
shubham1206agra Apr 22, 2026
80a6541
Merge pull request #86869 from neerajbachani/fix/84248-vacation-deleg…
AndrewGable Apr 22, 2026
4c80f6a
refactor: collapse dual runStitch paths into single Promise.all in Od…
jakubkalinski0 Apr 22, 2026
1ca1d27
Merge pull request #88254 from Expensify/claude-hideThreeDotsMenuForL…
AndrewGable Apr 22, 2026
4fa6854
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 22, 2026
0893231
chore: fix wrongfully pushed merge conflict
jakubkalinski0 Apr 22, 2026
082a0b8
refactor: remove overbearing local state cleanup
jakubkalinski0 Apr 22, 2026
017b21f
Merge pull request #88401 from dukenv0307/fix/66407-part-8
roryabraham Apr 22, 2026
386ef04
Merge pull request #88064 from Expensify/cristipaval/send-money-fraud…
flodnv Apr 22, 2026
9941398
Merge pull request #87881 from software-mansion-labs/fix/newChatPage/…
NikkiWines Apr 22, 2026
a05608b
Update version to 9.3.61-3
OSBotify Apr 22, 2026
8a1bdd2
Update Mobile-Expensify submodule version to 9.3.61-3
OSBotify Apr 22, 2026
5f1063a
Merge pull request #88115 from emkhalid/fix/legacy-collect-subscription
aldo-expensify Apr 22, 2026
5b49715
Use avatar-style Gusto icon
ShridharGoel Apr 22, 2026
fbb2c1b
Restore base Gusto asset
ShridharGoel Apr 22, 2026
c06f8ca
Merge remote-tracking branch 'upstream/main' into gusto1.5
ShridharGoel Apr 22, 2026
69df032
Merge pull request #88149 from abbasifaizan70/87517
rlinoz Apr 22, 2026
0a3ec18
Merge pull request #87682 from Expensify/cmartins-ruleSummary
luacmartins Apr 22, 2026
7caa24a
rename file
luacmartins Apr 22, 2026
28afae0
Merge pull request #88161 from Expensify/claude-helpSiteCancelDeleteS…
sakluger Apr 22, 2026
7387f0c
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 22, 2026
e37baa0
Merge pull request #88517 from software-mansion-labs/fix-debug-builds…
roryabraham Apr 22, 2026
9b1e46f
Auto-fix ESLint warnings, adjust max warning count
roryabraham Apr 22, 2026
8c7bc5f
Fix prettier
roryabraham Apr 22, 2026
bb23130
Destructure import
roryabraham Apr 22, 2026
76f15c5
Merge pull request #88553 from Expensify/Rory-FixESLintWarningCount
roryabraham Apr 22, 2026
a675eee
Merge branch 'main' of https://github.com/Expensify/App into gusto1.5
ShridharGoel Apr 22, 2026
8da78c2
Merge branch 'main' into helpsite-reports-to-spend-87974
stephanieelliott Apr 23, 2026
c70c52b
Merge pull request #88209 from software-mansion-labs/mrejdak/fix-zoom…
mjasikowski Apr 23, 2026
85d6175
Use dynamic browser tab title on SearchPage based on search type
MelvinBot Apr 23, 2026
7e688cf
Simplify document title to just use 'Spend' instead of dynamic search…
MelvinBot Apr 23, 2026
cc199b0
Move useDocumentTitle back to original line 29 position
MelvinBot Apr 23, 2026
f7587b5
Merge remote-tracking branch 'origin/main' into perf/report-welcome-text
TMisiukiewicz Apr 23, 2026
1ff0a7c
Fix QA guide avatar disappearing when reopening admins room
MelvinBot Apr 23, 2026
f20ecda
Remove redundant indexOf in renderTopReportActions
MelvinBot Apr 23, 2026
882d1ee
fix search content is cut off when there are filter bars
bernhardoj Apr 23, 2026
b9d902d
Replace indexOf with precomputed index map in renderItem
MelvinBot Apr 23, 2026
cd199f8
Merge pull request #82934 from software-mansion-labs/war-in/domains/s…
mountiny Apr 23, 2026
da2820f
Merge remote-tracking branch 'upstream/main' into decompose-scan-pr1-…
rinej Apr 23, 2026
3c7b126
Merge branch 'main' into fix/issue-82188
hoangzinh Apr 23, 2026
7fc6b9b
Merge branch 'main' into jakubkalinski0/Odometer_blob_url_loss_detection
jakubkalinski0 Apr 23, 2026
cceddfb
Revert renderTopReportActions to pass global index
MelvinBot Apr 23, 2026
de41aee
Trigger workflow
hoangzinh Apr 23, 2026
de80470
fix: Expense - Map expense is shown instead scan expense
TaduJR Apr 23, 2026
72dc4b6
Merge pull request #88511 from callstack-internal/perf/report-welcome…
mountiny Apr 23, 2026
b31a553
Run Claude PR reviewer on Contributor+ approval
mountiny Apr 23, 2026
5fbfe15
Merge pull request #88565 from Expensify/claude-fixSpendPageBrowserTa…
madmax330 Apr 23, 2026
7e807bf
Merge pull request #88573 from bernhardoj/fix/84876-search-content-cu…
JS00001 Apr 23, 2026
135e6d1
Merge pull request #88230 from KJ21-ENG/kj/86927-lhn-rbr-modified-amount
Valforte Apr 23, 2026
c27efa4
Merge pull request #88571 from Expensify/claude-fixQaGuideAvatarDisap…
mountiny Apr 23, 2026
d9d23cf
Update version to 9.3.61-4
OSBotify Apr 23, 2026
4c52779
Update Mobile-Expensify submodule version to 9.3.61-4
OSBotify Apr 23, 2026
6b93902
Extract Contributor+ membership check into composite action
mountiny Apr 23, 2026
c5b9477
Bump @sentry/webpack-plugin to 5.2.0 and googleapis to ^152.0.0
MelvinBot Apr 23, 2026
d41bdad
Update package-lock.json for bumped devDependencies
MelvinBot Apr 23, 2026
3de9659
fix: ignore stale draft iouRequestType when reportID differs from route
TaduJR Apr 23, 2026
a107395
Merge branch 'main' into feat/88044-add-displays-section-in-save-sear…
bernhardoj Apr 23, 2026
4ccde7f
lint
bernhardoj Apr 23, 2026
4daa1f0
Merge pull request #88274 from Expensify/claude-referralProgramCTATapFix
amyevans Apr 23, 2026
5be9f6e
Merge pull request #87083 from callstack-internal/decompose-scan-pr1-…
cristipaval Apr 23, 2026
36fcdc8
Merge branch 'main' into cmaritns-renameFIle
luacmartins Apr 23, 2026
d08e104
Merge pull request #88390 from nabi-ebrahimi/fix/expense-qab-pay-pers…
luacmartins Apr 23, 2026
a613428
Merge pull request #88518 from software-mansion-labs/jnowakow/block-r…
luacmartins Apr 23, 2026
f38c046
Merge pull request #88548 from Expensify/cmaritns-renameFIle
luacmartins Apr 23, 2026
fd5edf6
Merge pull request #88448 from bernhardoj/feat/88044-add-displays-sec…
JS00001 Apr 23, 2026
fba471a
Merge pull request #86733 from Expensify/claude-fixMigratedUserWelcom…
rlinoz Apr 23, 2026
416dfe0
Merge pull request #87848 from nkdengineer/fix/87605
dangrous Apr 23, 2026
c89c413
Merge pull request #88585 from TaduJR/fix-Expense-Map-expense-is-show…
AndrewGable Apr 23, 2026
9856338
Merge pull request #86023 from software-mansion-labs/jakubkalinski0/O…
Julesssss Apr 23, 2026
bfed334
Merge pull request #88367 from KJ21-ENG/kj/87174-fix-rhp-sluggish-ani…
Julesssss Apr 23, 2026
9b4c4e0
Merge pull request #88280 from shubham1206agra/knip-audit-export-1
Julesssss Apr 23, 2026
eb119eb
Merge pull request #88584 from Expensify/mountiny-claude-review-cplus…
AndrewGable Apr 23, 2026
5173ab7
Merge pull request #88186 from hoangzinh/fix/issue-82188
mountiny Apr 23, 2026
2363a90
Merge pull request #88466 from ShridharGoel/gusto1.5
yuwenmemon Apr 23, 2026
97bf507
Merge pull request #88191 from bernhardoj/fix/88051-popover-height-in…
luacmartins Apr 23, 2026
5f8f5a4
Merge pull request #88343 from dukenv0307/fix/66407-part-7
roryabraham Apr 23, 2026
e4ca4a1
Remove trailing whitespace
rafecolton Apr 23, 2026
bc71f44
Update country list
rafecolton Apr 23, 2026
dd56444
Minor copy changes
rafecolton Apr 23, 2026
63dd8b9
Update list of countries for Expensify Card eligibility
jamesdeanexpensify Apr 23, 2026
d99e1b6
Drop typing write
inimaga Apr 23, 2026
520b4bb
Update tests
inimaga Apr 23, 2026
b60ea9b
Update version to 9.3.62-0
OSBotify Apr 23, 2026
e1e6b5c
Update Mobile-Expensify submodule version to 9.3.62-0
OSBotify Apr 23, 2026
104da35
Merge pull request #88010 from Expensify/helpsite-reports-to-spend-87974
sakluger Apr 23, 2026
8575311
Merge pull request #88626 from Expensify/update-country-list
carlosmiceli Apr 23, 2026
0c01edb
Update Mobile-Expensify submodule to c756878
OSBotify Apr 23, 2026
1df185b
Add proportionate guidance for unrequested magic code emails
MelvinBot Apr 23, 2026
ffacf2a
put spend rule summary and editing behind env guard
luacmartins Apr 23, 2026
9af7d59
fix prettier
luacmartins Apr 23, 2026
ede2cc5
Merge pull request #88663 from Expensify/cmartins-addEnvGuard
luacmartins Apr 24, 2026
3eb4190
Update version to 9.3.62-1
OSBotify Apr 24, 2026
6f0a583
Update Mobile-Expensify submodule version to 9.3.62-1
OSBotify Apr 24, 2026
18f2b54
Merge pull request #88382 from callstack-internal/bulk-edit-bug-tax-f…
marcaaron Apr 24, 2026
25192d3
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
f191085
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
0def5a7
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
03404f6
Update Avoiding-common-scams.md
stephanieelliott Apr 24, 2026
4cfb6a6
Merge pull request #88662 from Expensify/claude-updateUnrequestedMagi…
RachCHopkins Apr 24, 2026
9b428c1
Merge pull request #88630 from Expensify/issa-remove-optimistic-conci…
inimaga Apr 24, 2026
4c62e96
Merge pull request #88590 from Expensify/claude-snykFixSentryGoogleapis
MonilBhavsar Apr 24, 2026
62d199d
resolve merge conflict
jakubstec Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4108,6 +4108,11 @@ const ROUTES = {
route: 'domain/:domainAccountID/groups/:groupID/name',
getRoute: (domainAccountID: number, groupID: string) => `domain/${domainAccountID}/groups/${groupID}/name` as const,
},

DOMAIN_SECURITY_GROUPS_PREFERRED_WORKSPACE: {
route: 'domain/:domainAccountID/groups/:groupID/preferred-workspace',
getRoute: (domainAccountID: number, groupID: string) => `domain/${domainAccountID}/groups/${groupID}/preferred-workspace` as const,
},
} as const;

/**
Expand Down
1 change: 1 addition & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -995,6 +995,7 @@ const SCREENS = {
MEMBER_LOCK_ACCOUNT: 'Member_Lock_Account',
GROUP_DETAILS: 'Domain_Group_Details',
GROUP_EDIT_NAME: 'Domain_Group_Edit_Name',
SECURITY_GROUPS_PREFERRED_WORKSPACE: 'Domain_Security_Groups_Preferred_Workspace',
},
MULTIFACTOR_AUTHENTICATION: {
MAGIC_CODE: 'Multifactor_Authentication_Magic_Code',
Expand Down
4 changes: 4 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8886,6 +8886,10 @@ Hier ist ein *Testbeleg*, um dir zu zeigen, wie es funktioniert:`,
settings:
'<rbr>Diese Änderung konnte nicht gespeichert werden. Bitte versuche es erneut oder <concierge-link>kontaktiere Concierge</concierge-link> für weitere Unterstützung.</rbr>',
},
permissions: 'Gruppenberechtigungen',
preferredWorkspace: 'Bevorzugter Arbeitsbereich',
preferredWorkspaceDescription: (enabled: boolean) => `Alle neuen Berichte und Ausgaben werden im ${enabled ? 'ausgewählten bevorzugten' : 'diesem'} Arbeitsbereich erstellt.`,
preferredWorkspaceSelectDescription: 'Alle neuen Ausgaben und Berichte werden in diesem Arbeitsbereich erstellt.',
},
},
proactiveAppReview: {
Expand Down
5 changes: 5 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8869,6 +8869,11 @@ const translations = {
error: {
settings: 'Couldn\'t save this change. Please try again.',
},
permissions: 'Group permissions',
preferredWorkspace: 'Preferred Workspace',
preferredWorkspaceDescription: (enabled: boolean) => `All new reports and expenses will be created on ${enabled ? 'selected preferred' : 'this'} workspace.`,
preferredWorkspaceSelectDescription: 'All new expenses and reports will be created on this workspace.',
noWorkspacesMessage: 'There are no workspaces on this domain. A workspace is required to enable this restriction.',
},
},
};
Expand Down
6 changes: 6 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9152,6 +9152,12 @@ ${amount} para ${merchant} - ${date}`,
error: {
settings: 'No se pudo guardar este cambio. Inténtalo de nuevo.',
},
permissions: 'Permisos de grupo',
preferredWorkspace: 'Espacio de trabajo preferido',
preferredWorkspaceDescription: (enabled) =>
`Todos los nuevos informes y gastos se crearán en ${enabled ? 'el espacio de trabajo preferido seleccionado' : 'este espacio de trabajo'}.`,
preferredWorkspaceSelectDescription: 'Todos los nuevos gastos e informes se crearán en este espacio de trabajo.',
noWorkspacesMessage: 'No hay espacios de trabajo en este dominio. Se requiere un espacio de trabajo para habilitar esta restricción.',
},
},
gps: {
Expand Down
5 changes: 5 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8907,6 +8907,11 @@ Voici un *reçu test* pour vous montrer comment ça fonctionne :`,
title: 'Groupes',
memberCount: () => ({one: '1 membre', other: (count: number) => `${count} membres`}),
error: {settings: "<rbr>Impossible d'enregistrer cette modification. Veuillez réessayer ou <concierge-link>contacter Concierge</concierge-link> pour obtenir de l'aide.</rbr>"},
permissions: 'Permissions du groupe',
preferredWorkspace: 'Espace de travail préféré',
preferredWorkspaceDescription: (enabled: boolean) =>
`Tous les nouveaux rapports et dépenses seront créés dans ${enabled ? "l'espace de travail préféré sélectionné" : 'cet espace de travail'}.`,
preferredWorkspaceSelectDescription: 'Toutes les nouvelles dépenses et tous les nouveaux rapports seront créés dans cet espace de travail.',
},
},
proactiveAppReview: {
Expand Down
5 changes: 5 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8873,6 +8873,11 @@ Ecco una *ricevuta di prova* per mostrarti come funziona:`,
title: 'Gruppi',
memberCount: () => ({one: '1 membro', other: (count: number) => `${count} membri`}),
error: {settings: '<rbr>Non è stato possibile salvare questa modifica. Riprova o <concierge-link>contatta Concierge</concierge-link> per ulteriore assistenza.</rbr>'},
permissions: 'Permessi del gruppo',
preferredWorkspace: 'Spazio di lavoro preferito',
preferredWorkspaceDescription: (enabled: boolean) =>
`Tutti i nuovi report e le spese verranno creati ${enabled ? 'nello spazio di lavoro preferito selezionato' : 'in questo spazio di lavoro'}.`,
preferredWorkspaceSelectDescription: 'Tutte le nuove spese e i report verranno creati in questo spazio di lavoro.',
},
},
proactiveAppReview: {
Expand Down
4 changes: 4 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8762,6 +8762,10 @@ ${reportName}
title: 'グループ',
memberCount: () => ({one: 'メンバー 1 人', other: (count: number) => `${count}名のメンバー`}),
error: {settings: '<rbr>この変更を保存できませんでした。もう一度お試しいただくか、<concierge-link>Conciergeにお問い合わせ</concierge-link>ください。</rbr>'},
permissions: 'グループ権限',
preferredWorkspace: '優先ワークスペース',
preferredWorkspaceDescription: (enabled: boolean) => `すべての新しいレポートと経費は${enabled ? '選択された優先' : 'この'}ワークスペースに作成されます。`,
preferredWorkspaceSelectDescription: 'すべての新しい経費とレポートはこのワークスペースに作成されます。',
},
},
proactiveAppReview: {
Expand Down
4 changes: 4 additions & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8851,6 +8851,10 @@ Hier is een *proefbon* om je te laten zien hoe het werkt:`,
title: 'Groepen',
memberCount: () => ({one: '1 lid', other: (count: number) => `${count} leden`}),
error: {settings: '<rbr>Kon deze wijziging niet opslaan. Probeer het opnieuw of <concierge-link>neem contact op met Concierge</concierge-link> voor meer ondersteuning.</rbr>'},
permissions: 'Groepsrechten',
preferredWorkspace: 'Voorkeurswerkruimte',
preferredWorkspaceDescription: (enabled: boolean) => `Alle nieuwe rapporten en uitgaven worden aangemaakt in ${enabled ? 'de geselecteerde voorkeurs' : 'deze'} werkruimte.`,
preferredWorkspaceSelectDescription: 'Alle nieuwe uitgaven en rapporten worden aangemaakt in deze werkruimte.',
},
},
proactiveAppReview: {
Expand Down
4 changes: 4 additions & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8828,6 +8828,10 @@ Oto *paragon testowy*, żeby pokazać Ci, jak to działa:`,
title: 'Grupy',
memberCount: () => ({one: '1 członek', other: (count: number) => `${count} członków`}),
error: {settings: '<rbr>Nie udało się zapisać tej zmiany. Spróbuj ponownie lub <concierge-link>skontaktuj się z Concierge</concierge-link>, aby uzyskać pomoc.</rbr>'},
permissions: 'Uprawnienia grupy',
preferredWorkspace: 'Preferowany obszar roboczy',
preferredWorkspaceDescription: (enabled: boolean) => `Wszystkie nowe raporty i wydatki będą tworzone w ${enabled ? 'wybranym preferowanym' : 'tym'} obszarze roboczym.`,
preferredWorkspaceSelectDescription: 'Wszystkie nowe wydatki i raporty będą tworzone w tym obszarze roboczym.',
},
},
proactiveAppReview: {
Expand Down
5 changes: 5 additions & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8838,6 +8838,11 @@ Aqui está um *comprovante de teste* para mostrar como funciona:`,
title: 'Grupos',
memberCount: () => ({one: '1 membro', other: (count: number) => `${count} membros`}),
error: {settings: '<rbr>Não foi possível salvar esta alteração. Tente novamente ou <concierge-link>entre em contato com o Concierge</concierge-link> para mais suporte.</rbr>'},
permissions: 'Permissões do grupo',
preferredWorkspace: 'Espaço de trabalho preferido',
preferredWorkspaceDescription: (enabled: boolean) =>
`Todos os novos relatórios e despesas serão criados ${enabled ? 'no espaço de trabalho preferido selecionado' : 'neste espaço de trabalho'}.`,
preferredWorkspaceSelectDescription: 'Todas as novas despesas e relatórios serão criados neste espaço de trabalho.',
},
},
proactiveAppReview: {
Expand Down
4 changes: 4 additions & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8595,6 +8595,10 @@ ${reportName}
title: '群组',
memberCount: () => ({one: '1 名成员', other: (count: number) => `${count} 名成员`}),
error: {settings: '<rbr>无法保存此更改。请重试或<concierge-link>联系Concierge</concierge-link>获取更多支持。</rbr>'},
permissions: '群组权限',
preferredWorkspace: '首选工作区',
preferredWorkspaceDescription: (enabled: boolean) => `所有新报告和费用将在${enabled ? '选定的首选' : '此'}工作区中创建。`,
preferredWorkspaceSelectDescription: '所有新费用和报告将在此工作区中创建。',
},
},
proactiveAppReview: {title: '喜欢全新的 Expensify 吗?', description: '请告诉我们,这样我们就能帮助您让报销体验变得更好。', positiveButton: '太棒了!', negativeButton: '不太是'},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -931,6 +931,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
[SCREENS.DOMAIN.MEMBER_LOCK_ACCOUNT]: () => require<ReactComponentModule>('../../../../pages/domain/Members/DomainReportSuspiciousActivityPage').default,
[SCREENS.DOMAIN.GROUP_DETAILS]: () => require<ReactComponentModule>('../../../../pages/domain/Groups/DomainGroupDetailsPage').default,
[SCREENS.DOMAIN.GROUP_EDIT_NAME]: () => require<ReactComponentModule>('../../../../pages/domain/Groups/DomainGroupEditNamePage').default,
[SCREENS.DOMAIN.SECURITY_GROUPS_PREFERRED_WORKSPACE]: () => require<ReactComponentModule>('../../../../pages/domain/Groups/DomainGroupPreferredWorkspacePage').default,
});

const TwoFactorAuthenticatorStackNavigator = createModalStackNavigator<EnablePaymentsNavigatorParamList>({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const DOMAIN_TO_RHP: Partial<Record<keyof DomainSplitNavigatorParamList, string[
SCREENS.DOMAIN.MEMBER_RESET_TWO_FACTOR_AUTH,
SCREENS.DOMAIN.MEMBER_LOCK_ACCOUNT,
],
[SCREENS.DOMAIN.GROUPS]: [SCREENS.DOMAIN.GROUP_DETAILS, SCREENS.DOMAIN.GROUP_EDIT_NAME],
[SCREENS.DOMAIN.GROUPS]: [SCREENS.DOMAIN.GROUP_DETAILS, SCREENS.DOMAIN.GROUP_EDIT_NAME, SCREENS.DOMAIN.SECURITY_GROUPS_PREFERRED_WORKSPACE],
};

export default DOMAIN_TO_RHP;
3 changes: 3 additions & 0 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1354,6 +1354,9 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
[SCREENS.DOMAIN.GROUP_EDIT_NAME]: {
path: ROUTES.DOMAIN_GROUP_EDIT_NAME.route,
},
[SCREENS.DOMAIN.SECURITY_GROUPS_PREFERRED_WORKSPACE]: {
path: ROUTES.DOMAIN_SECURITY_GROUPS_PREFERRED_WORKSPACE.route,
},
},
},
[SCREENS.RIGHT_MODAL.TWO_FACTOR_AUTH]: {
Expand Down
4 changes: 4 additions & 0 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1578,6 +1578,10 @@ type SettingsNavigatorParamList = {
domainAccountID: number;
groupID: string;
};
[SCREENS.DOMAIN.SECURITY_GROUPS_PREFERRED_WORKSPACE]: {
domainAccountID: number;
groupID: string;
};
} & ReimbursementAccountNavigatorParamList;

type DomainCardNavigatorParamList = {
Expand Down
2 changes: 1 addition & 1 deletion src/libs/actions/Domain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1707,7 +1707,7 @@ function updateDomainSecurityGroup(
groupID: string,
currentSecurityGroup: DomainSecurityGroup,
newSettingValue: Partial<DomainSecurityGroup>,
settingsName: keyof Pick<DomainSecurityGroup, 'name'>,
settingsName: keyof Pick<DomainSecurityGroup, 'name' | 'enableRestrictedPrimaryPolicy' | 'restrictedPrimaryPolicyID'>,
) {
const SECURITY_GROUP_KEY = `${CONST.DOMAIN.DOMAIN_SECURITY_GROUP_PREFIX}${groupID}`;
const newSecurityGroup = {...currentSecurityGroup, ...newSettingValue};
Expand Down
11 changes: 10 additions & 1 deletion src/pages/domain/Groups/DomainGroupDetailsPage.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import {domainSecurityGroupSettingErrorsSelector, domainSecurityGroupSettingPendingActionSelector, selectGroupByID} from '@selectors/Domain';
import React from 'react';
import {View} from 'react-native';
import ErrorMessageRow from '@components/ErrorMessageRow';
import HeaderWithBackButton from '@components/HeaderWithBackButton';
import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
import OfflineWithFeedback from '@components/OfflineWithFeedback';
import ScreenWrapper from '@components/ScreenWrapper';
import ScrollView from '@components/ScrollView';
import Text from '@components/Text';
import useLocalize from '@hooks/useLocalize';
import useOnyx from '@hooks/useOnyx';
import useThemeStyles from '@hooks/useThemeStyles';
Expand All @@ -17,14 +19,15 @@ import {clearDomainSecurityGroupSettingError} from '@userActions/Domain';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';
import PreferredWorkspaceToggle from './PreferredWorkspaceToggle';

type DomainGroupDetailsPageProps = PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.DOMAIN.GROUP_DETAILS>;

function DomainGroupDetailsPage({route}: DomainGroupDetailsPageProps) {
const {domainAccountID, groupID} = route.params;

const {translate} = useLocalize();
const styles = useThemeStyles();
const {translate} = useLocalize();

const [group] = useOnyx(`${ONYXKEYS.COLLECTION.DOMAIN}${domainAccountID}`, {
selector: selectGroupByID(groupID),
Expand Down Expand Up @@ -58,6 +61,12 @@ function DomainGroupDetailsPage({route}: DomainGroupDetailsPageProps) {
errorRowStyles={[styles.mh5, styles.mt3]}
/>
</OfflineWithFeedback>
<View style={[styles.sectionDividerLine, styles.ph5, styles.mv6]} />
<Text style={[styles.textNormal, styles.textStrong, styles.ph5]}>{translate('domain.groups.permissions')}</Text>
<PreferredWorkspaceToggle
domainAccountID={domainAccountID}
groupID={groupID}
/>
</ScrollView>
</ScreenWrapper>
</DomainNotFoundPageWrapper>
Expand Down
124 changes: 124 additions & 0 deletions src/pages/domain/Groups/DomainGroupPreferredWorkspacePage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
import {selectGroupByID} from '@selectors/Domain';
import {createAdminPoliciesSelector} from '@selectors/Policy';
import React, {useState} from 'react';
import FormAlertWithSubmitButton from '@components/FormAlertWithSubmitButton';
import HeaderWithBackButton from '@components/HeaderWithBackButton';
import ScreenWrapper from '@components/ScreenWrapper';
import SelectionList from '@components/SelectionList';
import UserListItem from '@components/SelectionList/ListItem/UserListItem';
import type {ListItem} from '@components/SelectionList/types';
import Text from '@components/Text';
import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
import useLocalize from '@hooks/useLocalize';
import useOnyx from '@hooks/useOnyx';
import useThemeStyles from '@hooks/useThemeStyles';
import {getDefaultWorkspaceAvatar} from '@libs/ReportUtils';
import Navigation from '@navigation/Navigation';
import type {PlatformStackScreenProps} from '@navigation/PlatformStackNavigation/types';
import type {SettingsNavigatorParamList} from '@navigation/types';
import DomainNotFoundPageWrapper from '@pages/domain/DomainNotFoundPageWrapper';
import {updateDomainSecurityGroup} from '@userActions/Domain';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';

type WorkspaceListItem = {
policyID: string;
created?: string;
} & ListItem;

type DomainGroupPreferredWorkspacePageProps = PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.DOMAIN.SECURITY_GROUPS_PREFERRED_WORKSPACE>;

function DomainGroupPreferredWorkspacePage({route}: DomainGroupPreferredWorkspacePageProps) {
const {domainAccountID, groupID} = route.params;

const styles = useThemeStyles();
const {translate, localeCompare} = useLocalize();
const icons = useMemoizedLazyExpensifyIcons(['FallbackWorkspaceAvatar']);

const [group] = useOnyx(`${ONYXKEYS.COLLECTION.DOMAIN}${domainAccountID}`, {
selector: selectGroupByID(groupID),
});

const currentPolicyID = group?.restrictedPrimaryPolicyID;

const [policies] = useOnyx(ONYXKEYS.COLLECTION.POLICY, {selector: createAdminPoliciesSelector(currentPolicyID)});
const [selectedPolicyID, setSelectedPolicyID] = useState<string | undefined>(currentPolicyID);
const [shouldShowError, setShouldShowError] = useState(false);

const workspaceOptions: WorkspaceListItem[] = [];
for (const policy of Object.values(policies ?? {})) {
if (!policy?.name || !policy?.id) {
continue;
}

workspaceOptions.push({
text: policy.name,
policyID: policy.id,
created: policy.created,
keyForList: policy.id,
isSelected: selectedPolicyID === policy.id,
icons: [
{
source: policy.avatarURL ?? getDefaultWorkspaceAvatar(policy.name),
fallbackIcon: icons.FallbackWorkspaceAvatar,
name: policy.name,
type: CONST.ICON_TYPE_WORKSPACE,
id: policy.id,
},
],
});
}

const handleSubmit = () => {
if (!selectedPolicyID) {
setShouldShowError(true);
return;
}
if (!group) {
return;
}

updateDomainSecurityGroup(domainAccountID, groupID, group, {restrictedPrimaryPolicyID: selectedPolicyID}, 'restrictedPrimaryPolicyID');
Navigation.goBack(ROUTES.DOMAIN_GROUP_DETAILS.getRoute(domainAccountID, groupID));
};

return (
<DomainNotFoundPageWrapper domainAccountID={domainAccountID}>
<ScreenWrapper
shouldEnableMaxHeight
testID="DomainGroupPreferredWorkspacePage"
includeSafeAreaPaddingBottom
>
<HeaderWithBackButton
title={translate('domain.groups.preferredWorkspace')}
onBackButtonPress={() => Navigation.goBack(ROUTES.DOMAIN_GROUP_DETAILS.getRoute(domainAccountID, groupID))}
/>
<Text style={[styles.ph5, styles.mb3]}>{translate('domain.groups.preferredWorkspaceSelectDescription')}</Text>
<SelectionList<WorkspaceListItem>
data={workspaceOptions.sort((a, b) => localeCompare(a.created ?? '', b.created ?? ''))}
ListItem={UserListItem}
onSelectRow={(item: WorkspaceListItem) => {
setSelectedPolicyID(item.policyID);
setShouldShowError(false);
}}
initiallyFocusedItemKey={currentPolicyID}
shouldUpdateFocusedIndex
footerContent={
<FormAlertWithSubmitButton
buttonText={translate('common.save')}
onSubmit={handleSubmit}
isAlertVisible={shouldShowError}
containerStyles={[!shouldShowError && styles.mt5]}
message={translate('common.error.pleaseSelectOne')}
enabledWhenOffline
/>
}
/>
</ScreenWrapper>
</DomainNotFoundPageWrapper>
);
}

export default DomainGroupPreferredWorkspacePage;
Loading
Loading