diff --git a/packages/desktop-client/e2e/rules.test.js b/packages/desktop-client/e2e/rules.test.js index 69f5238fbd1e80c098cfaf9cf71a8e84275fa6d7..20cc4f7d172b5bee98dc10b0050d30cc56f2728c 100644 --- a/packages/desktop-client/e2e/rules.test.js +++ b/packages/desktop-client/e2e/rules.test.js @@ -69,11 +69,6 @@ test.describe('Rules', () => { }); test('creates a split transaction rule and makes sure it is applied when creating a transaction', async () => { - const settingsPage = await navigation.goToSettingsPage(); - await settingsPage.enableExperimentalFeature('splits in rules'); - - await expect(settingsPage.page.getByLabel('splits in rules')).toBeChecked(); - rulesPage = await navigation.goToRulesPage(); await rulesPage.createRule({ diff --git a/packages/desktop-client/src/components/modals/EditRule.jsx b/packages/desktop-client/src/components/modals/EditRule.jsx index 12ed1a593509f240925a6fa952455ce6a3c385d3..104829ec36bba8085a5544af95088c353c0ace98 100644 --- a/packages/desktop-client/src/components/modals/EditRule.jsx +++ b/packages/desktop-client/src/components/modals/EditRule.jsx @@ -30,7 +30,6 @@ import { } from 'loot-core/src/shared/util'; import { useDateFormat } from '../../hooks/useDateFormat'; -import { useFeatureFlag } from '../../hooks/useFeatureFlag'; import { useSelected, SelectedProvider } from '../../hooks/useSelected'; import { SvgDelete, SvgAdd, SvgSubtract } from '../../icons/v0'; import { SvgInformationOutline } from '../../icons/v1'; @@ -655,7 +654,6 @@ const conditionFields = [ ]); export function EditRule({ modalProps, defaultRule, onSave: originalOnSave }) { - const splitsEnabled = useFeatureFlag('splitsInRules'); const [conditions, setConditions] = useState( defaultRule.conditions.map(parse), ); @@ -883,9 +881,7 @@ export function EditRule({ modalProps, defaultRule, onSave: originalOnSave }) { }; // Enable editing existing split rules even if the feature has since been disabled. - const showSplitButton = splitsEnabled - ? actionSplits.length > 0 - : actionSplits.length > 1; + const showSplitButton = actionSplits.length > 0; return ( <Modal diff --git a/packages/desktop-client/src/components/settings/Experimental.tsx b/packages/desktop-client/src/components/settings/Experimental.tsx index c0917d169f46f82472d9248135ccfd0c34c99540..41fe8d6e95dde871f95a812883397ca59cd58220 100644 --- a/packages/desktop-client/src/components/settings/Experimental.tsx +++ b/packages/desktop-client/src/components/settings/Experimental.tsx @@ -90,7 +90,6 @@ export function ExperimentalFeatures() { Goal templates </FeatureToggle> <FeatureToggle flag="simpleFinSync">SimpleFIN sync</FeatureToggle> - <FeatureToggle flag="splitsInRules">Splits in rules</FeatureToggle> </View> ) : ( <Link diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.ts b/packages/desktop-client/src/hooks/useFeatureFlag.ts index d041c17bf71143fe16bee1988035655d8697d386..010b172ec0aec5727aaabd3452d4e23de1f8f9c0 100644 --- a/packages/desktop-client/src/hooks/useFeatureFlag.ts +++ b/packages/desktop-client/src/hooks/useFeatureFlag.ts @@ -9,7 +9,6 @@ const DEFAULT_FEATURE_FLAG_STATE: Record<FeatureFlag, boolean> = { customReports: false, spendingReport: false, simpleFinSync: false, - splitsInRules: false, }; export function useFeatureFlag(name: FeatureFlag): boolean { diff --git a/packages/loot-core/src/server/accounts/rules.ts b/packages/loot-core/src/server/accounts/rules.ts index 96e9cd1d8964a6aa216c41689ba730288b51c603..d164c53091fb04a8290d4ccf57c89897c75b3865 100644 --- a/packages/loot-core/src/server/accounts/rules.ts +++ b/packages/loot-core/src/server/accounts/rules.ts @@ -21,7 +21,6 @@ import { import { fastSetMerge } from '../../shared/util'; import { RuleConditionEntity } from '../../types/models'; import { RuleError } from '../errors'; -import * as prefs from '../prefs'; import { Schedule as RSchedule } from '../util/rschedule'; function assert(test, type, msg) { @@ -509,7 +508,8 @@ export function execActions(actions: Action[], transaction) { ) + 1; let update = execNonSplitActions(parentActions, transaction); - if (!prefs.getPrefs()?.['flags.splitsInRules'] || totalSplitCount === 1) { + if (totalSplitCount === 1) { + // No splits, no need to do anything else. return update; } diff --git a/packages/loot-core/src/types/prefs.d.ts b/packages/loot-core/src/types/prefs.d.ts index d3632e0308a6bef52a886ee36e26dc60c6631b39..161c85faa54b6d2ce277e369a6a73c2a4031618e 100644 --- a/packages/loot-core/src/types/prefs.d.ts +++ b/packages/loot-core/src/types/prefs.d.ts @@ -5,8 +5,7 @@ export type FeatureFlag = | 'goalTemplatesEnabled' | 'customReports' | 'spendingReport' - | 'simpleFinSync' - | 'splitsInRules'; + | 'simpleFinSync'; export type LocalPrefs = Partial< { diff --git a/upcoming-release-notes/2789.md b/upcoming-release-notes/2789.md new file mode 100644 index 0000000000000000000000000000000000000000..5ac4832adc7b270e29bf0e16a38769cac0c1875e --- /dev/null +++ b/upcoming-release-notes/2789.md @@ -0,0 +1,6 @@ +--- +category: Features +authors: [jfdoming] +--- + +Release 'Splits in rules' feature