diff --git a/packages/desktop-client/src/components/modals/CreateAccountModal.tsx b/packages/desktop-client/src/components/modals/CreateAccountModal.tsx index 3fe878f4b909b0da58a7c1c770d9c6263f9388c5..70c808d34ad76f9518542a96ac1c160b8f7f5027 100644 --- a/packages/desktop-client/src/components/modals/CreateAccountModal.tsx +++ b/packages/desktop-client/src/components/modals/CreateAccountModal.tsx @@ -6,7 +6,6 @@ import { pushModal } from 'loot-core/client/actions'; import { send } from 'loot-core/src/platform/client/fetch'; import { authorizeBank } from '../../gocardless'; -import { useFeatureFlag } from '../../hooks/useFeatureFlag'; import { useGoCardlessStatus } from '../../hooks/useGoCardlessStatus'; import { useSimpleFinStatus } from '../../hooks/useSimpleFinStatus'; import { useSyncServerStatus } from '../../hooks/useSyncServerStatus'; @@ -180,8 +179,6 @@ export function CreateAccountModal({ upgradingAccountId }: CreateAccountProps) { title = 'Link Account'; } - const simpleFinSyncFeatureFlag = useFeatureFlag('simpleFinSync'); - return ( <Modal name="add-account"> {({ state: { close } }) => ( @@ -290,77 +287,73 @@ export function CreateAccountModal({ upgradingAccountId }: CreateAccountProps) { to automatically download transactions. GoCardless provides reliable, up-to-date information from hundreds of banks. </Text> - {simpleFinSyncFeatureFlag === true && ( - <> - <View - style={{ - flexDirection: 'row', - gap: 10, - marginTop: '18px', - alignItems: 'center', - }} - > - <ButtonWithLoading - isDisabled={syncServerStatus !== 'online'} - isLoading={loadingSimpleFinAccounts} - style={{ - padding: '10px 0', - fontSize: 15, - fontWeight: 600, - flex: 1, - }} - onPress={onConnectSimpleFin} + + <View + style={{ + flexDirection: 'row', + gap: 10, + marginTop: '18px', + alignItems: 'center', + }} + > + <ButtonWithLoading + isDisabled={syncServerStatus !== 'online'} + isLoading={loadingSimpleFinAccounts} + style={{ + padding: '10px 0', + fontSize: 15, + fontWeight: 600, + flex: 1, + }} + onPress={onConnectSimpleFin} + > + {isSimpleFinSetupComplete + ? 'Link bank account with SimpleFIN' + : 'Set up SimpleFIN for bank sync'} + </ButtonWithLoading> + {isSimpleFinSetupComplete && ( + <> + <Button + ref={triggerRef} + variant="bare" + onPress={() => setSimplefinMenuOpen(true)} + aria-label="SimpleFIN menu" + > + <SvgDotsHorizontalTriple + width={15} + height={15} + style={{ transform: 'rotateZ(90deg)' }} + /> + </Button> + <Popover + triggerRef={triggerRef} + isOpen={menuSimplefinOpen} + onOpenChange={() => setSimplefinMenuOpen(false)} > - {isSimpleFinSetupComplete - ? 'Link bank account with SimpleFIN' - : 'Set up SimpleFIN for bank sync'} - </ButtonWithLoading> - {isSimpleFinSetupComplete && ( - <> - <Button - ref={triggerRef} - variant="bare" - onPress={() => setSimplefinMenuOpen(true)} - aria-label="SimpleFIN menu" - > - <SvgDotsHorizontalTriple - width={15} - height={15} - style={{ transform: 'rotateZ(90deg)' }} - /> - </Button> - <Popover - triggerRef={triggerRef} - isOpen={menuSimplefinOpen} - onOpenChange={() => setSimplefinMenuOpen(false)} - > - <Menu - onMenuSelect={item => { - if (item === 'reconfigure') { - onSimpleFinReset(); - } - }} - items={[ - { - name: 'reconfigure', - text: 'Reset SimpleFIN credentials', - }, - ]} - /> - </Popover> - </> - )} - </View> - <Text style={{ lineHeight: '1.4em', fontSize: 15 }}> - <strong> - Link a <em>North American</em> bank account - </strong>{' '} - to automatically download transactions. SimpleFIN - provides reliable, up-to-date information from hundreds - of banks. - </Text> - </> - )} + <Menu + onMenuSelect={item => { + if (item === 'reconfigure') { + onSimpleFinReset(); + } + }} + items={[ + { + name: 'reconfigure', + text: 'Reset SimpleFIN credentials', + }, + ]} + /> + </Popover> + </> + )} + </View> + <Text style={{ lineHeight: '1.4em', fontSize: 15 }}> + <strong> + Link a <em>North American</em> bank account + </strong>{' '} + to automatically download transactions. SimpleFIN provides + reliable, up-to-date information from hundreds of banks. + </Text> </> ) : ( <> diff --git a/packages/desktop-client/src/components/settings/Experimental.tsx b/packages/desktop-client/src/components/settings/Experimental.tsx index fa6da21cf849652fbd9728b8edd6f6ffc14306f4..6763cc340f17f6403830fdb749e1d971ebb08f93 100644 --- a/packages/desktop-client/src/components/settings/Experimental.tsx +++ b/packages/desktop-client/src/components/settings/Experimental.tsx @@ -104,12 +104,6 @@ export function ExperimentalFeatures() { <FeatureToggle flag="goalTemplatesEnabled"> <Trans>Goal templates</Trans> </FeatureToggle> - <FeatureToggle - flag="simpleFinSync" - feedbackLink="https://github.com/actualbudget/actual/issues/2272" - > - <Trans>SimpleFIN sync</Trans> - </FeatureToggle> <FeatureToggle flag="dashboards" feedbackLink="https://github.com/actualbudget/actual/issues/3282" diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.ts b/packages/desktop-client/src/hooks/useFeatureFlag.ts index eb210ec47ca29e2efcba0616cc16b4d9a5aaa262..f2134d60e2602e08fcb9a70afc063b7bb406a527 100644 --- a/packages/desktop-client/src/hooks/useFeatureFlag.ts +++ b/packages/desktop-client/src/hooks/useFeatureFlag.ts @@ -6,7 +6,6 @@ const DEFAULT_FEATURE_FLAG_STATE: Record<FeatureFlag, boolean> = { reportBudget: false, goalTemplatesEnabled: false, spendingReport: false, - simpleFinSync: false, dashboards: false, }; diff --git a/packages/loot-core/src/types/prefs.d.ts b/packages/loot-core/src/types/prefs.d.ts index 311482687faca9a6ccb6ff8dcfbe17f117fe28a6..7ce798bc16ec53684b818b6cb0a6a9090315c492 100644 --- a/packages/loot-core/src/types/prefs.d.ts +++ b/packages/loot-core/src/types/prefs.d.ts @@ -4,8 +4,7 @@ export type FeatureFlag = | 'dashboards' | 'reportBudget' | 'goalTemplatesEnabled' - | 'spendingReport' - | 'simpleFinSync'; + | 'spendingReport'; /** * Cross-device preferences. These sync across devices when they are changed. diff --git a/upcoming-release-notes/3459.md b/upcoming-release-notes/3459.md new file mode 100644 index 0000000000000000000000000000000000000000..98ad9dad226fb30b1a428872670e8f270ef8c566 --- /dev/null +++ b/upcoming-release-notes/3459.md @@ -0,0 +1,6 @@ +--- +category: Features +authors: [MatissJanis] +--- + +SimpleFIN is officially released as a first-party feature of Actual.