From 5fe146ee0a2baf1a9804a823d3b3447fc635cbfb Mon Sep 17 00:00:00 2001 From: Kit PANG Date: Sat, 28 Oct 2023 00:48:01 +0800 Subject: [PATCH 01/12] Allow categorise transfer to off budget accounts on mobile (#1824) * Allow categorise transfer to off budget accounts * Add release notes --- .../src/components/transactions/MobileTransaction.js | 5 ++++- upcoming-release-notes/1824.md | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 upcoming-release-notes/1824.md diff --git a/packages/desktop-client/src/components/transactions/MobileTransaction.js b/packages/desktop-client/src/components/transactions/MobileTransaction.js index 5cead48079a..5a88eee4d28 100644 --- a/packages/desktop-client/src/components/transactions/MobileTransaction.js +++ b/packages/desktop-client/src/components/transactions/MobileTransaction.js @@ -498,7 +498,10 @@ class TransactionEditInner extends PureComponent { {!transaction.is_parent ? ( Date: Sat, 28 Oct 2023 09:42:47 -0700 Subject: [PATCH 02/12] Inline mobile category and group edit (#1781) * Inline mobile category and group edit * Release notes * Allow one edit at any time * Mobile: long press to edit category/group * Mobile: set userSelect: 'none' * Move getLongPressEvents * Add role to prevent tap-to-search * Add role to text * Prevent default on longpress * Add tabIndex to disable tap-to-search * Add back userSelect * Role updates * Remove userSelect * Revert long press category name * Remove unused import * Fix lint error * Edit mode * Do not allow to start an edit when another field is currenty being edited * Fix blur event not firing * Grey out zero spent or balance values * VRT update * Fix budget cell being zero on click * Delete useLongPress --- ...with-budgeted-amounts-1-chromium-linux.png | Bin 25957 -> 26722 bytes .../src/components/budget/MobileBudget.js | 2 +- .../components/budget/MobileBudgetTable.js | 905 +++++++++++------- .../src/components/budget/util.ts | 2 +- .../src/components/util/AmountInput.js | 14 +- upcoming-release-notes/1781.md | 6 + 6 files changed, 570 insertions(+), 359 deletions(-) create mode 100644 upcoming-release-notes/1781.md diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png index a29cc002d921b1bd979392fe7e65ed6cde7fb97d..fcc9a4669d82c893648a2d68c4cb536ae271f234 100644 GIT binary patch literal 26722 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

W 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 O0;wu$Dpbi^g#QnMAfki- literal 25957 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 Dl+b69 diff --git a/packages/desktop-client/src/components/budget/MobileBudget.js b/packages/desktop-client/src/components/budget/MobileBudget.js index 1499783b722..d945c45cf38 100644 --- a/packages/desktop-client/src/components/budget/MobileBudget.js +++ b/packages/desktop-client/src/components/budget/MobileBudget.js @@ -363,11 +363,11 @@ class Budget extends Component { type={budgetType} month={currentMonth} monthBounds={bounds} - editMode={editMode} navigation={navigation} // refreshControl={ // // } + editMode={editMode} onEditMode={flag => this.setState({ editMode: flag })} onShowBudgetDetails={this.onShowBudgetDetails} onPrevMonth={this.onPrevMonth} diff --git a/packages/desktop-client/src/components/budget/MobileBudgetTable.js b/packages/desktop-client/src/components/budget/MobileBudgetTable.js index 0deb57870a6..e02095ab704 100644 --- a/packages/desktop-client/src/components/budget/MobileBudgetTable.js +++ b/packages/desktop-client/src/components/budget/MobileBudgetTable.js @@ -1,4 +1,4 @@ -import React, { memo, useState } from 'react'; +import React, { memo, useEffect, useRef, useState } from 'react'; import { useSelector } from 'react-redux'; import memoizeOne from 'memoize-one'; @@ -8,9 +8,7 @@ import * as monthUtils from 'loot-core/src/shared/months'; import ArrowThinLeft from '../../icons/v1/ArrowThinLeft'; import ArrowThinRight from '../../icons/v1/ArrowThinRight'; -import Close from '../../icons/v1/Close'; import DotsHorizontalTriple from '../../icons/v1/DotsHorizontalTriple'; -import EditPencil from '../../icons/v1/EditPencil'; import { useResponsive } from '../../ResponsiveProvider'; import { theme, styles } from '../../style'; import Button from '../common/Button'; @@ -35,6 +33,7 @@ import { AmountInput } from '../util/AmountInput'; // import { DragDrop, Draggable, Droppable, DragDropHighlight } from './dragdrop'; import { ListItem, ROW_HEIGHT } from './MobileTable'; +import { makeAmountGrey } from './util'; function ToBudget({ toBudget, onClick }) { let amount = useSheetValue(toBudget); @@ -113,13 +112,13 @@ function Saved({ projected }) { function BudgetCell({ name, binding, - editing, style, textStyle, categoryId, month, onBudgetAction, - onEditing, + onEdit, + isEditing, }) { let sheetValue = useSheetValue(binding); @@ -131,16 +130,12 @@ function BudgetCell({ } function onAmountClick(e) { - onEditing?.(categoryId); + onEdit?.(categoryId); } return ( - e.preventDefault()} - > - {editing ? ( + + {isEditing ? ( onEditing?.(null)} + onBlur={() => onEdit?.(null)} /> ) : ( @@ -218,21 +215,24 @@ function ExpenseCategoryPreview({ name, pending, style }) { const ExpenseCategory = memo(function ExpenseCategory({ category, - editing, index, // gestures, - editMode, blank, style, month, - onEditingBudget, + editMode, + isEditing, + onEdit, + isEditingBudget, + onEditBudget, onSave, onDelete, onBudgetAction, show3Cols, showBudgetedCol, }) { - let opacity = editMode || blank ? 0 : 1; + let opacity = blank ? 0 : 1; + let showEditables = editMode || isEditing; let [categoryName, setCategoryName] = useState(category.name); let [isHidden, setIsHidden] = useState(category.hidden); @@ -243,7 +243,13 @@ const ExpenseCategory = memo(function ExpenseCategory({ let tooltip = useTooltip(); - let onTooltipClose = () => { + useEffect(() => { + if (!isEditing && tooltip.isOpen) { + tooltip.close(); + } + }, [isEditing]); + + let onSubmit = () => { if (categoryName) { onSave?.({ ...category, @@ -252,11 +258,11 @@ const ExpenseCategory = memo(function ExpenseCategory({ } else { setCategoryName(category.name); } - tooltip.close(); + onEdit?.(null); }; let onMenuSelect = type => { - tooltip.close(); + onEdit?.(null); switch (type) { case 'toggle-visibility': setIsHidden(!isHidden); @@ -273,18 +279,84 @@ const ExpenseCategory = memo(function ExpenseCategory({ } }; + let listItemRef = useRef(); + let inputRef = useRef(); + let content = ( 0 ? 1 : 0, opacity: isHidden ? 0.5 : undefined, ...style, }} data-testid="row" + innerRef={listItemRef} > - + + + + + } + style={{ width: '100%' }} + placeholder="Category Name" + value={categoryName} + onUpdate={setCategoryName} + onEnter={onSubmit} + onBlur={e => { + if (!listItemRef.current?.contains(e.relatedTarget)) { + onSubmit(); + } + }} + /> + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > +

+ + )} + + onEdit?.(category.id)} + style={{ ...(showEditables && { display: 'none' }), flex: 1 }} + > {category.name} - {tooltip.isOpen && ( - - - - - - } - placeholder="Category Name" - value={categoryName} - onUpdate={setCategoryName} - onEnter={onTooltipClose} - /> - - - - - )} - {show3Cols || showBudgetedCol ? ( - - ) : null} - {show3Cols || !showBudgetedCol ? ( - - ) : null} + + value < 0 && { color: theme.errorText }} + getStyle={value => + value < 0 ? { color: theme.errorText } : makeAmountGrey(value) + } type="financial" /> @@ -431,6 +458,8 @@ const ExpenseCategory = memo(function ExpenseCategory({ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ group, editMode, + isEditing, + onEdit, blank, onAddCategory, onSave, @@ -438,14 +467,21 @@ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ show3Cols, showBudgetedCol, }) { - let opacity = editMode || blank ? 0 : 1; + let opacity = blank ? 0 : 1; + let showEditables = editMode || isEditing; let [groupName, setGroupName] = useState(group.name); let [isHidden, setIsHidden] = useState(group.hidden); let tooltip = useTooltip(); - let onTooltipClose = () => { + useEffect(() => { + if (!isEditing && tooltip.isOpen) { + tooltip.close(); + } + }, [isEditing]); + + let onSubmit = () => { if (groupName) { onSave?.({ ...group, @@ -454,11 +490,11 @@ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ } else { setGroupName(group.name); } - tooltip.close(); + onEdit?.(null); }; let onMenuSelect = type => { - tooltip.close(); + onEdit?.(null); switch (type) { case 'add-category': onAddCategory?.(group.id, group.is_income); @@ -478,6 +514,9 @@ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ } }; + let listItemRef = useRef(); + let inputRef = useRef(); + let content = ( - + + + + + } + style={{ width: '100%' }} + placeholder="Category Group Name" + value={groupName} + onUpdate={setGroupName} + onEnter={onSubmit} + onBlur={e => { + if (!listItemRef.current?.contains(e.relatedTarget)) { + onSubmit(); + } + }} + /> + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > + + + )} + + onEdit?.(group.id)} + style={{ ...(showEditables && { display: 'none' }), flex: 1 }} + > {group.name} - {tooltip.isOpen && ( - - - - - - } - placeholder="Category Group Name" - value={groupName} - onUpdate={setGroupName} - onEnter={onTooltipClose} - /> - - - - - )} - {show3Cols || showBudgetedCol ? ( - - ) : null} - {show3Cols || !showBudgetedCol ? ( - - ) : null} + + { + useEffect(() => { + if (!isEditing && tooltip.isOpen) { + tooltip.close(); + } + }, [isEditing]); + + let onSubmit = () => { if (groupName) { onSave?.({ ...group, @@ -655,11 +716,11 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ } else { setGroupName(group.name); } - tooltip.close(); + onEdit?.(null); }; let onMenuSelect = type => { - tooltip.close(); + onEdit?.(null); switch (type) { case 'add-category': onAddCategory?.(group.id, group.is_income); @@ -679,6 +740,9 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ } }; + let listItemRef = useRef(); + let inputRef = useRef(); + return ( - + + + + + } + style={{ width: '100%' }} + placeholder="Category Group Name" + value={groupName} + onUpdate={setGroupName} + onEnter={onSubmit} + onBlur={e => { + if (!listItemRef.current?.contains(e.relatedTarget)) { + onSubmit(); + } + }} + /> + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > + + + )} + + onEdit?.(group.id)} + > {group.name} - {tooltip.isOpen && ( - - - - - - } - placeholder="Category Group Name" - value={groupName} - onUpdate={setGroupName} - onEnter={onTooltipClose} - /> - - - - - )} {budget && ( { + useEffect(() => { + if (!isEditing && tooltip.isOpen) { + tooltip.close(); + } + }, [isEditing]); + + let onSubmit = () => { if (categoryName) { onSave?.({ ...category, @@ -801,11 +893,11 @@ const IncomeCategory = memo(function IncomeCategory({ } else { setCategoryName(category.name); } - tooltip.close(); + onEdit?.(null); }; let onMenuSelect = type => { - tooltip.close(); + onEdit?.(null); switch (type) { case 'toggle-visibility': setIsHidden(!isHidden); @@ -822,6 +914,9 @@ const IncomeCategory = memo(function IncomeCategory({ } }; + let listItemRef = useRef(); + let inputRef = useRef(); + return ( - + + + + + } + style={{ width: '100%' }} + placeholder="Category Name" + value={categoryName} + onUpdate={setCategoryName} + onEnter={onSubmit} + onBlur={e => { + if (!listItemRef.current?.contains(e.relatedTarget)) { + onSubmit(); + } + }} + /> + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > + + + )} + + onEdit?.(category.id)} + > {category.name} - {tooltip.isOpen && ( - - - - - - } - placeholder="Category Name" - value={categoryName} - onUpdate={setCategoryName} - onEnter={onTooltipClose} - /> - - - - - )} {budget && ( {group.categories .filter(category => !category.hidden || showHiddenCategories) .map((category, index) => { - const editing = editingId === category.id; + const isEditingCategory = editingCategoryId === category.id; + const isEditingCategoryBudget = + editingBudgetCategoryId === category.id; return ( @@ -1099,6 +1224,9 @@ function IncomeGroup({ onAddCategory={onAddCategory} onSave={onSave} onDelete={onDelete} + editMode={editMode} + isEditing={editingGroupId === group.id} + onEdit={onEditGroup} /> {group.categories @@ -1122,6 +1250,9 @@ function IncomeGroup({ index={index} onSave={onSaveCategory} onDelete={onDeleteCategory} + editMode={editMode} + isEditing={editingCategoryId === category.id} + onEdit={onEditCategory} /> ); })} @@ -1133,8 +1264,12 @@ function IncomeGroup({ function BudgetGroups({ type, categoryGroups, - editingId, - onEditingCategoryBudget, + editingGroupId, + onEditGroup, + editingCategoryId, + onEditCategory, + editingBudgetCategoryId, + onEditCategoryBudget, editMode, gestures, month, @@ -1172,12 +1307,16 @@ function BudgetGroups({ )} @@ -1220,12 +1364,6 @@ function BudgetGroups({ } export function BudgetTable(props) { - const [editingCategoryBudgetId, setEditingCategoryBudget] = useState(null); - function onEditingCategoryBudget(id) { - setEditingCategoryBudget(id); - } - const { width } = useResponsive(); - const show3Cols = width >= 360; const { type, categoryGroups, @@ -1245,11 +1383,47 @@ export function BudgetTable(props) { onReorderCategory, onReorderGroup, onShowBudgetDetails, - onOpenActionSheet, + // onOpenActionSheet, onBudgetAction, savePrefs, } = props; + const GROUP_TYPE = 'group'; + const [editingGroupId, setEditingGroupId] = useState(null); + function onEditGroup(id) { + onEdit(GROUP_TYPE, id); + } + + const CATEGORY_TYPE = 'category'; + const [editingCategoryId, setEditingCategoryId] = useState(null); + function onEditCategory(id) { + onEdit(CATEGORY_TYPE, id); + } + + const CATEGORY_BUDGET_TYPE = 'category-budget'; + const [editingBudgetCategoryId, setEditingBudgetCategoryId] = useState(null); + function onEditCategoryBudget(id) { + onEdit(CATEGORY_BUDGET_TYPE, id); + } + + function onEdit(type, id) { + // Do not allow editing if another field is currently being edited. + // Cancel the currently editing field in that case. + const currentlyEditing = + editingGroupId || editingCategoryId || editingBudgetCategoryId; + + setEditingGroupId(type === GROUP_TYPE && !currentlyEditing ? id : null); + setEditingCategoryId( + type === CATEGORY_TYPE && !currentlyEditing ? id : null, + ); + setEditingBudgetCategoryId( + type === CATEGORY_BUDGET_TYPE && !currentlyEditing ? id : null, + ); + } + + const { width } = useResponsive(); + const show3Cols = width >= 360; + // let editMode = false; // neuter editMode -- sorry, not rewriting drag-n-drop right now let currentMonth = monthUtils.currentMonth(); let format = useFormat(); @@ -1284,14 +1458,12 @@ export function BudgetTable(props) { onEditMode(false)} - onOpenActionSheet={onOpenActionSheet} + onEditMode={onEditMode} + // onOpenActionSheet={onOpenActionSheet} onPrevMonth={onPrevMonth} onNextMonth={onNextMonth} showHiddenCategories={showHiddenCategories} @@ -1408,14 +1580,18 @@ export function BudgetTable(props) { { tooltip.close(); switch (name) { - case 'toggle-hidden': + case 'edit-mode': + onEditMode?.(true); + break; + case 'toggle-hidden-categories': toggleHiddenCategories(); break; default: @@ -1591,36 +1776,56 @@ function BudgetHeader({ flexDirection: 'row', }} > - + {!editMode ? ( + + ) : ( + + )} ); diff --git a/packages/desktop-client/src/components/budget/util.ts b/packages/desktop-client/src/components/budget/util.ts index f8c4af733a1..82f97f4d257 100644 --- a/packages/desktop-client/src/components/budget/util.ts +++ b/packages/desktop-client/src/components/budget/util.ts @@ -22,7 +22,7 @@ export function separateGroups(categoryGroups: CategoryGroupEntity[]) { } export function makeAmountGrey(value: number | string) { - return value === 0 || value === '0' || value === '' + return value === 0 || value === '0' || value === '' || value == null ? { color: theme.altMenuItemText } : null; } diff --git a/packages/desktop-client/src/components/util/AmountInput.js b/packages/desktop-client/src/components/util/AmountInput.js index 2aeb94ab9b4..bc59bf268e4 100644 --- a/packages/desktop-client/src/components/util/AmountInput.js +++ b/packages/desktop-client/src/components/util/AmountInput.js @@ -1,9 +1,7 @@ import React, { useRef, useState } from 'react'; -import { - currencyToInteger, - integerToCurrency, -} from 'loot-core/src/shared/util'; +import evalArithmetic from 'loot-core/src/shared/arithmetic'; +import { amountToInteger } from 'loot-core/src/shared/util'; import { useMergedRefs } from '../../hooks/useMergedRefs'; import Add from '../../icons/v1/Add'; @@ -12,11 +10,12 @@ import { theme } from '../../style'; import Button from '../common/Button'; import InputWithContent from '../common/InputWithContent'; import View from '../common/View'; +import useFormat from '../spreadsheet/useFormat'; export function AmountInput({ id, inputRef, - initialValue = 0, + initialValue, zeroSign = '-', // + or - onChange, onBlur, @@ -24,10 +23,11 @@ export function AmountInput({ textStyle, focused, }) { + let format = useFormat(); let [negative, setNegative] = useState( (initialValue === 0 && zeroSign === '-') || initialValue < 0, ); - let initialValueAbsolute = integerToCurrency(Math.abs(initialValue || 0)); + let initialValueAbsolute = format(Math.abs(initialValue), 'financial'); let [value, setValue] = useState(initialValueAbsolute); let buttonRef = useRef(); @@ -38,7 +38,7 @@ export function AmountInput({ function fireChange(val, neg) { let valueOrInitial = Math.abs( - currencyToInteger(val ? val : initialValueAbsolute), + amountToInteger(evalArithmetic(val, initialValueAbsolute)), ); let amount = neg ? valueOrInitial * -1 : valueOrInitial; diff --git a/upcoming-release-notes/1781.md b/upcoming-release-notes/1781.md new file mode 100644 index 00000000000..536b390a50d --- /dev/null +++ b/upcoming-release-notes/1781.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [joel-jeremy] +--- + +Inline mobile edits. From 7325153da1a281e70f5c3cff7fc918e5cc7c3e25 Mon Sep 17 00:00:00 2001 From: Joel Jeremy Marquez Date: Sun, 29 Oct 2023 20:26:12 -0700 Subject: [PATCH 03/12] Mobile balance cover/transfer/rollover overspending (#1802) * Mobile balance cover/transfer * Release notes * Fix errors * Cleanup * Fix hit boxes and add line clamp * Fix styling * Prevent simultaneous field edits * Use onPointerDown * Remove balanceTooltip close effect --- ...s-to-another-category-1-chromium-linux.png | Bin 85107 -> 85105 bytes ...with-budgeted-amounts-1-chromium-linux.png | Bin 26722 -> 26800 bytes .../autocomplete/CategoryAutocomplete.tsx | 42 +- .../budget/BalanceWithCarryover.tsx | 15 +- .../budget/CategoryGroupsContext.js | 3 - .../components/budget/DynamicBudgetTable.js | 57 +- .../components/budget/MobileBudgetTable.js | 746 +++++++++++------- .../budget/rollover/BalanceTooltip.tsx | 106 +++ .../budget/rollover/CoverTooltip.tsx | 83 ++ .../budget/rollover/TransferTooltip.tsx | 4 +- .../budget/rollover/rollover-components.tsx | 166 +--- .../src/components/budget/util.ts | 12 +- .../components/reports/CategorySelector.tsx | 15 +- .../desktop-client/src/components/tooltips.js | 1 + packages/desktop-client/src/style/styles.ts | 10 + packages/loot-core/src/mocks/budget.ts | 5 +- packages/loot-core/src/server/db/index.ts | 29 +- packages/loot-core/src/shared/months.ts | 5 + .../src/types/models/category-group.d.ts | 2 + .../loot-core/src/types/models/category.d.ts | 5 +- .../loot-core/src/types/server-handlers.d.ts | 21 +- upcoming-release-notes/1802.md | 6 + 22 files changed, 777 insertions(+), 556 deletions(-) delete mode 100644 packages/desktop-client/src/components/budget/CategoryGroupsContext.js create mode 100644 packages/desktop-client/src/components/budget/rollover/BalanceTooltip.tsx create mode 100644 packages/desktop-client/src/components/budget/rollover/CoverTooltip.tsx create mode 100644 upcoming-release-notes/1802.md diff --git a/packages/desktop-client/e2e/budget.test.js-snapshots/Budget-transfer-funds-to-another-category-1-chromium-linux.png b/packages/desktop-client/e2e/budget.test.js-snapshots/Budget-transfer-funds-to-another-category-1-chromium-linux.png index 2646cc85e09dd4b7602674ac5cd7965a0b04b5e8..38e8e4570aa2becb378888d6e4daa969e6913281 100644 GIT binary patch delta 71090 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 OVNzo9q6H#`Z~g}+>H9VS delta 71095 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%0A`#g#`}z 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

AviR& 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 W+l;DCWhV3J@1?|L#Bv_%y#GI)cKwY2 diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png index fcc9a4669d82c893648a2d68c4cb536ae271f234..90efef73ea04b2aba2e2b4e25423809be6b80284 100644 GIT binary patch delta 24448 zcmaI7byQW+_b+-7K{};NKq(1n={kUPh;&FucS~)$LpdNNE!`sB-6`E6-Fax<=KKBK zJKh-Y-uDNC!#?|*z1Es*&QHw6+9*Q#7{WI_jKWX$W!muSD$A-#_3!2|B!+N5qVQM* z5#mLp6*X}`0ckuOlKk(^kF){d>)nU$Ka*e@2rR%I4S5)DJ^B3f?dJ5Cv15{>=b>?c z885OOWu{}Lc%Bf_XM<6+7xjTMl=VlPHL^TcCVD=a^8*~#A`6_%i`8^zdX662p|yE! zeyoPu$9f1?hitx0sqMtgv;Wf9Pp-Dyy`m?#tl|VkH%yV15p5YW_sD|3S;^E1<-q%; zS>gbcTj_vQ770#k;3|TDh=ot=m4Uff#yoMABWUVsk|b+zmUFgZWHzp%;OfBRWO(3)a{VNo~Cz*JHUC1X~c zi2RTuIAm)gSlhtM0H@!}(Yln%=$w6Nh9agG=kLhtreFaYYWbKHPp893#wu`9?^noz zqdn1E;l5;-u3mmuM1p5k&>$WruEcMr`u*3EW3xV&11sJUd@ofp&YGX~YKZ$O8<;{n zx@Cgbma6HZFq`Af%(^CT`Lb4>=@%C8V?;E%+H)egccX@0d=f*#y6`gG)~EDL3GOtnPB-&dKhqtrkWeJDrve2DP+1?U_CS->BZsDBGw&#_bpV3A#qd$b> zqRf03N+97saOL!j{3wHz%r+7eV9@w(DajEj0M2r`-izYAu#UW?iuN-d#`l~H_~v_R zb8zApgNHp_sB(xeAb4+pmlZG$uL^XsKvpyK`>m?Iuz@czsdIqf!E!8BQ!wI@sYG_wB^PvU`H{3Y#JBt^P%%^ zORNJN`i#jdSGdi&Ks+rNs0GVVMW}Xxb?67 z-lnYoF3BxOh(uHWEtdK{I<&E@?O~+DJ!)F~POZa}^&tq$Q=nPYC=rVSPAJ+Y%M-g_ zv+ibVUcWLao%K^T_bw_Lc-ZwVof|^%Gn;tN{+e8ar<>;Z4{4$QrbrGKD)0;|$e@WV zy(QA6Uiinp+_s-U2)=TC9Ug&jWr#Y9{gL~nzNtNfWl;FRr`ihorQ_U8H8jteto5a5 zAKXhjmJ~4-8-2|hzlz>P#3A;(0SL|uI-;>kysxEpRdOQGWK=u^TXOuQl?a^sS{IGO zf`z~PX}>J_f(U0*`w%|1o(=qPwf77V!H8j_%XI$u#uA9fW{;`LpPHs#)cT!sTVExD z!2N=+-Km@w4EtcU90J={Ea&GYtp~!!bbnBx36Mksm!5v1fPr3_&^Q}L z<}{c2`wkM!Tmf1h&5-$!LBKyPl{Bm;A$EnEnaUE=snaeZD-$?)#IA5QSasue_n{?0 z%fYC@HaVIt)$`$Fa#LAN??4UprqMgDi>sD;8rfzA@~uG2=WWyMpAV(Tv;H*Lm2f4I z4F&--KEa#!YXF>J7HE6an_ku7t^M)wv+;r1tmERfjk4J<+EUvvrLSk-e=9sXNvdRc z_4g^vP+;=#_#~HHd@Z1kk%=7VbRIevlhAp2@kg@nruw}I+f6E}-m8tuhPZpjn~#`+ z>p5=vWtBmh&fnM5B~WYMiJ;x=-@hdJK1wdb(AU&y zCon@s)mTO(K;E!#MKOSGb=&{};u{F%-am+gK#r0RXO3DR5c{Jx<3ZhKgciMKtU7tD zqvTKToX#O}_vO%FZapSm&WZ1RkeKi<6^>Kp5#`QUYZTP3}Y?rzemqEFou zY_}P*K{4Zze2=#TgSr*C@Mlz+-%{QpJ6nZ_EzX$%?-LTDZM1@~t*S}A7tVb`!=t+r z`3%<2uSKX621b7yQZT1+JX5?Thy3!!(t2AwI@p6Qm*<0OM&ILnz(z6u8-sgcpd-hT zb6;P8h=puQ=I_I4oo)X~!h9sf2-^jv5Lrxm@LJyD@-MRVv6F}T;%>95V7A4pE#X|2 zi=Jf!z-=YtcSqik*SqV1rQWR!S@?T>kL%@~s8H)Q-2#hxo0zn~P)AJuup!UrFsMuH z2Q~UI7VzcMC21w`$f+?)7o&sf`>cwiQD*qr&E>>nbcE8&6gW9Pl}8Pc+u;k6YJ&zB zrMQb7hT#WSt?dhslcSEFER`+lwLOJ~DBy5lW<3`!y?034wNSANK9sDjfohL7W!M5qHD?6EKn+&VDageE;B` z=f0@((I|gMv#YF*{Cy#|Vp@ZVBXF;jJk>GU7eT$`mo7E9?=I|fqrp{j6r`BW)!n=< zlB731<8EwK>%NHPHCcnsUt@t5)Q)zYdS-YX`Tg5~NiBS(V)l$(G8*}4)_|=8{?~M; z`nK94+^I#6hhLbL8h2poNEXhqs^DzCNKEw5Xju!KoVxt6-A~O`N>c4&2W;)#BH)ro zF-j?uJ*}wd_SZKyV2u7bDQA9ni(>BS-N>bKJ)_5HThGfpo_81>FW9UfjNWSM0mMV5 zqDGrP(e4YG`W%x!tu@em&MRy+`EK!2f{e(_LuNviP;Z@^j+p~32(9+lynZi>NIOk7 zCk0&Wz!jqUAVI*UiUZJBv(&h=+LjK7Mn-cl#6(616;BLnrRGTxgfeDmpgjxds;4Lyf@)5CI= zzJ1Gg<6;3s_~^~8&7RpaYgQ5j(6e@yaywyo>r?OIc@qF&}*ngG2+y+brC9B3z;shy1#7M%U8RU$UdWa<{O$%yszM*Q1L-b zV~|7uW$UpvHrHU3N*V{8>_S61)gGa|sBq7@Sw}a<-Xy9dTD{R69uTpWs>8vbX17om z(*dLq(w=UTK$ipq2A1t4y~Jsp`I}_8he*jaW7l;{xs9*hVstQSNyw1fOUb?>ZHSl?yHy3j1F{=(<4>@n`S7@ks?9?)^;s>BT zorVhwpGGZR7&Pktr3f!DZ*1oT<4K~gUQKNz)_EbCmd>Cg$p_bSFFIK7al|obGyHYv z5;O=h-*C*S@ELpEaWB*1*|DS_c8N&0BI*7bjnH1~XxQdmmeLl6)y&*XMrocvw4F}$ z_?rllxgvGu00p_+&r|(T+ngReXte;p@qUKwRq>Y&jJ?M5gWXxFWx-5%K)-%i02!gt zczac1qdCP(b#-&q5ze8r$(OmpJ!k~IG2Bi)nS130ghM)(NfaZu(T{;({RoNwGZVi@u zQSLNZEKl{~vld}*XTvcc0Zo=*XBOvDLrh1d73EQ+;~QNkPc-QHk99Y099)^m1k%vZ z*WH{jYC;k~i@Z@B#jD8zTTt6sdUdx%<){+j{Z+>Z;RSCE-S?M1U{PwEzYLJuFm=Z} zrBRqK@x&hedi?rj*(7q8Rh3u`?%$Jbnb1t{?SEbN1q;kWB}a*MB!~2Dd@dKVu8~AMqgf^LvJ%b6+_`|GU`eYQi8A0K6+L&t%R9R#K6`V+UsEms@k%WJ0>^I2U)w9r(gTeK#9wm_ULg`+W}-d~b5 z3|BzX>LraJM~C-Dknyki(48!)qO`SkDvd5G4cqYGRAlsYtbiqVACIR0d|m#Tg~3US zRZXW-%Y)L>Gm2-9Q?TaF9SeJqG7*-|Q$MqPw3?}g&ycL@78Ha=hU1E( zsFZwxbBVl-Pil0GbS4wlBNy;)vwz%Jj|z(bvaj`;zG}SJuw-JrbC@h2vfC06hLA5Vc8^o{tQ9pTCbWujVTI^zqujPTs=0&LbT) zRt-`r-hzZumKp$DtRu_NaG7h#kO_l#SddcI>sNuI)?R|TKTne;mlu+uvpLFDe_G-R zJuY5UTB+GhB4SgCNEF~n+ME2vgNUmBM!s*T4uEAN(qZidwPw&KzI!BtO7^VHPgeeo z9Eku&7a+1SFF{}7rq`d4($aTV_=yQU&kIZQYRJ`#6R;y+!^f+zJky6TPHPR7Tpyos z?hAXM&1(z~+7H(?4HF`jIW@1C#!nNM=WGv5oeSg1b$zWsi4rs@bNKZZ_z#+g7IXP3O1sMg_W!doQ=^Xp%K_-lt z4{$pY;O?)C7~qUCYOT4ay`A(-t@VsW>DT>fxgM{O8#Wx=k+0yvOq1gA(*?cv1Y=GQ3+g7O5;)`e51k zQSzu>%X`3t=J5y5W&VQbMYD*Rc?;D`W+vVpn%G#F!mgbqRey>;vYkHWa-_co3N@IQ zpSX_r#a|Xq$;O>qzV(PnW}y_pP0+YlCk9vQK3sGO=0>oDVAX=_dP=ZV0Xc z*%jT$NM6UQr=WD)gLn!pIyCsta>VEAb!`gujGy!7n0_9`U)^2Oy|X`5t>nH$ zvsg@5{8@2v@v8(gFBR&JmC3yei0>V%ViMMCnk)?y4pGxLA>+e@Jk?X7(P07lWh3t- z{@RS~U3^d+Z{9FjxOtH?FD+nZxt^@iR0510_bAlmE`NEv77AG! zEhi+mF7=Mr`#ze&zssuc;hi!+H^3r8J<`57aTusR)@cw1I?~&|_Ra7w)jHtc-(rX# zBwwtoFB0Q-D@vJfJ4tw|sd42hrXf%rbw52&#UM(uxAGeXJbr%f=f+6GmdkweA_njD zv*6oHrd!>gm>ZwYOxarD^om)wP5iZh$U6lcd3k2!bCTyZ{zw&$la4b5`{mAKXpzJ` zc(>R`e)0gF#D`u^ueoZ>UcurK_k66`xlEYf zWA4id&X$f|udGg0ZZH*c-Wx~fwOe@p?Sy1+&ul=+KmGIFjEwns24ADqWRGuifIWOz z4|b`OuT1@tMSsHH$Yz=LH0$Ye-$BS$gSny1vLqwnVuh_}@ zh30$g!^NhMu#a>ZmY>`vN;F;|hG4XUTacspi#5g3<1O3T`Z~LHr?OgsDoI+EWtQ2I zZLQ~4>FU)>NHZz-v#LhR_Uz;r_3+(b;Gqt-d4;qT?J|6_at~j=O%(n@CwyH?;0hcr z1;@UTTiJ`ZlBX208-5npgwjLW@=3Gl(rTf}3A-c2D}F=nN3mL|E~;MrjnVaZ{HXaK z&EM`Mjh3Ek>q^=rH`cR%Fe82pcKnW)I~k}u)8qmQGHvb>QEOdUAVpKft>YUJIQA?M zC$k}?%9wx`ScaSXJ2QW55dS&yb;kfnCga*BpXSG1e(_FUM2xKNCW~}b(?~{qZe4j` zFlZ)+yyD=%>xrS1?g}SZ`4@*RjuIFgxB@&jMDmn~NYJL6CbGNyppN_4;C5ut*+ZYv ztOQDDGM@9cC^Fv6NlS%Y+W6ur$<#y?NV!H6e`QTgrG)thhP8G4@eAJS=nbGhA*8Yr zA8TJA^yN|ImCWr^@<@t8ouN*@x&zCzcVY2uZ54$|N|I6BTI`LCFBqI$s7}}^ zV|O%@`*WHN8x8hWTSR*6<7(;N!|*OKEHpfP*b&4wkDp&`Rxhe| zOTK+%+i4j5bFyz;$wWN40#x1+vT6EnClVLy zRxuA<%{;cxbj|V&xtf^~p-|%x5!tCynVHd7Zlx_UsTT%%U6Zf2xC)sLrTTSVL9G|- z*ITBF0c+}P7iVYZ)^UP}la2E4GZzQ85Yf!`pz<$!!5CKL!tT$du_(HBs|@n2JjteJ zf3I+#&RcUNVSp(CL}@vhtu&-IthU$+Jv{*-;HE84ObF&$;Wpyq)nH7Nm7S$htjS&r zD#OpOGXCyFM(fr1C?vP^2B8rlL%=XO?~IcaH9sJyyO@V$bw%WoXf#3{I$Gqsl<{O_ zWI`h%qGs5E&w6bG${2*8cBC8p}UJ7p!Fr)QBNy-%%qO6+ft)cbvDc8 zS8-FLqIp=APtoy}%DZO$I%NEArM752ozGTQ5f1CpWH+@98e;PD7=*(*kylsG^HrOU zRuV^WAvh!i@tb_a1O%u_^2je<#LIXuA-lTDGVA_^e56y9FiziO&@N`s{$m;Koyj(y z>etMg4Y;TkO(ybup)33Z7i~fC&QO$Z@82kT=QiwBe4%vPe{`Igoych=Y&x72Tz|3q ztLTxZxKgrBr~I>Q>vJIt@zwSqjCm?y3~*{yt8C(DghQi;l}floL?Q75>V|{84p$fO z^vrU_*(QD!8)7mFeB&$lJ%Gp#42usYiQuOL)i#KbtJPcB)p9zJ#MQF)COj``TF$}2 zVdj2O-(BsjweJY%^!4*rDRyUW z#!tH>xWA3^MfAR;qbeR6Ayep=2#t&dAOTO`46Kcd_e3LU!X4qC`ARHoSivC_9GFo1fl^OGun>T@|bn;^Lx0G=Zv9GR^s!kfOnF z5XdWt3{*_568zzWzq&u;RCdKWT{$L8?GhRZB@ zaI~rgpY7~IFdxVOcDqZjh3g}}#x^_JWF9Mw_*yC{BG^jt%fls z)d^R1bXPc0KvWcFwat>>e9dE9Rnc_0-LlwAHWhN&92N-hdBpAZo!O=!1|>fZx7EZu zayWnLVTq1e#G{~3lPSqm>19Xb>=`ZzNm#pN_~(@spY6#!dPs%}44Ih2`4!KNU3+YA z4ueiLvwEpMnw1q2+DrScyCA1>$1Y2+ldno@u4R#wP4#3;%1k=d7`Y=q{cUvIK7*`` z!5~wR|JD`gj13z2og6DxX6yZT!EUUOul`~?+}rcgc#`*RrWzCb*M6w;;V4p1G^Mmp zLfilzg+NWu%osi{1wl~mP_mJHVM4f^26Oj#*8sc4oyoSdhgzX3E`DAl=MLLvbt}W- z>WYdu0W?DA4(&&7&HD@9?ZqZ4YisKjy)vxsND5Q{VsCHnyWCx+S?!MG;e3GU=_$Zv zJ4bBXo%5#%AOB>fO=8=bALPy$lpGMADKu-{77|0YcICo}7n-#u`pGeDN#pc2jPbJ8 zbM=&!ro$4`!;7ohtpvvOk&0)V)0OliD?3{Fz9%luPH%l(_B4zq`>VDmOW2A_2#$+C z;a8Gw$%pK>$fcogvOI%$ReDe~Yc&m*r~lnjY=*Vb5CaG8k{D#CZxqw`zOTMPqv@v< zN0}&EgpgHVWjk)j)(NGOyBz7`oHp?1@bOh{JMXA`i0guR=)^Ja|FqT7|LR3Dl)7zm zx!=dh5HG7%tVvyy7yI^#KR)!e#vgZ;pF#kCP2P7a_X59Ah8JI)3;gWD@Ii;H4eWBU zBeUUt?}T~NlEyN=q2airIp0ovU$7+xJzwg5=Z;>-FC&CaljSykHhSzl4}Jk`j8_oU zKTJTPWEiyo*>zr8)@UL0@1crv43y-S_yJ)nHqP*E=mjOk! z(tk;tnp#zsdcoX(v{_6?^dV*1n942soYu?L1I3p$eI+`ND^AO4rW7q&QS8;xUky_^ z@8S)eW@Z^3HgcCeWK&Q3WBl`@WwLB3Y+mh-WjlP^rP?Se zB?>V$6E2Sn(onF8e^-s%>Y(QU%=BBW#;%J>mM*k^g;w)4r;NmzN-&d}6S6 z8m4lY?MJWs3vIBu0h?c6TYG1_Z!%G=LKQ_?-QKnAGg451_a#N(aiMFr5@^YghL`Tl zQHo$m^~H866js_TQ%6z?J!55My()KRJl~l|yoFP6)ZN>FwULipq=HHzg{Qxoy?ctC zt=K6V>1Z(N3>Tjwz+m_>lvWzP_OI{nOr3E}-vMXt2sor?tal!yFR%{Vzthq?S{6cQ z#k0pgkN+Y`GU-I9_E8@&K3757wnI<<{`~_jpG6=+FWAb^b*H}kz{l5gfCJuo$?Ne1%CmG3h^KC zQfjVNH%kEJ`66n5*X>|Z?!wig?~H5!H!0>bL@MGNEXoCJ0;V6*1B3^o*`6Zj2lJdm z(ut8(TLf)NX<0@=r>0STmK0IozT0C)M~%Q^J2J1*h6YM^G^tudpyT6`SbWTLrTr=R zm3WwSxK1dZ9N+#e&b3}@hH|5a+)x(p^r0|Tjk~H{mM-eF?kpQ_Qnw~g+}qXgtr3F^ z_pr6#(V-H-uOEN>!)Yn<3w4xi^S7O80nBWbXf-sQy9YRxX!?6oOge7k=mpndE4(aV z!oH#Xu}YK~5-ctEl+SRf;5MD!NtxZRpnm~N3(0+C;nTN#1zY812Jd|bd*DR_OjVAN zk%Yv9PA65Gl6ea?&VtPps4yrv@TjRXXF2Nf^UbfWZTf#`^Sxmk{Jun4aT4ZEi5ozK z%l<)`UT0$Zr}kGFclYN~7*qkt+`HKpFr{*b^=hsI?GnODGd5q166Ab?GLmY$`7i38 zijy26U1p6ShtsX|Kz-T{Wi3Ezu$&K(d>R+0z-I9Fw)xeq&EWrf7}iOc%&57Gy^{mf zhyFz;ec|`GV(;wc&53?1shBhr9UUFrs|&8n!+Ad#z0&&jcl=;iphcnf>pG8*pv!Xs zSL@F1C>@8(eKxw9ydSAmgWpRMNI{xa@46GHQ)5e3T`*}m2>fKnu4*D}&+~C&)~QA# z9V(*lt#jHsu}D$O*UA z5ncY~YLsx(i}iWquKXO0*Tc1h!?^ua1W)Ypge(~;FDV8+821Ofi_aGvl z#E*4(>1yvX6vJ*T^?A8jB3StLlA?WkjCN&h%^zDXK|H-#sC+r{a^iR855C{r?vs|> zmq#Lz{qb)}t3eI_oUOgx;c@}~{^VXv_xhIf?jHE4pWM^gxmLv1V>rC9Q+qd!#AUTa z4A!*g5RjL5$K*v559i;W?;t>q&*lTOy24i$MnqQbfxf^GBF6GBLus>cozMg*VQXcEv>eG+30U(nfbbP zG&dJ}Uz`D_EyWj**YxzXOiXCDwgA%c))Q6N0LjkH`9abqs#S5CJY7d%ST;!4Fd^H^ zWkmIEN9jAlOaIu%8kE?cLqvaArs&dv?aHD51gE>J3n?v)yWGBwV=$4AL`6kK^N)GZ z>L*7pT|tl+lvjQv?S9Y4N5jgx^y@!ysbj{{7Z7;E`sjiHc?X;pojk=;JP7R>gocLZ zJ6QClO6JIJ(5XRvga`qP+3Hpc>E1oB;b!r5zRDtEc8^yW#}`?%`WA548+Y8WfagS{ z#%Ls!%QMK%J^nt7zkM0bm1!j_L`G&MvHi?92!=FJ>%GV3Vx? zlXL+){r0l6Rm@u@UsT$Kw!0 zb;;W5-a!sb7cx+Kfg-(oP4eyWMZX;c;&${9K{zzO)(0~y|NZ-!$%iw?zNIBf5G4bH zg5SX_bIhmyV7`K7RwvNsDyBdn3>u{vb8hAltm$y5qaz1-{|}acH*#AfmUVRmt)aL9 zW2Gf*$Qb(pKA^h+d*C4iAih;q+~7w;cm8gP=BOH8g|@wS+SJW;a?$H<;8HC~6zeHHg!x)l*F(uKCc9TlR{P0`k)!N>Lp(^Nkbz@ zdKm966dTGQ@O%Lc>Z3v5k%Qmb{-0hiOWMTkFAx?N(w>d!u&{jzf78SHgn}Q82vbi^ zF``3%|GkZ6{4egsicuq8c{jpRL`ji`L&1hH?1Y#6e*g{}{EZH1y=)W{i&4(>a#1VW zOx@hvs_FZ6qM|ZJ2Ok>d2V;*x!Qa1jzZtl%jqf4Q)lI+l6^fw`?R+JcYOP}6WVyku zQ?n06Oef6OA0oTI#q6pyqYmaNQID9dBx)^EN1P~|#+a`;kma1xY~b@AD){o_TRFqY zDIqx?UFmWon>=uFZ1^pIQ>EwM!>o{S!(JoiQcjP!Mc12rNq4p4(Y*`tqRFr=+%fUg zUtj-=Z_T&1=~w4}hu2QlKY#!Bjlpy{k=_GNYGQ6sIj3~xdPohH3h2uHiznPV`Ku(7 zvXG|jI@LdTkph>r|B(10wTjQRfSO?&cXz@zumcE*$&^`-SyidRs(0H9`M&{LhI$dZ zQ@7y6r6o%G%}|B)ER#9c92d7n*`)-_2=YvmCy?vnACUg}JU=XdZ}Iu0VB=UG{PRK! zm3jWhrsNu#Gq2fZhjkthbbNCagxkQ{UG6@H2C`2;tTNZ;sm_v6)-ay&x+!cge#=nw z4`{*zZ7X$k$NYWk?}>5eQsC0XPshF0Ae2iOlsH-I`fQd54T(Om-x}7FxNY_hdFOGC zQd?WQ(lMShnrDZ-zwFlg@4ryzcur~uTJyHg7ur{8J?&4%wO%r66N4NZ;R(fnCm3rT zRt$Tq!Ir6%P6_e-diG;QQuFWAzBN=iDib+!^ z{~yfj`X|FVl(seCTBjSl%$g=SU79+!ai*WIS@7(^?OM>wTi|os-J9U%?#)L!EAg-C zIL|zq05Ij+%ZIcxeWi*x8_M{qPP0h41(i#^v>=Q<1JM-AnV>BSQH_55ALu)WALob9 z*Bm8IJVliwp{p$=F(2e*>0C8r2)qaoaMkeXqNSR>qMx{Kivin0ef;$=SZu8Qzhj5N zpL`@t@o3kld`4HtV(%T+eq{nNAj|f?xeSboQuuL}Ea1l99es}mehUaz_Mnml9x(^Y z%PPM1n{b?Oj}c5wp@AIWxknRay3ZUbc-v44Z(Fu>8{NqA0(YicfIbSumwA$>PCodN zCuQ;pMrH$1|E_#0La<%Fd12h`g$fCciFji6Ak~u)p{EC=JG;74{%11n?g_=Spw_!C zL*J=>fh6P)@`&P+63qEHS6TC_WO*w|D3peekEBGWiq{%nymjjGQ!f(;X}}Jr)9F78 zYt0rUm9a4f?O!OM4-lZAenR3`@io^rp$`(&-akrL6HB(6%mFw}2QFbcCNVGaG~x6D zpDV|nXyX7OOLBk=e$VHnyElnEE<0 z`8}Gj9P7x}TBh~EwvJI>Y&_rXXXZozuq+cH^l+PbYlEAR5sdSUKa~>X*5#E|+<&Bd z-XtzeYkKNm9@KcgGrrO7?Cz!(7N+!cJqq!h><_+FOr1C02#0PUXMy;*F+rV@gk?CM! zBog|MEUmvhzVg9y`e~rV^`CW_D%J}A>O`~(;xU7IF-pD5k^ex#WA%1L@|wbCy0%nI z&=ThVKN8JO6yU!zyAbBFA^9codJ^ea?^^6HeUqq(O)tW zu(|(=I}T5zGls^cE+xpXlE84;6=<0|j@B_TV}5v0 zLZL@d7y&ikieM9GuV_5zg|NYM%~FjMqOk9bG_j0Kv5ceuvyMM}sswmvzJl^pc8~ZK zo?bqGzQFYdObv0+WTBgm2oDcVU#5fg(9;#NJ8$RnrU~VKo+B9&Kd?^OY&64EUgAUHZHooAcZSb+h*{cbeGSVu3 z=pbMaymG^WyHJa1K3bs=71)M&R;ffhHh!zzn1?stQ`?h zGf(8*Rb8^2JKt=xS7S8Rz9AlZ-bO-1MBg2g&Ln7c6I#Ed(AgiqjFPID0K@0UMLpX* z2tEnHroe}>@RK59QE3fSTl?ju+N{QMkgK$#zzr`o@0$M0YHxNAJu>~<$-rY0z_~?B$B*3d^AT4%`mn1H zmRI4_V+-+Z@ceS;zKa4H@3oE>csJ)eC(F&T_V+iKSCuN@bUQn#C7vGgF7v4HfZXv?C+bL5`$BQiTrH;$GHAvn?FO+J(*09sCaB$Ev9Em zFkbt`ZtvI+yZ|MV$HnfC9ef2km|=V8SZ~4zF4)4jf$s(B)Ep9D0=p9=@@axt;I)MX zv<$NmkY|ma>qmq~KBbL?ZAFEHy@P{ao*5>yZaD@>@&r8z{UsyRMYG4ALDtsS3~fq$ zQ&Y#42m1PO9UM+}E)Abj<&?==jf-;H7Kq)XGg{9;k9qFQ|N19?MEm@`%K0(tYY^a6 zitZo~8dgeWhF5Y`Jf~jKqdj>BWKXN}g*E6+fS&G8uv3alKw#r|B?X0oyg%Fh#3Nqe?fF+B@4tqEQOy_m|sThX*AJ z+hCD$TZdtbFb6573U^Gg2tXiAF9^6uStcyGv9JoAT_P`@WYHTpSMe~B z;as~9YKR;px@Pi$gJMV|kge4K9AOt8-EMExqyV&0OX>-kZ;Unwkefu!-cLKz-A{>> zbbrN6Qmn?bx}${%^hA57m)dL%FKX7Ce5pUUK5GzVO<3Q7nFZTmQz2(6XZrt;?=n$T zRKyW~#dTh1IDfXq_Ij4LsUZ-@{q8-nRkK#K$ip2{1Ke7|QI%t%NF4$4UO*tzepS5I z^&r?#zV(7EUpZ5^Uc37y`Qx6R@uycJCQP28|Ng1zARRBi0VwM}3TqNDh5l1ZFOtjo0eVVWkxp)bdZ(;YFEhx`WtBMsseJSS_i}qxpq*oSkIJm&%-5-h(HAj;*l}X z5nM95;|y9E_+-4clJG-43~zoH+nD&bQ%@~)Y|7_`VBOf>pGWv#K4r?pblj!e4_&N~ zYARZzG1*Wk_xUPr=*=8bq{QE4f$+hbg#>LY)Np2yQSd?c$Mw-TqO z121{MfYkt!ubP8bZGF)LgcDemo3DaY!Vx@>fJ(+w?B`h+F5gaJ;`4AzKdDj7H~@~DEN#;2gd&n19%4E`i~Qu_@AjI zo%Lph>eiAgX}dlDqn$5ofv|;(h2?*UzJs0Go&_+oRqA5tK?jy+LA^xV%zWCiDpAN2q0y3C^xk8r+2|V4K+JCR4y1*?B_%9iJ8ty% z7fxn_3W!pgF!%XKup`fBObM<{pwj)OX0`QG?edMQ9O17bTRmPiHXpw-c2_G20D*ON zwL{u8%AjcuyGoGkGyL!#{MQh~Xi9Eem!_1A->*AzSi23VJ%w{$-P&>dd2&gmT3N`2f4?ANOO^bd6~u0QLk{ba zmXriKrn-?^^aKM~_4pAWcXvFQ<`p#W;b+)SAZui7%>H#;UXGGuj0{&?w2Y{{+Q&u8 zvP4-ldopPe45nQG|B}8kQ#>6U8_Op=yQf*Y1DWNigYkpS0JDT=hjY2s zzFOLFbnd|^d^RWu@$Fa@b#dY5cQ%iq5O95Q78jN*8TT6Et6U~ejq+ZHTzOvf22C1! zxE34Kt;B-v5LvkacJCW`2H-gYCsi6kWgkYBHd1OSYj1YeT&oEOqVLGfjrgoahCkX; zVj^*^E~}abnb2y(@$9wc)xHe!YwBxanlQxp33cX=x_X zMv)*Tis%UgJMc@U`2M%f2%it;>`pF460+yaq2gYGYis-irZ_VvvfvB@-kMwli>wWZQ>ufQ@U4tQJtvD9Ge|P+cOwR_hqPj_;Qd5e(UX#;A z{mst^)Q)$Zwa=-(g?%bgUmq5*gBQ;Ku|U5$mqCPdc0whj#TLcw4{=2mpyD7Y@fH^Fg^f3G;u0^6VuV0#+V6t{FXwVgkBlJjY74-#LNp zPer0;{YtEL`p7f+PBkWig~K`2kIv37`CWEHy>GFMdcXPo=QIackkwjt_t3u>_@Uhl zRLxeJ8TMJpot*Tfx0zP9?Km4w_D_O&jFcpB(FjzPk^* z{?}`l7RqeC`G_nsw4i6>vm*wQL0#@AT?ql+_0XZ*Y0J;QXI{zRE!g6k7E$m=b$_(u z(z>(VD-!-Wcz0&3`THLWq)IN>uBD0GuJJ+XeX8P1qV#sB2>tfXFnqxSyJSIBHa30# z!a}B>@4v?YUj~*s{-xL*7cH&Yubj-DiH~c%^B2B+O-oBL@Pn<(s;oII;o$)de46+8 z-{awivTVC$;WSqzA?_Cug!dH2WwppS&oM{@ag+r4=8t+%oo_)~mRai*k5KqbFg#q5 znw^~zs9jgzpR1zJ-;$fqMNUPwRe@@K!h8-vZt4b{t`c4&*w$=o=m5JNGKMPbrA^hW znh9Wd>YUQMzqMs&j+wJtj8|Qq4c1Exuy=}Rv|8EI>q2^lah~K*C{dJDK#g$& zLtT#;)LD#4Xz|!pN*8P+s(hjW?@O;c(yTvURK^I&pDbk8QPKX2{3YJ(a|NHjCD{jq z)y*N^<+fg2jVz$WF!7;PJ}yDyO7F33<0#v0PV{_$eD@l@TV%&`^PV*U9i5Q5eMJn& zerI&0*$6+vepYB#9eZlIQv(FO*%*IFcghj{_irDDj77}oeK+>_I%SA%_Q2Hw%;+3& zUF8hQu5-t1WMviQgj6|m+F_DuzZ)C97&&R*X7tdZ(bGjJ6y}$HhpNQsveu|+Tf|wr znpMsrk89Lwfi-XZlZGA}K^k-HAYdB7Wj5@!^KeUf+VEh9o(6k38MpEgnu?wNAx5_E@O$oW5Dvo!_1>oshXxL>*UB>hFK$9V>vOl5EmxQt{DM5*a~it z-eJlJfLT8f?iO^92hDV!iYSDO>srBBZo#Q;PYa2ao*yG3W0dK<`D-WUxKsEq1=Nh3HKChVN=u5A?wwJ=f|>rR5L-&QP3O}mqO`bpwA_SNq*p32~%>%m;W23Rn{;be~wc@;M=%oalO^BFKG1tB>(8;Qc+ zbT9pVldwmQ=ccSVz{)F@_t&F8>pzHc`-v(t;|Hmck zNS7=vsk9)VG}4WzbV*7mu!Kk|b*Uw!OZZ8b#0pC{OM`^c&C;cmi0mTyUVi`geV=FM znR#}Yot3EHFGkr)NIMw zImiR22suhtrhe4!$ls+#7>W7oWr({d=EymAdTM)ig8x(!I3!|X^S(#3xeg))r-2+O zM7kLon8f%UzNhrqlKB8`6Q5fgdNx!^9~43I{MUzmlVqrTni zu!$ckZ;$TFH0*FalUexwAISb6p#J|by#>`2VhV1A#l(0%FhkKG+s?Qx&(8VXT2%i$ z(e9Q$M8%;3&QHj}BH}dTlcmKI$0olz_j5Myn`iK8(%@X`% z-BzPp(8S>zST@pB$@8qTBe73*(|XQPqlWDFYwnsgc?5;R6$&~Rsw`3#*YC17-%ZVS zeJ9N!C`Or_r}ZE?L4zwfSA!1Vdv|T~ozGeUd09%1toO1hcUZed_&&wKf1)sVhgGDcpeIT_xf5%Mm~hrepNt1spl!PYrxHz=1r@qI=U?C24mF z9r)&4*Zsr2K=~O{kD6+ib6w|wn;7EXYh7Pq_5Cq_`TT#ax;vvWvPsFw54VxWvL|l@ z0_f%0F7S6zFQRDqmpY{nFG#^op+7Asln#bAGB?z?U`RGOtPt(HAHqt{M&6_jC}L024Zb32GiuOV-3^r3y3cMHqN#r}J{ zR~B)>x75}^?eJ1O0|x?!tEQj)T4xaVBoh`1U#pORuIzen^fHG}SLcDaH2aAuQ3zOu z#|hQCg+MQT`Bz=(>9?#O3JHSsQ82d*2)H&LJ!Y2k@6o>=;K{L_{t`h+O%3`3>Gg`1 z;*|+)IqZKuM;@iy!hZ6RV%rPk!hRnhe?g;v(E1Ir-vt-S|I&)fgt7{qa*|X2o*nRR zx7i`UnQH6QH_kN4hVNzZ`zP@HJ{;I$Iz?)S%bUJoJ1QJyA zbXir&Mh11g>f}6sK@Nk#TCZ%V2A(HzM&{$ynQq?KM;N#@FM{9!V#j1VK%nR6NeIc5 z(hsHOm+PUm6(WRyvRPNpoiRXUTy|eX_-rlBisIbR%8K`#BxTTtdf65Am%#kd7VJiB zfZ9Ubc{UPgY^2yhx1<%vqFwt3g-~5*&5tD`UhPxcd*^BYpl`Dhn3!F z`q5o4@Tbx5XIA>foNDq#=Mm1~#t#GmHu!cEIVw2Dt^qd&lI zB@gTw2L$Bp@$1}s0j5u*6umL2r#l7LI3*Uxm)&fxM=<>tFYqI}gO7}#cXi-!JaX&M zkU3p>z%Ua2>eVY+6iiGs-kVF>??&5B#nuFEtl&EX}#|jl9|WyL}zLztFBeVk!G;0}Qr6!ZmJz zBHdX$qd02}Yz@!|wK_S0S0feRdv4YDeU`%G<ZfpUU~j>H)>-;WjOta z$hFy#Y7$mw+y*vSpAyfdpZDOVKjW5UrfB_jVbl8i_ipyt+x3c$8d9sUUK_B#k!$Jw zxmB#(NAT-Y#_|1`QrevkGPg3mg%@uL^pK7Sg@fJ`tifhoF5WO6y_LU|fp&7q+#gf& zXLJA)=aY~H0T5}Fi^tymjOC7Ab_tk@sJXt_=8zFPyfZnO4zBZ~F+g6`cX=uMEQ4FS zYbZJ`x2%kWM{C1&t{VIB?-tWVnU5s%JAX`T!XMh0glvVk{V5CJc!rt1X(=5$E6)BD znx5_u)3(MK!-%7TJ+;nU4)rXX)dI_?w z?BTat@-gpP+GT_Po5>*f!xl`)dMeUqDaD-vKE?~O$K(clT!UpW9Y@j5+=(075{v#X zlQBoFJq)r^=Vn@Le@Wu{OW}X29L6TH&m1Q{g9SlWr?0F&ET0!2(fTY0@btyp**9*R z_|bE;&U538{x^D}F(_-6kNFQlvF|9>6;5t=3&`TJm+@o@bERLb)PZq(JG#l3G!Zp+ zlA>rXeaZD?9Yc=)>jCKQ`N}R$(5n6G6viAx-$~a;C;e+73dbkN-`MvQ5hOn{WRQIy z2TR}_*kyx4@sWWQBq0!p&eUzwCrNidu&d}g54@#U z9r$2X0lncl;LDiVHKp$HCbLXP=4HfKv9Sc%LE7|qcauY=Afkuf>J1*mTs~0rv3I1) zDm079zE$O(_o<0orXYPBtB}KwJadB&TB+}^to)l>@zvKdoJA~)4ZA+}s?i+Q6MD@( zQM{MCoaHj=lrI-nKnmpZ=C_VVwuacGq!=pQBXXGN1A=zy6C-0?qYJ|%N4S3MTn!wF-3g=_b#QREVss};BiMW z#E5AZAiNi*-0=Mg!+5)drzyD>4NXDemjhQ6R}rnG?*(VGc@iYLH=IQ(A|b<=s7)(6 zYK{XsC0>o61CQzS`&~Rg`mL3ND)H@L?%9Vu&$mL)8(eG^+?AMrlRkChY=Ee{2LOd) z*^jKz*oCoj5B9zo20VC3jTMRf>u6d!Czp>Kz!vS=yFjSuC!$$rZ=| z+}S%~Tfe>+7CL9+bhMJ{5^L-pQ6Z!sMJj*Q#`xDvNhFj){YRUi%d~gXdsUMbYo`Y#@#*ML6YqMZcZ%AHPLBmDTy+pa}F5$`f zfPT@pC5+vXuz6*=l6u#v^|>0uqv^cL^ll>+sSr$nmbr#PU6~4loGq_J8|* z-u;*)(F5#FG9^F5?ne=MtpM^^RvBE0_KUoSG>)V99ydQP@Oq@{LP_lv*SsTMz7{PO z)PEG7ni;C@R=p#tImC|xK|kiP(RnSD36wrspN&e!IoWh?di&E;Dv4_Cd%sT9_l${G zsU=??uN!`x7sKx+C{iwnfkU2A&C?mmb@K~zVH^<}QXWI)gijQt_ZK_2`q zelchltm<4vs2+PM=qWKb7jo9llBIVtsV%m*oY$ZaI;yDQiYEg?bGS7ghxbe}PKAr* zbZOoW_6J||a&7LU&fj@l&P@Y!x4aDaHP`Gh-K*AcM1o!}Nzv?4Yv}z^t*QOb(7u|Y zE-}dm%}THBz(ruY@L1T=s_S*E@v>#Gnf%X4#|5fH;b#lrV!dlF;)>_mc=r1vtD4Ec z4w~hITHrv2G9})h=PfCDOq{x8?E}iQ!|(iJByx|x&UdhQzFA1fih*hYWWFrJbWR#) z<1jIeo!Q?JQ(+k~OX$S07QbW{Im^E+Wieu-j$)_l->B^v=ivJors}qjjOGW;>-vZo zF}G-&&=*MXHec0YO)E7^!D1dEXK#Pq&VY)w$a?wLa%q0V@5Y*_kMtF9)5wYE_8i>W zMYENjSrYw;Dw{mZ>?;YxBUGmmNA6i zHf3ClhTIe4w~;U=;`M);J#Yi1Lq)`!1yppys`|o~fdDA=6anz$sC=C_yOP)vQgYwB z;Im{{aR>ZfsAcrtP>oJNUzke^MQ-lHUmT2QMaO2IBv!AZ$;HIB)OG{gYjtv}`pA;! z=K10_$uo)we$%1Fspit`6`5AXmBUP@%8>e+8$%yi&T-|O$V+4g?S{SwY+I`YCkwnY zoF7H>uKSDO1yqPGh}+jq5Smelb>PT_DC&mB3wbH zrS{H-mZra|*+Q&(f%KCqtDJhsP|ISMKh+7~V84s=)&WXW7*eN@nCb*0Chxt{mIsB3 z%fBNE2I*RDvtv}BfqmY49(VzxsJldwBQXkFDSaaYsB}&q?=YpjAl?t)j6sdv8c3#I z1L1MQQJbbBe_m~^`KaJ!gY;OQMQw4b-;5pefPlj4T(r8^2d9Vwi)0*#3kNxaG>r1> z&)z%?5DXL4kny^|XUOFAvT7d6g#J7hZ{Zz5O`EE=QwxoZa$UgXXl>kE!t!G-{b?L! zo9{X)nk!;aTTB&JX2C39sedoOfDt*_~6ldhCj(>UJG*2)ql^H>JYK9ub0aP?UkO{6Zr614@n z;&%J#XAEH}X3&7oa3B4p?i10)Y9GSX%`^D?GSH`K(WL!7PqokpY&8+Tc+dn0EtkfC zl!FVVDlGJ=9y;q-jW}&SwLR>2TQpW2c{lYKCw}AeO5!5TuuMt_rW9%-g6P7A3s)LN z&tg7Q6-BIW&e*=+p_!p*XZ_~%Bk#0#%gtsaxLZJ$Ea#7}z~?17sQ#Or$P8{voK(#p zf29_c=p7oD4f$RnD5!wQq%dG=*;NsQuPe_XvBv!~e(SoqDiCbi&mHzI8RE|Q3VC#R zIf81R5HO$RV{qx(b2_iC?EPZH-dvdm7c86PIwCqoBUiq3C1PJnxH-RhuJVo8 zJoGZ~iF@nJ?#`|lR_x#-Sdy}?H%VMVFoD6%ltH2xV0ciauIhl#Rhzdn*CdkO^rZh858UO z!!!Z-aIP*rsVfPCK#0_CVxFPR<#%D}CGGG;P z=+X8$b|1TZeDX;G9Ps=Z$FVBq2dITw>dn-t?CLNrFZzw;W?T6OMod?3>xMw%W^?wD&)TSjBJo{RF3ega_$E z8x3wzD6GUl6C4?~7q`YUzIZgDzkcKIsqC!VwFAX&=vmR~jO`Ul3XhB>JuZ?+Y?6;w z*w;t>eQ#5mJsupQc(22`N{L3*?#}_MxV`;-8eHM=X1^>WSziZ0p6tgm6D92M8Dhp! z_tlruhN&hjIFR5Be%|&Ob&CB&h-n_&{KT)GtK8z?JljgjFZY)bT##WyhJFF~4Q4%w zi?}hvgJGuSN-ANDw}gH1{R#KOzqbjQyGq1u(_7ExqI3`jqr0^lhlcb^+q;*nfAm64 zc~(}t>#S``DS;|X6^Z|`3KutO>5t2+2dV6w&`8ZPCZ%C6*rBfkCAz5sg)Tbz$*T<>$hNx&3bvZRD7wIXc^mx<*#s~uj`PU5Y6wG~F`+hfbC7f($ z{qO1Gr~5P{yfjOP@#}w8ze>5`c}LtzB##8NSyed+tf(;qqc%k z74EvFDLZLPw=T#1IzZT&W;w5VyTEGx$er?wxb$LvWIXD0dcqPn*We7>yU-+BCnR%T z{Tx7#D|#BBuSaIiWec5J&%En)YjdtjF-o)~v@70E>io1J4>rB%AI~M+4?ia{@KGFCm@eDWQF*Bu6LGz331ju zN1nbPNDw)IY}^~*lvu(_LVPE1bIZM{DsV#UMsBW+ECChOKc6Z1U?pczzovZjk)_CA zCnuj8jQT{lQ;dxY%(gkfkUP^Yg4dX?ncW85k^oB*c+i6D*Ki~1dqe4>jAEQXsWfXEQUI&MBu_A%`_tRyRyJSwTh@m*I~C%8OFrL zsv$+@Js2)8HaI&Ou3(#9#K|%LYVDN~(C2h+Nlk8Y?0~-~Mz!euvO9#&*%vjBxLs_h z^sV$`n-hG_MtQ7M&wQS100GFhZmGOtZVF^pe=4-~nf^xXVZ<22JQc z?X{m7SuTz3-gE~mZMHK@R-^0VPa%^_RZ68gH|EV;P=eyhS0=X#VW`8r)z}_(a%7(!p9J3a?c1%@d{=4~yuGb;2ikbH=?#I!yEnR9OMeOYf(uQ=Rg7t4OZ%6l1J6}A9^c3KxOLsB(5Q@$5^edi*S*jXQt!*IT?#F^Sds~ z6uUWPJsB_Hlz4YvmC&uzO`|P3DT{j|)eDXeW^Kr_pqq8!4~o0{e&*`{n7c<2QGkRn3zYiGhOZGaQ8puNRlU*0uer){>EVI(!Kq z=jUp)igb8E=pzt!9a0Q4g$LhhOYo_lJ*?XGG6jhqu8lH}4-C))jf%9dXA52qa*n8B zA$B&soVtg2w?VaOV0`?D7%_ zJj_g5IhlRlwpDHjPE}Bub;Zd>{JQ*Tp>sdAkyDDbo8aW6_Rc@4QRULNS3*ao6&3cK zJx*81v;%Ap)veA4(}u!tcYJn{I>q)Q@}eR;I)*KI%S&)a|2Q$nOaqCTHA6HI9pA4} zw_W)=JM?%A-D`j8vD9b(o4eZd4PlK z8!Z()$bvTu*!IDYFh&ijydJGO4z%hrl3kb8-{@;@H(J@i%-3Z+Roh8uUv{%R1FT(^+L-QufLct@ilqS#OyV=>BJ08A^icA*Og8sLC g=bJrfO1kUY%+)5!Us-;q)^fKiC08l(~IsgCw delta 24399 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 T(f*h05b&X@sHspbZyEky`+xbd diff --git a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx index bf7164aff9d..05641edfa81 100644 --- a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx @@ -7,6 +7,11 @@ import React, { import { css } from 'glamor'; +import { + type CategoryEntity, + type CategoryGroupEntity, +} from 'loot-core/src/types/models'; + import Split from '../../icons/v0/Split'; import { theme } from '../../style'; import Text from '../common/Text'; @@ -14,21 +19,8 @@ import View from '../common/View'; import Autocomplete, { defaultFilterSuggestion } from './Autocomplete'; -export type Category = { - id: string; - cat_group: unknown; - groupName: string; - name: string; -}; - -export type CategoryGroup = { - id: string; - name: string; - categories: Array; -}; - export type CategoryListProps = { - items: Array; + items: Array; getItemProps?: (arg: { item }) => Partial>; highlightedIndex: number; embedded: boolean; @@ -122,7 +114,7 @@ function CategoryList({ }} data-testid="category-item-group" > - {item.groupName} + {`${item.group?.name}`} )}

& { - categoryGroups: CategoryGroup[]; + categoryGroups: Array; showSplitOption?: boolean; groupHeaderStyle?: object; }; @@ -169,19 +161,23 @@ export default function CategoryAutocomplete({ groupHeaderStyle, ...props }: CategoryAutocompleteProps) { - let categorySuggestions = useMemo( + let categorySuggestions: Array< + CategoryEntity & { group?: CategoryGroupEntity } + > = useMemo( () => categoryGroups.reduce( (list, group) => list.concat( - group.categories.map(category => ({ - ...category, - groupName: group.name, - })), + group.categories + .filter(category => category.cat_group === group.id) + .map(category => ({ + ...category, + group: group, + })), ), - showSplitOption ? [{ id: 'split', name: '' }] : [], + showSplitOption ? [{ id: 'split', name: '' } as CategoryEntity] : [], ), - [categoryGroups], + [showSplitOption, categoryGroups], ); return ( diff --git a/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx b/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx index 93d1df5312e..b3e2beb897b 100644 --- a/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx +++ b/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx @@ -1,6 +1,7 @@ import React, { type ComponentProps } from 'react'; import ArrowThinRight from '../../icons/v1/ArrowThinRight'; +import { type CSSProperties } from '../../style'; import View from '../common/View'; import CellValue from '../spreadsheet/CellValue'; import useSheetValue from '../spreadsheet/useSheetValue'; @@ -11,17 +12,23 @@ type BalanceWithCarryoverProps = { carryover: ComponentProps['binding']; balance: ComponentProps['binding']; disabled?: boolean; + style?: CSSProperties; + balanceStyle?: CSSProperties; + carryoverStyle?: CSSProperties; }; export default function BalanceWithCarryover({ carryover, balance, disabled, + style, + balanceStyle, + carryoverStyle, }: BalanceWithCarryoverProps) { let carryoverValue = useSheetValue(carryover); let balanceValue = useSheetValue(balance); return ( - <> + - {carryoverValue === true && ( + {carryoverValue && ( )} - + ); } diff --git a/packages/desktop-client/src/components/budget/CategoryGroupsContext.js b/packages/desktop-client/src/components/budget/CategoryGroupsContext.js deleted file mode 100644 index b1d9eb6899e..00000000000 --- a/packages/desktop-client/src/components/budget/CategoryGroupsContext.js +++ /dev/null @@ -1,3 +0,0 @@ -import { createContext } from 'react'; - -export let CategoryGroupsContext = createContext([]); diff --git a/packages/desktop-client/src/components/budget/DynamicBudgetTable.js b/packages/desktop-client/src/components/budget/DynamicBudgetTable.js index fec4a397866..dbd83c50abe 100644 --- a/packages/desktop-client/src/components/budget/DynamicBudgetTable.js +++ b/packages/desktop-client/src/components/budget/DynamicBudgetTable.js @@ -8,7 +8,6 @@ import View from '../common/View'; import { useBudgetMonthCount } from './BudgetMonthCountContext'; import BudgetPageHeader from './BudgetPageHeader'; import BudgetTable from './BudgetTable'; -import { CategoryGroupsContext } from './CategoryGroupsContext'; function getNumPossibleMonths(width) { let estimatedTableWidth = width - 200; @@ -61,36 +60,34 @@ const DynamicBudgetTableInner = forwardRef( } return ( - - - - - - + + + + - + ); }, ); diff --git a/packages/desktop-client/src/components/budget/MobileBudgetTable.js b/packages/desktop-client/src/components/budget/MobileBudgetTable.js index e02095ab704..986476f7a3e 100644 --- a/packages/desktop-client/src/components/budget/MobileBudgetTable.js +++ b/packages/desktop-client/src/components/budget/MobileBudgetTable.js @@ -32,7 +32,9 @@ import { AmountInput } from '../util/AmountInput'; // } from '../mobile/AmountInput'; // import { DragDrop, Draggable, Droppable, DragDropHighlight } from './dragdrop'; +import BalanceWithCarryover from './BalanceWithCarryover'; import { ListItem, ROW_HEIGHT } from './MobileTable'; +import BalanceTooltip from './rollover/BalanceTooltip'; import { makeAmountGrey } from './util'; function ToBudget({ toBudget, onClick }) { @@ -49,6 +51,7 @@ function ToBudget({ toBudget, onClick }) { ...styles.underlinedText, color: theme.formInputText, flexShrink: 0, + textAlign: 'left', }} /> {projected ? ( + + )} + } style={{ width: '100%' }} placeholder="Category Name" @@ -326,44 +367,17 @@ const ExpenseCategory = memo(function ExpenseCategory({ } }} /> - {tooltip.isOpen && ( - { - tooltip.close(); - inputRef.current?.focus(); - }} - > - - - )} onEdit?.(category.id)} + onPointerDown={() => onEdit?.(category.id)} style={{ ...(showEditables && { display: 'none' }), flex: 1 }} > @@ -373,6 +387,7 @@ const ExpenseCategory = memo(function ExpenseCategory({ - - + + + - value < 0 ? { color: theme.errorText } : makeAmountGrey(value) - } - type="financial" - /> + > + onOpenBudgetActionMenu?.(category.id)} + > + + {balanceTooltip.isOpen && ( + { + onBudgetAction?.( + monthUtils.getMonthFromIndex( + monthUtils.getYear(month), + monthIndex, + ), + action, + arg, + ); + }} + onClose={() => { + onOpenBudgetActionMenu?.(null); + }} + /> + )} + + ); @@ -533,19 +587,53 @@ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ ...(!showEditables && { display: 'none' }), flexDirection: 'row', flex: 1, + justifyContent: 'center', + alignItems: 'center', + height: ROW_HEIGHT, }} > - - + <> + + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > + + + )} + } style={{ width: '100%' }} placeholder="Category Group Name" @@ -558,39 +646,10 @@ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ } }} /> - {tooltip.isOpen && ( - { - tooltip.close(); - inputRef.current?.focus(); - }} - > - - - )} onEdit?.(group.id)} + onPointerDown={() => onEdit?.(group.id)} style={{ ...(showEditables && { display: 'none' }), flex: 1 }} > @@ -612,42 +669,68 @@ const ExpenseGroupTotals = memo(function ExpenseGroupTotals({ style={{ ...(showEditables && { display: 'none' }), flexDirection: 'row', + justifyContent: 'center', alignItems: 'center', + height: ROW_HEIGHT, opacity, }} > - - + + + - + + + + > + + {/* {editMode && ( @@ -686,8 +769,6 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ budget, balance, style, - nameTextStyle, - amountTextStyle, onAddCategory, onSave, onDelete, @@ -760,19 +841,53 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ ...(!showEditables && { display: 'none' }), flexDirection: 'row', flex: 1, + justifyContent: 'center', + alignItems: 'center', + height: ROW_HEIGHT, }} > - - + <> + + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > + + + )} + } style={{ width: '100%' }} placeholder="Category Group Name" @@ -785,46 +900,24 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ } }} /> - {tooltip.isOpen && ( - { - tooltip.close(); - inputRef.current?.focus(); - }} - > - - - )} onEdit?.(group.id)} + style={{ + ...(showEditables && { display: 'none' }), + flex: 1, + justifyContent: 'center', + alignItems: 'flex-start', + height: ROW_HEIGHT, + }} + onPointerDown={() => onEdit?.(group.id)} > @@ -832,29 +925,45 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ {budget && ( - + > + + )} - + > + + ); }); @@ -864,8 +973,6 @@ const IncomeCategory = memo(function IncomeCategory({ budget, balance, style, - nameTextStyle, - amountTextStyle, onSave, onDelete, editMode, @@ -934,19 +1041,49 @@ const IncomeCategory = memo(function IncomeCategory({ ...(!showEditables && { display: 'none' }), flexDirection: 'row', flex: 1, + justifyContent: 'center', + alignItems: 'center', + height: ROW_HEIGHT, }} > - - + <> + + {tooltip.isOpen && ( + { + tooltip.close(); + inputRef.current?.focus(); + }} + > + + + )} + } style={{ width: '100%' }} placeholder="Category Name" @@ -959,43 +1096,24 @@ const IncomeCategory = memo(function IncomeCategory({ } }} /> - {tooltip.isOpen && ( - { - tooltip.close(); - inputRef.current?.focus(); - }} - > - - - )} onEdit?.(category.id)} + style={{ + ...(showEditables && { display: 'none' }), + flex: 1, + justifyContent: 'center', + alignItems: 'flex-start', + height: ROW_HEIGHT, + }} + onPointerDown={() => onEdit?.(category.id)} > @@ -1003,29 +1121,43 @@ const IncomeCategory = memo(function IncomeCategory({ {budget && ( - + > + + )} - + > + + ); }); @@ -1078,6 +1210,8 @@ const ExpenseGroup = memo(function ExpenseGroup({ onEditCategory, editingBudgetCategoryId, onEditCategoryBudget, + openBudgetActionMenuId, + onOpenBudgetActionMenu, // gestures, month, onSaveCategory, @@ -1149,6 +1283,7 @@ const ExpenseGroup = memo(function ExpenseGroup({ const isEditingCategory = editingCategoryId === category.id; const isEditingCategoryBudget = editingBudgetCategoryId === category.id; + const isBudgetActionMenuOpen = openBudgetActionMenuId === category.id; return ( )} - + )} + {(show3Cols || !showBudgetedCol) && ( + + + )} + + ); +} diff --git a/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx b/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx index bdf02fef1fe..06e8a099f4e 100644 --- a/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx +++ b/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx @@ -9,6 +9,7 @@ import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider'; import evalArithmetic from 'loot-core/src/shared/arithmetic'; import { integerToCurrency, amountToInteger } from 'loot-core/src/shared/util'; +import useCategories from '../../../hooks/useCategories'; import CategoryAutocomplete from '../../autocomplete/CategoryAutocomplete'; import Button from '../../common/Button'; import InitialFocus from '../../common/InitialFocus'; @@ -16,7 +17,6 @@ import Input from '../../common/Input'; import View from '../../common/View'; import NamespaceContext from '../../spreadsheet/NamespaceContext'; import { Tooltip } from '../../tooltips'; -import { CategoryGroupsContext } from '../CategoryGroupsContext'; import { addToBeBudgetedGroup } from '../util'; type TransferTooltipProps = { @@ -37,7 +37,7 @@ export default function TransferTooltip({ }: TransferTooltipProps) { let spreadsheet = useSpreadsheet(); let sheetName = useContext(NamespaceContext); - let categoryGroups = useContext(CategoryGroupsContext); + let { grouped: categoryGroups } = useCategories(); categoryGroups = categoryGroups.filter(g => !g.is_income); if (showToBeBudgeted) { diff --git a/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx b/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx index ff0c26e3392..a15f06b76e3 100644 --- a/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx +++ b/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx @@ -1,4 +1,4 @@ -import React, { type ComponentProps, memo, useContext, useState } from 'react'; +import React, { memo, useState } from 'react'; import { rolloverBudget } from 'loot-core/src/client/queries'; import evalArithmetic from 'loot-core/src/shared/arithmetic'; @@ -7,181 +7,21 @@ import { integerToCurrency, amountToInteger } from 'loot-core/src/shared/util'; import useFeatureFlag from '../../../hooks/useFeatureFlag'; import CheveronDown from '../../../icons/v1/CheveronDown'; import { styles, theme, type CSSProperties } from '../../../style'; -import CategoryAutocomplete from '../../autocomplete/CategoryAutocomplete'; import Button from '../../common/Button'; -import InitialFocus from '../../common/InitialFocus'; import Menu from '../../common/Menu'; import Text from '../../common/Text'; import View from '../../common/View'; import CellValue from '../../spreadsheet/CellValue'; import useFormat from '../../spreadsheet/useFormat'; -import useSheetValue from '../../spreadsheet/useSheetValue'; import { Row, Field, SheetCell } from '../../table'; import { Tooltip, useTooltip } from '../../tooltips'; import BalanceWithCarryover from '../BalanceWithCarryover'; -import { CategoryGroupsContext } from '../CategoryGroupsContext'; -import { makeAmountGrey, addToBeBudgetedGroup } from '../util'; +import { makeAmountGrey } from '../util'; -import TransferTooltip from './TransferTooltip'; +import BalanceTooltip from './BalanceTooltip'; export { BudgetSummary } from './BudgetSummary'; -type CoverTooltipProps = { - tooltipProps?: ComponentProps; - onSubmit: (category: unknown) => void; - onClose: () => void; -}; -function CoverTooltip({ tooltipProps, onSubmit, onClose }: CoverTooltipProps) { - let categoryGroups = useContext(CategoryGroupsContext); - categoryGroups = addToBeBudgetedGroup( - categoryGroups.filter(g => !g.is_income), - ); - let [category, setCategory] = useState(null); - - function submit() { - if (category) { - onSubmit(category); - onClose(); - } - } - - return ( - - Cover from category: - - - {node => ( - {}} - onSelect={id => setCategory(id)} - inputProps={{ - inputRef: node, - onKeyDown: e => { - if (e.key === 'Enter') { - submit(); - } - }, - }} - /> - )} - - - - - - - ); -} - -type BalanceTooltipProps = { - categoryId: string; - tooltip: { close: () => void }; - monthIndex: number; - onBudgetAction: (idx: number, action: string, arg?: unknown) => void; -}; -function BalanceTooltip({ - categoryId, - tooltip, - monthIndex, - onBudgetAction, -}: BalanceTooltipProps) { - let carryover = useSheetValue(rolloverBudget.catCarryover(categoryId)); - let balance = useSheetValue(rolloverBudget.catBalance(categoryId)); - let [menu, setMenu] = useState('menu'); - - return ( - <> - {menu === 'menu' && ( - - { - if (type === 'carryover') { - onBudgetAction(monthIndex, 'carryover', { - category: categoryId, - flag: !carryover, - }); - tooltip.close(); - } else { - setMenu(type); - } - }} - items={[ - { - name: 'transfer', - text: 'Transfer to another category', - }, - { - name: 'carryover', - text: carryover - ? 'Remove overspending rollover' - : 'Rollover overspending', - }, - balance < 0 && { - name: 'cover', - text: 'Cover overspending', - }, - ].filter(x => x)} - /> - - )} - - {menu === 'transfer' && ( - { - onBudgetAction(monthIndex, 'transfer-category', { - amount, - from: categoryId, - to: toCategory, - }); - }} - /> - )} - - {menu === 'cover' && ( - { - onBudgetAction(monthIndex, 'cover', { - to: categoryId, - from: fromCategory, - }); - }} - /> - )} - - ); -} let headerLabelStyle: CSSProperties = { flex: 1, padding: '0 5px', diff --git a/packages/desktop-client/src/components/budget/util.ts b/packages/desktop-client/src/components/budget/util.ts index 82f97f4d257..bda8e59e227 100644 --- a/packages/desktop-client/src/components/budget/util.ts +++ b/packages/desktop-client/src/components/budget/util.ts @@ -8,7 +8,17 @@ export function addToBeBudgetedGroup(groups: CategoryGroupEntity[]) { { id: 'to-be-budgeted', name: 'To Be Budgeted', - categories: [{ id: 'to-be-budgeted', name: 'To Be Budgeted' }], + categories: [ + { + id: 'to-be-budgeted', + name: 'To Be Budgeted', + cat_group: 'to-be-budgeted', + group: { + id: 'to-be-budgeted', + name: 'To Be Budgeted', + }, + }, + ], }, ...groups, ]; diff --git a/packages/desktop-client/src/components/reports/CategorySelector.tsx b/packages/desktop-client/src/components/reports/CategorySelector.tsx index 8dc2da84dab..d41a512722e 100644 --- a/packages/desktop-client/src/components/reports/CategorySelector.tsx +++ b/packages/desktop-client/src/components/reports/CategorySelector.tsx @@ -1,19 +1,20 @@ import React, { Fragment, useState } from 'react'; +import { + type CategoryEntity, + type CategoryGroupEntity, +} from 'loot-core/src/types/models'; + import Eye from '../../icons/v2/Eye'; import EyeSlashed from '../../icons/v2/EyeSlashed'; -import { - type Category, - type CategoryGroup, - type CategoryListProps, -} from '../autocomplete/CategoryAutocomplete'; +import { type CategoryListProps } from '../autocomplete/CategoryAutocomplete'; import Button from '../common/Button'; import { Checkbox } from '../forms'; type CategorySelectorProps = { - categoryGroups: Array; + categoryGroups: Array; selectedCategories: CategoryListProps['items']; - setSelectedCategories: (selectedCategories: Category[]) => null; + setSelectedCategories: (selectedCategories: CategoryEntity[]) => null; }; export default function CategorySelector({ diff --git a/packages/desktop-client/src/components/tooltips.js b/packages/desktop-client/src/components/tooltips.js index ba82ea65604..6969e63d3f4 100644 --- a/packages/desktop-client/src/components/tooltips.js +++ b/packages/desktop-client/src/components/tooltips.js @@ -19,6 +19,7 @@ export function useTooltip() { }, }), isOpen, + open: () => setIsOpen(true), close: () => setIsOpen(false), }; } diff --git a/packages/desktop-client/src/style/styles.ts b/packages/desktop-client/src/style/styles.ts index 7ec156c7b4e..78bf4b7d956 100644 --- a/packages/desktop-client/src/style/styles.ts +++ b/packages/desktop-client/src/style/styles.ts @@ -103,6 +103,16 @@ export const styles = { outline: 'none', }, }, + lineClamp: (lines: number) => { + return { + display: '-webkit-box', + WebkitLineClamp: lines, + WebkitBoxOrient: 'vertical', + overflow: 'hidden', + textOverflow: 'ellipsis', + wordBreak: 'break-word', + }; + }, // Dynamically set lightScrollbar: null as CSSProperties | null, darkScrollbar: null as CSSProperties | null, diff --git a/packages/loot-core/src/mocks/budget.ts b/packages/loot-core/src/mocks/budget.ts index 5d4849e49b6..2993722a67d 100644 --- a/packages/loot-core/src/mocks/budget.ts +++ b/packages/loot-core/src/mocks/budget.ts @@ -10,7 +10,6 @@ import { batchMessages, setSyncingMode } from '../server/sync'; import * as monthUtils from '../shared/months'; import q from '../shared/query'; import type { - CategoryEntity, CategoryGroupEntity, PayeeEntity, TransactionEntity, @@ -609,9 +608,7 @@ export async function createTestBudget(handlers) { }), ); - let categoryGroups: Array< - CategoryGroupEntity & { categories: Omit[] } - > = [ + let categoryGroups: Array = [ { name: 'Usual Expenses', categories: [ diff --git a/packages/loot-core/src/server/db/index.ts b/packages/loot-core/src/server/db/index.ts index 5e7d36cc98f..a06e08dc2d9 100644 --- a/packages/loot-core/src/server/db/index.ts +++ b/packages/loot-core/src/server/db/index.ts @@ -12,6 +12,7 @@ import { v4 as uuidv4 } from 'uuid'; import * as fs from '../../platform/server/fs'; import * as sqlite from '../../platform/server/sqlite'; import { groupById } from '../../shared/util'; +import { CategoryEntity, CategoryGroupEntity } from '../../types/models'; import { schema, schemaConfig, @@ -271,28 +272,28 @@ export function updateWithSchema(table, fields) { // Data-specific functions. Ideally this would be split up into // different files -export async function getCategories() { - return all(` - SELECT c.* FROM categories c - LEFT JOIN category_groups cg ON c.cat_group = cg.id - WHERE c.tombstone = 0 - ORDER BY cg.sort_order, cg.id, c.sort_order, c.id +export async function getCategories(): Promise { + return await all(` + SELECT c.* FROM categories c WHERE c.tombstone = 0 + ORDER BY c.sort_order, c.id `); } -export async function getCategoriesGrouped() { - const groups = await all( - 'SELECT * FROM category_groups WHERE tombstone = 0 ORDER BY is_income, sort_order, id', - ); - const rows = await all(` - SELECT * FROM categories WHERE tombstone = 0 - ORDER BY sort_order, id +export async function getCategoriesGrouped(): Promise< + Array +> { + const groups = await all(` + SELECT cg.* FROM category_groups cg WHERE cg.tombstone = 0 ORDER BY cg.is_income, cg.sort_order, cg.id + `); + const categories = await all(` + SELECT c.* FROM categories c WHERE c.tombstone = 0 + ORDER BY c.sort_order, c.id `); return groups.map(group => { return { ...group, - categories: rows.filter(row => row.cat_group === group.id), + categories: categories.filter(c => c.cat_group === group.id), }; }); } diff --git a/packages/loot-core/src/shared/months.ts b/packages/loot-core/src/shared/months.ts index 1233a7a3319..4ea22213595 100644 --- a/packages/loot-core/src/shared/months.ts +++ b/packages/loot-core/src/shared/months.ts @@ -220,6 +220,11 @@ export function dayRangeInclusive(start: DateLike, end: DateLike) { return _dayRange(start, end, true); } +export function getMonthFromIndex(year: string, monthIndex: number) { + const formatMonth = `${monthIndex + 1}`.padStart(2, '0'); + return `${year}-${formatMonth}`; +} + export function getMonthIndex(month: string): number { return parseInt(month.slice(5, 7)) - 1; } diff --git a/packages/loot-core/src/types/models/category-group.d.ts b/packages/loot-core/src/types/models/category-group.d.ts index eca289e442e..4225ad68387 100644 --- a/packages/loot-core/src/types/models/category-group.d.ts +++ b/packages/loot-core/src/types/models/category-group.d.ts @@ -4,4 +4,6 @@ export interface CategoryGroupEntity { is_income?: boolean; sort_order?: number; tombstone?: boolean; + hidden?: boolean; + categories?: CategoryEntity[]; } diff --git a/packages/loot-core/src/types/models/category.d.ts b/packages/loot-core/src/types/models/category.d.ts index b495fe0d045..2eb075de375 100644 --- a/packages/loot-core/src/types/models/category.d.ts +++ b/packages/loot-core/src/types/models/category.d.ts @@ -1,10 +1,9 @@ -import type { CategoryGroupEntity } from './category-group'; - export interface CategoryEntity { id?: string; name: string; is_income?: boolean; - group: CategoryGroupEntity; + cat_group?: string; sort_order?: number; tombstone?: boolean; + hidden?: boolean; } diff --git a/packages/loot-core/src/types/server-handlers.d.ts b/packages/loot-core/src/types/server-handlers.d.ts index 82660722163..252ec501fe2 100644 --- a/packages/loot-core/src/types/server-handlers.d.ts +++ b/packages/loot-core/src/types/server-handlers.d.ts @@ -5,7 +5,7 @@ import { Backup } from '../server/backups'; import { RemoteFile } from '../server/cloud-storage'; import { Message } from '../server/sync'; -import { AccountEntity, PayeeEntity } from './models'; +import { AccountEntity, CategoryEntity, CategoryGroupEntity } from './models'; import { EmptyObject } from './util'; export interface ServerHandlers { @@ -43,23 +43,8 @@ export interface ServerHandlers { 'transactions-export-query': (arg: { query: queryState }) => Promise; 'get-categories': () => Promise<{ - grouped: { - id: string; - name: string; - is_income: number; - sort_order: number; - tombstone: number; - hidden: boolean; - }[]; - list: { - id: string; - name: string; - is_income: number; - cat_group: string; - sort_order: number; - tombstone: number; - hidden: boolean; - }[]; + grouped: Array; + list: Array; }>; 'get-earliest-transaction': () => Promise; diff --git a/upcoming-release-notes/1802.md b/upcoming-release-notes/1802.md new file mode 100644 index 00000000000..f76c713bf1f --- /dev/null +++ b/upcoming-release-notes/1802.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [joel-jeremy] +--- + +Mobile balance cover/transfer/rollover overspending From fc08baf7ae9e5bb1c860b5b3785292119b598634 Mon Sep 17 00:00:00 2001 From: Joel Jeremy Marquez Date: Tue, 31 Oct 2023 07:48:32 -0700 Subject: [PATCH 04/12] Fix mobile budget click handlers (#1844) * Fix mobile budget click handlers * Release notes --- .../src/components/budget/MobileBudgetTable.js | 14 ++++++++------ .../src/components/spreadsheet/CellValue.tsx | 2 ++ upcoming-release-notes/1844.md | 6 ++++++ 3 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 upcoming-release-notes/1844.md diff --git a/packages/desktop-client/src/components/budget/MobileBudgetTable.js b/packages/desktop-client/src/components/budget/MobileBudgetTable.js index 986476f7a3e..48d3e0094b4 100644 --- a/packages/desktop-client/src/components/budget/MobileBudgetTable.js +++ b/packages/desktop-client/src/components/budget/MobileBudgetTable.js @@ -158,7 +158,6 @@ function BudgetCell({ alignItems: 'flex-end', height: ROW_HEIGHT, }} - onPointerDown={onAmountClick} > e.preventDefault()} /> )} @@ -370,7 +371,6 @@ const ExpenseCategory = memo(function ExpenseCategory({ onEdit?.(category.id)} style={{ ...(showEditables && { display: 'none' }), flex: 1 }} > onEdit?.(category.id)} data-testid="category-name" > {category.name} @@ -438,7 +439,8 @@ const ExpenseCategory = memo(function ExpenseCategory({ > onOpenBudgetActionMenu?.(category.id)} + onPointerUp={() => onOpenBudgetActionMenu?.(category.id)} + onPointerDown={e => e.preventDefault()} > onEdit?.(group.id)} style={{ ...(showEditables && { display: 'none' }), flex: 1 }} > onEdit?.(group.id)} data-testid="name" > {group.name} @@ -910,7 +912,6 @@ const IncomeGroupTotals = memo(function IncomeGroupTotals({ alignItems: 'flex-start', height: ROW_HEIGHT, }} - onPointerDown={() => onEdit?.(group.id)} > onEdit?.(group.id)} data-testid="name" > {group.name} @@ -1106,7 +1108,6 @@ const IncomeCategory = memo(function IncomeCategory({ alignItems: 'flex-start', height: ROW_HEIGHT, }} - onPointerDown={() => onEdit?.(category.id)} > onEdit?.(category.id)} data-testid="name" > {category.name} diff --git a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx index 2b7bc06bc36..6c1e725826c 100644 --- a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx +++ b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx @@ -31,6 +31,7 @@ function CellValue({ getStyle, privacyFilter, 'data-testid': testId, + ...props }: CellValueProps) { let { fullSheetName } = useSheetName(binding); let sheetValue = useSheetValue(binding); @@ -54,6 +55,7 @@ function CellValue({ }} data-testid={testId || fullSheetName} data-cellname={fullSheetName} + {...props} > {formatter ? formatter(sheetValue) : format(sheetValue, type)} diff --git a/upcoming-release-notes/1844.md b/upcoming-release-notes/1844.md new file mode 100644 index 00000000000..7fa37ec9d69 --- /dev/null +++ b/upcoming-release-notes/1844.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [joel-jeremy] +--- + +Mobile: Fix mobile budget click handlers From e56cb4bc85bdc6a583b46479e25012d1c66d51bd Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins Date: Fri, 3 Nov 2023 18:33:12 +0000 Subject: [PATCH 05/12] :bug: fix: add missing top border for budget menu icon (#1855) * :bug: fix: add missing top border for budget menu icon * Release notes --- .../src/components/budget/rollover/rollover-components.tsx | 5 +++-- upcoming-release-notes/1855.md | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 upcoming-release-notes/1855.md diff --git a/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx b/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx index a15f06b76e3..4d59ce95874 100644 --- a/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx +++ b/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx @@ -187,9 +187,10 @@ export const ExpenseCategoryMonth = memo(function ExpenseCategoryMonth({