From 5a75befc05f1f2946bcb81f010cce877e7e3d0f0 Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins <matiss@mja.lv> Date: Mon, 20 Mar 2023 18:37:21 +0000 Subject: [PATCH] :sparkles: (bank-sync) expose demo-bank in the UI for DEV & preview builds (#790) Depends on server change: https://github.com/actualbudget/actual-server/pull/168 --- .../desktop-client/src/components/manager/ConfigServer.js | 7 ++----- .../src/components/modals/ManageRulesModal.js | 7 ++----- packages/desktop-client/src/hooks/useFeatureFlag.js | 7 ++----- packages/loot-core/src/server/main.js | 4 +++- packages/loot-design/src/components/manager/BudgetList.js | 7 ++----- packages/loot-design/src/util/environment.js | 4 ++++ upcoming-release-notes/790.md | 6 ++++++ 7 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 upcoming-release-notes/790.md diff --git a/packages/desktop-client/src/components/manager/ConfigServer.js b/packages/desktop-client/src/components/manager/ConfigServer.js index d00f0e563..30afb69c2 100644 --- a/packages/desktop-client/src/components/manager/ConfigServer.js +++ b/packages/desktop-client/src/components/manager/ConfigServer.js @@ -12,10 +12,7 @@ import { } from 'loot-design/src/components/common'; import { useSetThemeColor } from 'loot-design/src/components/hooks'; import { colors } from 'loot-design/src/style'; -import { - isDevelopmentEnvironment, - isPreviewEnvironment, -} from 'loot-design/src/util/environment'; +import { isNonProductionEnvironment } from 'loot-design/src/util/environment'; import { useServerURL, useSetServerURL } from '../ServerContext'; @@ -193,7 +190,7 @@ export default function ConfigServer() { Don't use a server </Button> - {(isDevelopmentEnvironment() || isPreviewEnvironment()) && ( + {isNonProductionEnvironment() && ( <Button primary style={{ marginLeft: 15 }} diff --git a/packages/desktop-client/src/components/modals/ManageRulesModal.js b/packages/desktop-client/src/components/modals/ManageRulesModal.js index 30d544f21..5d10c3557 100644 --- a/packages/desktop-client/src/components/modals/ManageRulesModal.js +++ b/packages/desktop-client/src/components/modals/ManageRulesModal.js @@ -2,17 +2,14 @@ import React, { useState } from 'react'; import { useLocation } from 'react-router-dom-v5-compat'; import { Modal } from 'loot-design/src/components/common'; -import { - isDevelopmentEnvironment, - isPreviewEnvironment, -} from 'loot-design/src/util/environment'; +import { isNonProductionEnvironment } from 'loot-design/src/util/environment'; import ManageRules from '../ManageRules'; export default function ManageRulesModal({ modalProps, payeeId }) { let [loading, setLoading] = useState(true); let location = useLocation(); - if (isDevelopmentEnvironment() || isPreviewEnvironment()) { + if (isNonProductionEnvironment()) { if (location.pathname !== '/payees') { throw new Error( `Possibly invalid use of ManageRulesModal, add the current url '${location.pathname}' to the allowlist if you're confident the modal can never appear on top of the '/rules' page.`, diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.js b/packages/desktop-client/src/hooks/useFeatureFlag.js index 27920fe18..702de577c 100644 --- a/packages/desktop-client/src/hooks/useFeatureFlag.js +++ b/packages/desktop-client/src/hooks/useFeatureFlag.js @@ -1,12 +1,9 @@ import { useSelector } from 'react-redux'; -import { - isDevelopmentEnvironment, - isPreviewEnvironment, -} from 'loot-design/src/util/environment'; +import { isNonProductionEnvironment } from 'loot-design/src/util/environment'; const DEFAULT_FEATURE_FLAG_STATE = { - newAutocomplete: isDevelopmentEnvironment() || isPreviewEnvironment(), + newAutocomplete: isNonProductionEnvironment(), syncAccount: false, goalTemplatesEnabled: false, }; diff --git a/packages/loot-core/src/server/main.js b/packages/loot-core/src/server/main.js index 38f87ab22..d81348c10 100644 --- a/packages/loot-core/src/server/main.js +++ b/packages/loot-core/src/server/main.js @@ -1,6 +1,8 @@ import './polyfills'; import injectAPI from '@actual-app/api/injected'; +import { isNonProductionEnvironment } from 'loot-design/src/util/environment'; + import { createTestBudget } from '../mocks/budget'; import { captureException, captureBreadcrumb } from '../platform/exceptions'; import asyncStorage from '../platform/server/asyncStorage'; @@ -1265,7 +1267,7 @@ handlers['nordigen-get-banks'] = async function (country) { return post( getServer().NORDIGEN_SERVER + '/get-banks', - { country }, + { country, showDemo: isNonProductionEnvironment() }, { 'X-ACTUAL-TOKEN': userToken, }, diff --git a/packages/loot-design/src/components/manager/BudgetList.js b/packages/loot-design/src/components/manager/BudgetList.js index 5688dd5aa..bf9b6bd52 100644 --- a/packages/loot-design/src/components/manager/BudgetList.js +++ b/packages/loot-design/src/components/manager/BudgetList.js @@ -13,10 +13,7 @@ import DotsHorizontalTriple from '../../svg/v1/DotsHorizontalTriple'; import FileDouble from '../../svg/v1/FileDouble'; import CloudUnknown from '../../svg/v2/CloudUnknown'; import tokens from '../../tokens'; -import { - isDevelopmentEnvironment, - isPreviewEnvironment, -} from '../../util/environment'; +import { isNonProductionEnvironment } from '../../util/environment'; import { View, Text, Button, Tooltip, Menu } from '../common'; function getFileDescription(file) { @@ -331,7 +328,7 @@ function BudgetList({ Create new file </Button> - {(isDevelopmentEnvironment() || isPreviewEnvironment()) && ( + {isNonProductionEnvironment() && ( <Button primary onClick={() => onCreate({ testMode: true })} diff --git a/packages/loot-design/src/util/environment.js b/packages/loot-design/src/util/environment.js index 151942d90..42fa7be75 100644 --- a/packages/loot-design/src/util/environment.js +++ b/packages/loot-design/src/util/environment.js @@ -5,3 +5,7 @@ export function isPreviewEnvironment() { export function isDevelopmentEnvironment() { return process.env.NODE_ENV === 'development'; } + +export function isNonProductionEnvironment() { + return isPreviewEnvironment() || isDevelopmentEnvironment(); +} diff --git a/upcoming-release-notes/790.md b/upcoming-release-notes/790.md new file mode 100644 index 000000000..8e12cdbd9 --- /dev/null +++ b/upcoming-release-notes/790.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +Expose demo bank for easy bank-sync testing in dev and preview builds -- GitLab