From cc0141ed920ef3f6162ad8aaa1458a52e327b5ab Mon Sep 17 00:00:00 2001 From: Sheena Trepanier Date: Mon, 17 Jun 2024 16:44:51 -0700 Subject: [PATCH 001/132] Move articles out of Accounts Settings and delete Account Settings --- .../settings/{account-settings => }/Add-profile-photo.md | 0 .../{account-settings => }/Change-or-add-email-address.md | 0 .../{account-settings => }/Close-or-reopen-account.md | 0 .../settings/{account-settings => }/Manage-devices.md | 0 .../settings/{account-settings => }/Merge-accounts.md | 0 .../settings/{account-settings => }/Set-Notifications.md | 0 .../settings/{account-settings => }/Set-time-zone.md | 0 docs/expensify-classic/hubs/settings/account-settings.html | 6 ------ 8 files changed, 6 deletions(-) rename docs/articles/expensify-classic/settings/{account-settings => }/Add-profile-photo.md (100%) rename docs/articles/expensify-classic/settings/{account-settings => }/Change-or-add-email-address.md (100%) rename docs/articles/expensify-classic/settings/{account-settings => }/Close-or-reopen-account.md (100%) rename docs/articles/expensify-classic/settings/{account-settings => }/Manage-devices.md (100%) rename docs/articles/expensify-classic/settings/{account-settings => }/Merge-accounts.md (100%) rename docs/articles/expensify-classic/settings/{account-settings => }/Set-Notifications.md (100%) rename docs/articles/expensify-classic/settings/{account-settings => }/Set-time-zone.md (100%) delete mode 100644 docs/expensify-classic/hubs/settings/account-settings.html diff --git a/docs/articles/expensify-classic/settings/account-settings/Add-profile-photo.md b/docs/articles/expensify-classic/settings/Add-profile-photo.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Add-profile-photo.md rename to docs/articles/expensify-classic/settings/Add-profile-photo.md diff --git a/docs/articles/expensify-classic/settings/account-settings/Change-or-add-email-address.md b/docs/articles/expensify-classic/settings/Change-or-add-email-address.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Change-or-add-email-address.md rename to docs/articles/expensify-classic/settings/Change-or-add-email-address.md diff --git a/docs/articles/expensify-classic/settings/account-settings/Close-or-reopen-account.md b/docs/articles/expensify-classic/settings/Close-or-reopen-account.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Close-or-reopen-account.md rename to docs/articles/expensify-classic/settings/Close-or-reopen-account.md diff --git a/docs/articles/expensify-classic/settings/account-settings/Manage-devices.md b/docs/articles/expensify-classic/settings/Manage-devices.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Manage-devices.md rename to docs/articles/expensify-classic/settings/Manage-devices.md diff --git a/docs/articles/expensify-classic/settings/account-settings/Merge-accounts.md b/docs/articles/expensify-classic/settings/Merge-accounts.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Merge-accounts.md rename to docs/articles/expensify-classic/settings/Merge-accounts.md diff --git a/docs/articles/expensify-classic/settings/account-settings/Set-Notifications.md b/docs/articles/expensify-classic/settings/Set-Notifications.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Set-Notifications.md rename to docs/articles/expensify-classic/settings/Set-Notifications.md diff --git a/docs/articles/expensify-classic/settings/account-settings/Set-time-zone.md b/docs/articles/expensify-classic/settings/Set-time-zone.md similarity index 100% rename from docs/articles/expensify-classic/settings/account-settings/Set-time-zone.md rename to docs/articles/expensify-classic/settings/Set-time-zone.md diff --git a/docs/expensify-classic/hubs/settings/account-settings.html b/docs/expensify-classic/hubs/settings/account-settings.html deleted file mode 100644 index e53f92312b7c..000000000000 --- a/docs/expensify-classic/hubs/settings/account-settings.html +++ /dev/null @@ -1,6 +0,0 @@ ---- -layout: default -title: Account Settings ---- - -{% include section.html %} From f93e3ed82e90f55dfa5f9f5e80573e9a289bcaa3 Mon Sep 17 00:00:00 2001 From: Rachael Hopkins <32854888+RachCHopkins@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:05:05 +1200 Subject: [PATCH 002/132] Create deel.md --- .../integrations/HR-integrations/deel.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/articles/expensify-classic/integrations/HR-integrations/deel.md diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/deel.md b/docs/articles/expensify-classic/integrations/HR-integrations/deel.md new file mode 100644 index 000000000000..12e616d9657f --- /dev/null +++ b/docs/articles/expensify-classic/integrations/HR-integrations/deel.md @@ -0,0 +1,35 @@ +--- +title: Deel Integration +description: Automatically sync expenses from Expensify to Deel +--- + +# Overview + +This guide is for business clients who want to set up policies and synchronize expenses from Expensify to Deel. This one-way synchronization ensures that Expensify becomes the definitive source for all employee expenses. + +If you are a contractor or employee working for a company using Expensify, please refer to: + +- [Employee Guide to Using Expensify with Deel](https://help.letsdeel.com/hc/en-gb/articles/7123572847761-Employee-s-Guide-to-Using-Expensify-With-Deel) +- [Contractor Guide to Using Expensify with Deel](https://help.letsdeel.com/hc/en-gb/articles/9640208314897-How-Contractors-Can-Use-Expensify-With-Deel) + +## Introduction: + +By integrating Expensify with Deel, you can utilize Expensify’s approval workflows to ensure timely payment through Deel for your team. + +This process involves aligning user profiles and expense policies between Expensify and Deel. Once connected, Deel will scan for approved expenses from matched users included in selected workspaces for integration, allowing Deel to import these expenses for reimbursement. + +This synchronization is one-way. Expenses and receipts logged and approved in Expensify will sync to Deel. Expenses logged in Deel will not sync to Expensify. + +*Please note,* expense syncing is not immediate. For details on how syncing operates, refer to ["How Does Expense Syncing Work?"]([https://example.com](https://help.letsdeel.com/hc/en-gb/articles/5871319525521-How-To-Set-Up-The-Expensify-Integration-On-Deel-For-EOR-Employees-And-Contractors#h_01G25AWSW0KHWBA63C1AZ6X9E9)) + +## Before you begin: + +To establish a connection, make sure you have the following: + +- Deel Organization Manager permissions +- Expensify Admin permissions for policies you wish to integrate with Deel +- A paid Expensify subscription to approve expenses and sync them to Deel + +Expensify Admin permissions can be intricate. Refer to [Expensify’s Introduction to Integration]([https://example.com](https://integrations.expensify.com/Integration-Server/doc/#introduction)) for more details. + +For further steps on integration, consult the [integration guide](https://help.letsdeel.com/hc/en-gb/articles/5871319525521-How-To-Set-Up-The-Expensify-Integration-On-Deel-For-EOR-Employees-And-Contractors). From fdd7bb2e4cbdab06c1bd22da635baabbeede67c3 Mon Sep 17 00:00:00 2001 From: Rachael Hopkins <32854888+RachCHopkins@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:27:25 +1200 Subject: [PATCH 003/132] Rename deel.md to Deel.md --- .../integrations/HR-integrations/{deel.md => Deel.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/articles/expensify-classic/integrations/HR-integrations/{deel.md => Deel.md} (100%) diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/deel.md b/docs/articles/expensify-classic/integrations/HR-integrations/Deel.md similarity index 100% rename from docs/articles/expensify-classic/integrations/HR-integrations/deel.md rename to docs/articles/expensify-classic/integrations/HR-integrations/Deel.md From a12bf41f900c4ff8fe78b2381fd64784ed46fc03 Mon Sep 17 00:00:00 2001 From: Rayane Djouah <77965000+rayane-djouah@users.noreply.github.com> Date: Thu, 8 Aug 2024 08:35:34 +0100 Subject: [PATCH 004/132] Fix: The pressed state of option menu items uses a very dark BG color --- src/components/MenuItem.tsx | 1 + src/styles/utils/index.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/MenuItem.tsx b/src/components/MenuItem.tsx index 8af6cd492c03..4025e4cabc04 100644 --- a/src/components/MenuItem.tsx +++ b/src/components/MenuItem.tsx @@ -536,6 +536,7 @@ function MenuItem( onPressOut={ControlSelection.unblock} onSecondaryInteraction={onSecondaryInteraction} wrapperStyle={outerWrapperStyle} + activeOpacity={0.8} style={({pressed}) => [ containerStyle, diff --git a/src/styles/utils/index.ts b/src/styles/utils/index.ts index ed76abd484d0..872b5ee52458 100644 --- a/src/styles/utils/index.ts +++ b/src/styles/utils/index.ts @@ -1290,7 +1290,7 @@ const createStyleUtils = (theme: ThemeColors, styles: ThemeStyles) => ({ getButtonBackgroundColorStyle: (buttonState: ButtonStateName = CONST.BUTTON_STATES.DEFAULT, isMenuItem = false): ViewStyle => { switch (buttonState) { case CONST.BUTTON_STATES.PRESSED: - return {backgroundColor: theme.buttonPressedBG}; + return isMenuItem ? {backgroundColor: theme.buttonHoveredBG} : {backgroundColor: theme.buttonPressedBG}; case CONST.BUTTON_STATES.ACTIVE: return isMenuItem ? {backgroundColor: theme.border} : {backgroundColor: theme.buttonHoveredBG}; case CONST.BUTTON_STATES.DISABLED: From 33ed8e97d029481660daeebf724d759f7ea9e5ea Mon Sep 17 00:00:00 2001 From: Rayane Djouah <77965000+rayane-djouah@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:20:03 +0100 Subject: [PATCH 005/132] Update button pressed state background color style in BaseMiniContextMenuItem --- src/components/BaseMiniContextMenuItem.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BaseMiniContextMenuItem.tsx b/src/components/BaseMiniContextMenuItem.tsx index 6e1a1e0fd229..fa0fdb45153f 100644 --- a/src/components/BaseMiniContextMenuItem.tsx +++ b/src/components/BaseMiniContextMenuItem.tsx @@ -79,7 +79,7 @@ function BaseMiniContextMenuItem( role={CONST.ROLE.BUTTON} style={({hovered, pressed}) => [ styles.reportActionContextMenuMiniButton, - StyleUtils.getButtonBackgroundColorStyle(getButtonState(hovered, pressed, isDelayButtonStateComplete)), + StyleUtils.getButtonBackgroundColorStyle(getButtonState(hovered, pressed, isDelayButtonStateComplete), true), isDelayButtonStateComplete && styles.cursorDefault, ]} > From eba4b8ddf59cf71c20af489f0b52df1783af9820 Mon Sep 17 00:00:00 2001 From: dominictb Date: Fri, 16 Aug 2024 01:58:54 +0700 Subject: [PATCH 006/132] fix User is not task's author or task's assignee has ability to complete the task --- src/components/ReportActionItem/TaskPreview.tsx | 2 +- src/components/ReportActionItem/TaskView.tsx | 3 ++- src/components/TaskHeaderActionButton.tsx | 2 +- src/libs/actions/Task.ts | 8 ++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/components/ReportActionItem/TaskPreview.tsx b/src/components/ReportActionItem/TaskPreview.tsx index ca1324a31fa7..0fe498590d17 100644 --- a/src/components/ReportActionItem/TaskPreview.tsx +++ b/src/components/ReportActionItem/TaskPreview.tsx @@ -99,7 +99,7 @@ function TaskPreview({taskReport, taskReportID, action, contextMenuAnchor, chatR style={[styles.mr2]} containerStyle={[styles.taskCheckbox]} isChecked={isTaskCompleted} - disabled={!Task.canModifyTask(taskReport, currentUserPersonalDetails.accountID)} + disabled={!Task.canModifyTask(taskReport, currentUserPersonalDetails.accountID) || !Task.canActionTask(taskReport, currentUserPersonalDetails.accountID)} onPress={Session.checkIfActionIsAllowed(() => { if (isTaskCompleted) { Task.reopenTask(taskReport); diff --git a/src/components/ReportActionItem/TaskView.tsx b/src/components/ReportActionItem/TaskView.tsx index 941e7cd5c610..2822e34a3d04 100644 --- a/src/components/ReportActionItem/TaskView.tsx +++ b/src/components/ReportActionItem/TaskView.tsx @@ -56,6 +56,7 @@ function TaskView({report, ...props}: TaskViewProps) { const isCompleted = ReportUtils.isCompletedTaskReport(report); const isOpen = ReportUtils.isOpenTaskReport(report); const canModifyTask = Task.canModifyTask(report, props.currentUserPersonalDetails.accountID); + const canActionTask = Task.canActionTask(report, props.currentUserPersonalDetails.accountID); const disableState = !canModifyTask; const isDisableInteractive = !canModifyTask || !isOpen; const personalDetails = usePersonalDetails() || CONST.EMPTY_OBJECT; @@ -113,7 +114,7 @@ function TaskView({report, ...props}: TaskViewProps) { containerBorderRadius={8} caretSize={16} accessibilityLabel={taskTitle || translate('task.task')} - disabled={!canModifyTask} + disabled={!canModifyTask || !canActionTask} />