Skip to content

[Certinia] R1 FFA: Advanced page #89436

@yuwenmemon

Description

@yuwenmemon

Parent: Expensify/Expensify#589894
Design doc: https://docs.google.com/document/d/1qQXU4EIij-OyCpk6z8idi0ch0rP4XtIQ0770STZeF5E/edit

Scope

Build the FFA Advanced page for Certinia with the Auto Sync and Sync Reimbursed Reports toggles. PSA conditional rendering (Tax Non-Billable, Export Foreign Currency) is added in a later Release 2 issue.

Implementation notes (from design doc)

src/pages/workspace/accounting/certinia/advanced/CertiniaAdvancedPage.tsx — Create

Uses ConnectionLayout. For Release 1, FFA-only content. Each row in OfflineWithFeedback with pendingAction, errors, and onCloseError props.

FFA content:

  1. Auto Sync: ToggleSettingOptionRow. Subtitle: "Expensify will automatically sync with Certinia every day." isActive={!!config?.autoSync?.enabled}. onToggle={(enabled) => updateFinancialForceAutoSync(policyID, enabled)}.
  2. Sync Reimbursed Reports: ToggleSettingOptionRow. Subtitle: "With this option enabled, anytime a Payable Invoice is paid in FFA, the related Expensify report will be automatically marked as reimbursed." isActive={!!config?.advanced?.syncReimbursedReports}. onToggle={(enabled) => updateFinancialForceSyncReimbursedReports(policyID, enabled)}.

Tests

  • Advanced page renders both toggles.
  • Each toggle fires the corresponding action with the expected optimistic pending indicator and reverts on simulated API failure.
  • Offline: toggling queues the update; on reconnect, the API call fires and the indicator clears.
Issue OwnerCurrent Issue Owner: @thelullabyy

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

Status

CRITICAL

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions