diff --git a/packages/desktop-client/src/components/filters/AppliedFilters.tsx b/packages/desktop-client/src/components/filters/AppliedFilters.tsx index 930d319276a7e2787081a1775b5bf10133f32b37..538bdd72b7ce54b7d27756ad2fd9511dfaee0e33 100644 --- a/packages/desktop-client/src/components/filters/AppliedFilters.tsx +++ b/packages/desktop-client/src/components/filters/AppliedFilters.tsx @@ -12,7 +12,7 @@ type AppliedFiltersProps = { onUpdate: ( filter: RuleConditionEntity, newFilter: RuleConditionEntity, - ) => RuleConditionEntity; + ) => void; onDelete: (filter: RuleConditionEntity) => void; conditionsOp: string; onCondOpChange: (value: string, filters: RuleConditionEntity[]) => void; diff --git a/packages/desktop-client/src/components/filters/FilterExpression.tsx b/packages/desktop-client/src/components/filters/FilterExpression.tsx index 08bb15645602f8c248b863ad39961e44efb74550..5a258e951483dab57348649b18ff1a4410b2dc39 100644 --- a/packages/desktop-client/src/components/filters/FilterExpression.tsx +++ b/packages/desktop-client/src/components/filters/FilterExpression.tsx @@ -24,7 +24,7 @@ type FilterExpressionProps = { value: string | string[] | number | boolean | undefined; options: RuleConditionEntity['options']; style?: CSSProperties; - onChange: (cond: RuleConditionEntity) => RuleConditionEntity; + onChange: (cond: RuleConditionEntity) => void; onDelete: () => void; }; diff --git a/packages/desktop-client/src/components/filters/FiltersMenu.jsx b/packages/desktop-client/src/components/filters/FiltersMenu.jsx index 18889c5159c3a7117b8e5c161f9f6270aa858829..db8459deb718535857b8fcd238c7dc65f86535c7 100644 --- a/packages/desktop-client/src/components/filters/FiltersMenu.jsx +++ b/packages/desktop-client/src/components/filters/FiltersMenu.jsx @@ -243,7 +243,7 @@ function ConfigureField({ ); } -export function FilterButton({ onApply, compact, hover }) { +export function FilterButton({ onApply, compact, hover, exclude }) { const filters = useFilters(); const dateFormat = useDateFormat() || 'MM/dd/yyyy'; @@ -359,10 +359,12 @@ export function FilterButton({ onApply, compact, hover }) { onMenuSelect={name => { dispatch({ type: 'configure', field: name }); }} - items={filterFields.map(([name, text]) => ({ - name, - text: titleFirst(text), - }))} + items={filterFields + .filter(f => (exclude ? !exclude.includes(f[0]) : true)) + .map(([name, text]) => ({ + name, + text: titleFirst(text), + }))} /> </Tooltip> )} diff --git a/packages/desktop-client/src/components/filters/FiltersStack.tsx b/packages/desktop-client/src/components/filters/FiltersStack.tsx index 055fd110c68df65c7ad05a388a028368899a3e64..3d050ec44a57941506fc7efe336754758d8ff158 100644 --- a/packages/desktop-client/src/components/filters/FiltersStack.tsx +++ b/packages/desktop-client/src/components/filters/FiltersStack.tsx @@ -27,7 +27,7 @@ export function FiltersStack({ onUpdateFilter: ( filter: RuleConditionEntity, newFilter: RuleConditionEntity, - ) => RuleConditionEntity; + ) => void; onDeleteFilter: (filter: RuleConditionEntity) => void; onClearFilters: () => void; onReloadSavedFilter: (savedFilter: SavedFilter, value?: string) => void; diff --git a/packages/desktop-client/src/components/reports/Change.jsx b/packages/desktop-client/src/components/reports/Change.tsx similarity index 58% rename from packages/desktop-client/src/components/reports/Change.jsx rename to packages/desktop-client/src/components/reports/Change.tsx index 5267b2c77c729e7809ebc846d5803f9b07a2704a..8c4c429e7fd1485164ab1a302407e3199398519e 100644 --- a/packages/desktop-client/src/components/reports/Change.jsx +++ b/packages/desktop-client/src/components/reports/Change.tsx @@ -2,15 +2,24 @@ import React from 'react'; import { integerToCurrency } from 'loot-core/src/shared/util'; -import { theme, styles } from '../../style'; +import { styles } from '../../style/styles'; +import { theme } from '../../style/theme'; +import { type CSSProperties } from '../../style/types'; import { Block } from '../common/Block'; -export function Change({ amount }) { +export function Change({ + amount, + style, +}: { + amount: number; + style?: CSSProperties; +}) { return ( <Block style={{ ...styles.smallText, color: amount < 0 ? theme.errorText : theme.noticeTextLight, + ...style, }} > {amount >= 0 ? '+' : ''} diff --git a/packages/desktop-client/src/components/reports/ModeButton.tsx b/packages/desktop-client/src/components/reports/ModeButton.tsx index 70b00bef7f1548a5a0dba779b891ff69720195e1..503d9692e151fb48367366b723363189bb10db71 100644 --- a/packages/desktop-client/src/components/reports/ModeButton.tsx +++ b/packages/desktop-client/src/components/reports/ModeButton.tsx @@ -6,7 +6,7 @@ import { Button } from '../common/Button'; type ModeButtonProps = { selected: boolean; children: ReactNode; - style: CSSProperties; + style?: CSSProperties; onSelect: MouseEventHandler<HTMLButtonElement>; }; diff --git a/packages/desktop-client/src/components/reports/ReportCard.tsx b/packages/desktop-client/src/components/reports/ReportCard.tsx index 41278b394250bb8873178035bd5ccad1ab4f0cf1..fb69523ab40489fc960349082fd3c5ad94f7b631 100644 --- a/packages/desktop-client/src/components/reports/ReportCard.tsx +++ b/packages/desktop-client/src/components/reports/ReportCard.tsx @@ -8,8 +8,8 @@ import { View } from '../common/View'; type ReportCardProps = { to: string; - report: CustomReportEntity; children: ReactNode; + report?: CustomReportEntity; flex?: string; style?: CSSProperties; }; diff --git a/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx b/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx index ed8daeb6af17eee3993d259bd89e3697ea237f00..a5984b82c55a3e651e01d82b2f5271c3c746ac0a 100644 --- a/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx @@ -102,10 +102,7 @@ export function CashFlowCard() { {data && ( <View style={{ textAlign: 'right' }}> <PrivacyFilter activationFilters={[!isCardHovered]}> - <Change - amount={income - expenses} - style={{ color: theme.tableText, fontWeight: 300 }} - /> + <Change amount={income - expenses} /> </PrivacyFilter> </View> )} diff --git a/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx b/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx index 3b2963bd4a487b9d9eab4630dede84d0b3b307f1..dc0ca1964de43af8e9a2fbb38742172ad44cb7d8 100644 --- a/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx @@ -3,7 +3,7 @@ import React, { useState, useMemo, useCallback } from 'react'; import * as monthUtils from 'loot-core/src/shared/months'; import { integerToCurrency } from 'loot-core/src/shared/util'; -import { theme, styles } from '../../../style'; +import { styles } from '../../../style'; import { Block } from '../../common/Block'; import { View } from '../../common/View'; import { PrivacyFilter } from '../../PrivacyFilter'; @@ -59,10 +59,7 @@ export function NetWorthCard({ accounts }) { </PrivacyFilter> </Block> <PrivacyFilter activationFilters={[!isCardHovered]}> - <Change - amount={data.totalChange} - style={{ color: theme.tableText, fontWeight: 300 }} - /> + <Change amount={data.totalChange} /> </PrivacyFilter> </View> )} diff --git a/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts index 1f4569ccca36189f4d02924a24c1a8f1d7580e36..860efbc0755f8bdbebe62c4528a5170f2fe016ed 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts @@ -110,7 +110,6 @@ export function createCustomSpreadsheet({ startDate, endDate, interval, - selectedCategories, categoryFilter, conditionsOpKey, filters, @@ -122,7 +121,6 @@ export function createCustomSpreadsheet({ startDate, endDate, interval, - selectedCategories, categoryFilter, conditionsOpKey, filters, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts index b473e557754937e3e2fa9789a27657817e3816b1..da794cdfe3518f8377d3908ca837a2fc0744e666 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts @@ -59,7 +59,6 @@ export function createGroupedSpreadsheet({ startDate, endDate, interval, - selectedCategories, categoryFilter, conditionsOpKey, filters, @@ -71,7 +70,6 @@ export function createGroupedSpreadsheet({ startDate, endDate, interval, - selectedCategories, categoryFilter, conditionsOpKey, filters, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts b/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts index 986738eaeebb7dfd3a056579c6e49b26a55be3ee..f72964f35ba4668f7e3932ea8f1c32e36591954a 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts @@ -8,7 +8,6 @@ export function makeQuery( startDate: string, endDate: string, interval: string, - selectedCategories: CategoryEntity[], categoryFilter: CategoryEntity[], conditionsOpKey: string, filters: unknown[], @@ -27,7 +26,7 @@ export function makeQuery( const query = q('transactions') //Apply Category_Selector .filter( - selectedCategories && { + categoryFilter && { $or: [ { category: null, @@ -66,6 +65,7 @@ export function makeQuery( { date: intervalGroup }, { category: { $id: '$category.id' } }, { categoryHidden: { $id: '$category.hidden' } }, + { categoryIncome: { $id: '$category.is_income' } }, { categoryGroup: { $id: '$category.group.id' } }, { categoryGroupHidden: { $id: '$category.group.hidden' } }, { account: { $id: '$account.id' } }, diff --git a/packages/desktop-client/src/style/themes/dark.ts b/packages/desktop-client/src/style/themes/dark.ts index 185b042e4f6d0150f17334f821d1286a215f4f17..d580e723ab9c2cca174dc78f0b38140d9a274dea 100644 --- a/packages/desktop-client/src/style/themes/dark.ts +++ b/packages/desktop-client/src/style/themes/dark.ts @@ -188,5 +188,6 @@ export const pillBorderSelected = colorPalette.purple400; export const reportsRed = colorPalette.red300; export const reportsBlue = colorPalette.blue400; +export const reportsGreen = colorPalette.green400; export const reportsLabel = pageText; export const reportsInnerLabel = colorPalette.navy800; diff --git a/packages/desktop-client/src/style/themes/development.ts b/packages/desktop-client/src/style/themes/development.ts index c8a47c85eba59eb9fe4126dc75c4f7d44ab1303e..c4f71d3df5ef0b4a777803e916b74c2db4ab38ab 100644 --- a/packages/desktop-client/src/style/themes/development.ts +++ b/packages/desktop-client/src/style/themes/development.ts @@ -187,4 +187,6 @@ export const pillBorderSelected = colorPalette.purple500; export const reportsRed = colorPalette.red300; export const reportsBlue = colorPalette.blue400; +export const reportsGreen = colorPalette.green400; export const reportsLabel = colorPalette.navy900; +export const reportsInnerLabel = colorPalette.navy800; diff --git a/packages/desktop-client/src/style/themes/light.ts b/packages/desktop-client/src/style/themes/light.ts index 37549803de44d628ff13ee3b761434b548dc6d80..294122cf31d6e34b956600d0d0672e1740482544 100644 --- a/packages/desktop-client/src/style/themes/light.ts +++ b/packages/desktop-client/src/style/themes/light.ts @@ -190,5 +190,6 @@ export const pillBorderSelected = colorPalette.purple500; export const reportsRed = colorPalette.red300; export const reportsBlue = colorPalette.blue400; +export const reportsGreen = colorPalette.green400; export const reportsLabel = colorPalette.navy900; export const reportsInnerLabel = colorPalette.navy800; diff --git a/packages/desktop-client/src/style/themes/midnight.ts b/packages/desktop-client/src/style/themes/midnight.ts index 135194af8272b1a8416df9a8fa5ad10eda37e001..9a6fc4fbe1642e215696e42c31b6d96f5137a262 100644 --- a/packages/desktop-client/src/style/themes/midnight.ts +++ b/packages/desktop-client/src/style/themes/midnight.ts @@ -190,4 +190,6 @@ export const pillBorderSelected = colorPalette.purple300; export const reportsRed = colorPalette.red300; export const reportsBlue = colorPalette.blue400; +export const reportsGreen = colorPalette.green400; export const reportsLabel = pageText; +export const reportsInnerLabel = colorPalette.navy800; diff --git a/packages/loot-core/src/shared/months.ts b/packages/loot-core/src/shared/months.ts index 634324780a269bf3a7810f1f4296389a8599c72b..6be72eddc8f135d025c61ca03a6541c63dbc54c5 100644 --- a/packages/loot-core/src/shared/months.ts +++ b/packages/loot-core/src/shared/months.ts @@ -347,6 +347,10 @@ export function getMonth(day: string): string { return day.slice(0, 7); } +export function getDay(day: string): number { + return Number(d.format(_parse(day), 'dd')); +} + export function getMonthEnd(day: string): string { return subDays(nextMonth(day.slice(0, 7)) + '-01', 1); } diff --git a/upcoming-release-notes/2659.md b/upcoming-release-notes/2659.md new file mode 100644 index 0000000000000000000000000000000000000000..a509cc68948012123f77c9818acaf3dd94b6d408 --- /dev/null +++ b/upcoming-release-notes/2659.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [carkom] +--- + +Some slight adjustments to tidy up the code and make it work better. Some TS updates as well.