From efaefcfaa90faf57d07a77e172954f37dbcd7ca2 Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins Date: Fri, 22 Dec 2023 19:13:49 +0000 Subject: [PATCH 1/8] :recycle: (typescript) moving DeleteFile modal to TS (#2112) --- .../{DeleteFile.jsx => DeleteFile.tsx} | 57 +++++++++++-------- .../loot-core/src/types/server-handlers.d.ts | 5 +- upcoming-release-notes/2112.md | 6 ++ 3 files changed, 44 insertions(+), 24 deletions(-) rename packages/desktop-client/src/components/manager/{DeleteFile.jsx => DeleteFile.tsx} (76%) create mode 100644 upcoming-release-notes/2112.md diff --git a/packages/desktop-client/src/components/manager/DeleteFile.jsx b/packages/desktop-client/src/components/manager/DeleteFile.tsx similarity index 76% rename from packages/desktop-client/src/components/manager/DeleteFile.jsx rename to packages/desktop-client/src/components/manager/DeleteFile.tsx index a801fa346af..43673c3245d 100644 --- a/packages/desktop-client/src/components/manager/DeleteFile.jsx +++ b/packages/desktop-client/src/components/manager/DeleteFile.tsx @@ -1,35 +1,46 @@ import React, { useState } from 'react'; +import { type File } from 'loot-core/src/types/file'; + +import { type BoundActions } from '../../hooks/useActions'; import { theme } from '../../style'; +import { type CommonModalProps } from '../../types/modals'; import { ButtonWithLoading } from '../common/Button'; import Modal from '../common/Modal'; import Text from '../common/Text'; import View from '../common/View'; -export default function DeleteMenu({ modalProps, actions, file }) { - const [loadingState, setLoadingState] = useState(null); +type DeleteFileProps = { + modalProps: CommonModalProps; + actions: BoundActions; + file: File; +}; - async function onDeleteCloud() { - setLoadingState('cloud'); - await actions.deleteBudget(file.id, file.cloudFileId); - setLoadingState(null); +export default function DeleteFile({ + modalProps, + actions, + file, +}: DeleteFileProps) { + // If the state is "broken" that means it was created by another + // user. The current user should be able to delete the local file, + // but not the remote one + const isCloudFile = 'cloudFileId' in file && file.state !== 'broken'; - modalProps.onBack(); - } + const [loadingState, setLoadingState] = useState<'cloud' | 'local' | null>( + null, + ); - async function onDeleteLocal() { - setLoadingState('local'); - await actions.deleteBudget(file.id); + async function onDelete() { + setLoadingState(isCloudFile ? 'cloud' : 'local'); + await actions.deleteBudget( + 'id' in file ? file.id : undefined, + isCloudFile ? file.cloudFileId : undefined, + ); setLoadingState(null); modalProps.onBack(); } - // If the state is "broken" that means it was created by another - // user. The current user should be able to delete the local file, - // but not the remote one - const isRemote = file.cloudFileId && file.state !== 'broken'; - return ( - {isRemote && ( + {isCloudFile && ( <> This is a hosted file which means it is stored @@ -68,16 +79,16 @@ export default function DeleteMenu({ modalProps, actions, file }) { padding: '10px 30px', fontSize: 14, }} - onClick={onDeleteCloud} + onClick={onDelete} > Delete file from all devices )} - {file.id && ( + {'id' in file && ( <> - {isRemote ? ( + {isCloudFile ? ( You can also delete just the local copy. This will remove all local data and the file will be listed as available for @@ -101,14 +112,14 @@ export default function DeleteMenu({ modalProps, actions, file }) { )} Delete file locally diff --git a/packages/loot-core/src/types/server-handlers.d.ts b/packages/loot-core/src/types/server-handlers.d.ts index cb1f0c8cfe5..1f0d276e496 100644 --- a/packages/loot-core/src/types/server-handlers.d.ts +++ b/packages/loot-core/src/types/server-handlers.d.ts @@ -332,7 +332,10 @@ export interface ServerHandlers { 'close-budget': () => Promise<'ok'>; - 'delete-budget': (arg: { id; cloudFileId? }) => Promise<'ok'>; + 'delete-budget': (arg: { + id?: string; + cloudFileId?: string; + }) => Promise<'ok'>; 'create-budget': (arg: { budgetName?; diff --git a/upcoming-release-notes/2112.md b/upcoming-release-notes/2112.md new file mode 100644 index 00000000000..ed16eda983c --- /dev/null +++ b/upcoming-release-notes/2112.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +TypeScript: moving `DeleteFile` component to TS From 6fbf0fdc1069ef5465a819c564e3d87195c45eea Mon Sep 17 00:00:00 2001 From: Joel Jeremy Marquez Date: Fri, 22 Dec 2023 11:42:40 -0800 Subject: [PATCH 2/8] [ESLint] Enable prefer-const project-wide (#2113) * Enable prefer-const project-wide * Release notes * Fix remaining lint errors --- .eslintrc.js | 50 +------------------ packages/desktop-client/e2e/budget.test.js | 4 +- .../lib/rules/prefer-if-statement.js | 5 +- .../lib/rules/typography.js | 2 +- .../migrations/1632571489012_remove_cache.js | 35 ++++++------- packages/node-libofx/index.js | 4 +- upcoming-release-notes/2113.md | 6 +++ 7 files changed, 33 insertions(+), 73 deletions(-) create mode 100644 upcoming-release-notes/2113.md diff --git a/.eslintrc.js b/.eslintrc.js index 8796c108593..0c2caca16c2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -162,7 +162,7 @@ module.exports = { // Rules disable during TS migration '@typescript-eslint/no-var-requires': 'off', - 'prefer-const': 'off', + 'prefer-const': 'warn', 'prefer-spread': 'off', '@typescript-eslint/no-empty-function': 'off', }, @@ -238,54 +238,6 @@ module.exports = { 'no-restricted-imports': ['off', { patterns: restrictedImportColors }], }, }, - // TODO: Remove this override once we addressed all warnings and enable the rule globally. - { - files: [ - './packages/api/*', - './packages/api/app/**/*', - './packages/crdt/**/*', - './packages/desktop-client/src/*', - './packages/desktop-client/src/components/*', - './packages/desktop-client/src/components/accounts/**/*', - './packages/desktop-client/src/components/autocomplete/**/*', - './packages/desktop-client/src/components/budget/**/*', - './packages/desktop-client/src/components/common/**/*', - './packages/desktop-client/src/components/filters/**/*', - './packages/desktop-client/src/components/gocardless/**/*', - './packages/desktop-client/src/components/manager/**/*', - './packages/desktop-client/src/components/mobile/**/*', - './packages/desktop-client/src/components/modals/**/*', - './packages/desktop-client/src/components/payees/**/*', - './packages/desktop-client/src/components/reports/**/*', - './packages/desktop-client/src/components/responsive/**/*', - './packages/desktop-client/src/components/rules/**/*', - './packages/desktop-client/src/components/schedules/**/*', - './packages/desktop-client/src/components/select/**/*', - './packages/desktop-client/src/components/settings/**/*', - './packages/desktop-client/src/components/sidebar/**/*', - './packages/desktop-client/src/components/spreadsheet/**/*', - './packages/desktop-client/src/components/transactions/**/*', - './packages/desktop-client/src/components/util/**/*', - './packages/desktop-client/src/hooks/**/*', - './packages/desktop-client/src/icons/**/*', - './packages/desktop-client/src/style/**/*', - './packages/desktop-client/src/types/**/*', - './packages/desktop-client/src/util/**/*', - './packages/desktop-electron/**/*', - './packages/eslint-plugin-actual/**/*', - './packages/loot-core/*', - './packages/loot-core/src/client/**/*', - './packages/loot-core/src/mocks/**/*', - './packages/loot-core/src/platform/**/*', - './packages/loot-core/src/server/**/*', - './packages/loot-core/src/shared/**/*', - './packages/loot-core/src/types/**/*', - './packages/loot-core/webpack/**/*', - ], - rules: { - 'prefer-const': 'warn', - }, - }, ], settings: { 'import/resolver': { diff --git a/packages/desktop-client/e2e/budget.test.js b/packages/desktop-client/e2e/budget.test.js index 95404837f5b..630d6d87a76 100644 --- a/packages/desktop-client/e2e/budget.test.js +++ b/packages/desktop-client/e2e/budget.test.js @@ -59,8 +59,8 @@ test.describe('Budget', () => { }); test('clicking on spent amounts opens a transaction page', async () => { - let categoryName = await budgetPage.getCategoryNameForRow(1); - let accountPage = await budgetPage.clickOnSpentAmountForRow(1); + const categoryName = await budgetPage.getCategoryNameForRow(1); + const accountPage = await budgetPage.clickOnSpentAmountForRow(1); expect(page.url()).toContain('/accounts'); expect(await accountPage.accountName.textContent()).toMatch( new RegExp(String.raw`${categoryName} \(\w+ \d+\)`), diff --git a/packages/eslint-plugin-actual/lib/rules/prefer-if-statement.js b/packages/eslint-plugin-actual/lib/rules/prefer-if-statement.js index 386db0590ef..f3584602d2c 100644 --- a/packages/eslint-plugin-actual/lib/rules/prefer-if-statement.js +++ b/packages/eslint-plugin-actual/lib/rules/prefer-if-statement.js @@ -4,7 +4,8 @@ // Rule Definition //------------------------------------------------------------------------------ -let suggestion = 'Consider using an if statement or optional chaining instead.'; +const suggestion = + 'Consider using an if statement or optional chaining instead.'; /** @type {import('eslint').Rule.RuleModule} */ module.exports = { @@ -23,7 +24,7 @@ module.exports = { }, create(context) { - let sourceCode = context.getSourceCode(); + const sourceCode = context.getSourceCode(); //---------------------------------------------------------------------- // Helpers diff --git a/packages/eslint-plugin-actual/lib/rules/typography.js b/packages/eslint-plugin-actual/lib/rules/typography.js index cd32cfc1831..6ee049327db 100644 --- a/packages/eslint-plugin-actual/lib/rules/typography.js +++ b/packages/eslint-plugin-actual/lib/rules/typography.js @@ -34,7 +34,7 @@ module.exports = { let rawText = context.getSourceCode().getText(node); if (strip) rawText = rawText.slice(1, -1); for (const match of rawText.matchAll(/['"]/g)) { - let index = node.range[0] + match.index + (strip ? 1 : 0); + const index = node.range[0] + match.index + (strip ? 1 : 0); context.report({ node, loc: { diff --git a/packages/loot-core/migrations/1632571489012_remove_cache.js b/packages/loot-core/migrations/1632571489012_remove_cache.js index 2f3764c47de..bbd3e213849 100644 --- a/packages/loot-core/migrations/1632571489012_remove_cache.js +++ b/packages/loot-core/migrations/1632571489012_remove_cache.js @@ -31,14 +31,14 @@ CREATE TABLE kvcache_key (id INTEGER PRIMARY KEY, key REAL); `); // Migrate budget amounts and carryover - let budget = db.runQuery( + const budget = db.runQuery( `SELECT * FROM spreadsheet_cells WHERE name LIKE 'budget%!budget-%'`, [], true, ); db.transaction(() => { budget.forEach(monthBudget => { - let match = monthBudget.name.match( + const match = monthBudget.name.match( /^(budget-report|budget)(\d+)!budget-(.+)$/, ); if (match == null) { @@ -46,24 +46,25 @@ CREATE TABLE kvcache_key (id INTEGER PRIMARY KEY, key REAL); return; } - let type = match[1]; - let month = match[2].slice(0, 4) + '-' + match[2].slice(4); - let dbmonth = parseInt(match[2]); - let cat = match[3]; + const type = match[1]; + const month = match[2].slice(0, 4) + '-' + match[2].slice(4); + const dbmonth = parseInt(match[2]); + const cat = match[3]; let amount = parseInt(getValue(monthBudget)); if (isNaN(amount)) { amount = 0; } - let sheetName = monthBudget.name.split('!')[0]; - let carryover = db.runQuery( + const sheetName = monthBudget.name.split('!')[0]; + const carryover = db.runQuery( 'SELECT * FROM spreadsheet_cells WHERE name = ?', [`${sheetName}!carryover-${cat}`], true, ); - let table = type === 'budget-report' ? 'reflect_budgets' : 'zero_budgets'; + const table = + type === 'budget-report' ? 'reflect_budgets' : 'zero_budgets'; db.runQuery( `INSERT INTO ${table} (id, month, category, amount, carryover) VALUES (?, ?, ?, ?, ?)`, [ @@ -78,16 +79,16 @@ CREATE TABLE kvcache_key (id INTEGER PRIMARY KEY, key REAL); }); // Migrate buffers - let buffers = db.runQuery( + const buffers = db.runQuery( `SELECT * FROM spreadsheet_cells WHERE name LIKE 'budget%!buffered'`, [], true, ); db.transaction(() => { buffers.forEach(buffer => { - let match = buffer.name.match(/^budget(\d+)!buffered$/); + const match = buffer.name.match(/^budget(\d+)!buffered$/); if (match) { - let month = match[1].slice(0, 4) + '-' + match[1].slice(4); + const month = match[1].slice(0, 4) + '-' + match[1].slice(4); let amount = parseInt(getValue(buffer)); if (isNaN(amount)) { amount = 0; @@ -102,15 +103,15 @@ CREATE TABLE kvcache_key (id INTEGER PRIMARY KEY, key REAL); }); // Migrate notes - let notes = db.runQuery( + const notes = db.runQuery( `SELECT * FROM spreadsheet_cells WHERE name LIKE 'notes!%'`, [], true, ); - let parseNote = str => { + const parseNote = str => { try { - let value = JSON.parse(str); + const value = JSON.parse(str); return value && value !== '' ? value : null; } catch (e) { return null; @@ -119,9 +120,9 @@ CREATE TABLE kvcache_key (id INTEGER PRIMARY KEY, key REAL); db.transaction(() => { notes.forEach(note => { - let parsed = parseNote(getValue(note)); + const parsed = parseNote(getValue(note)); if (parsed) { - let [, id] = note.name.split('!'); + const [, id] = note.name.split('!'); db.runQuery(`INSERT INTO notes (id, note) VALUES (?, ?)`, [id, parsed]); } }); diff --git a/packages/node-libofx/index.js b/packages/node-libofx/index.js index 50b2a203e7e..8c8939325bf 100644 --- a/packages/node-libofx/index.js +++ b/packages/node-libofx/index.js @@ -5,7 +5,7 @@ let _libofxPromise; let _libofx; let ffi; -let parser = { +const parser = { ctx: null, transactions: [], @@ -61,7 +61,7 @@ export async function initModule() { export function getOFXTransactions(data) { ffi.parse_data(parser.ctx, data); - let transactions = parser.transactions; + const transactions = parser.transactions; parser.reset(); return transactions; } diff --git a/upcoming-release-notes/2113.md b/upcoming-release-notes/2113.md new file mode 100644 index 00000000000..b78ebabc777 --- /dev/null +++ b/upcoming-release-notes/2113.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +Enable prefer-const ESLint rule project-wide From 7a8c320560f8995b63bfda488b89f95e9875a0d3 Mon Sep 17 00:00:00 2001 From: Neil <55785687+carkom@users.noreply.github.com> Date: Fri, 22 Dec 2023 20:31:36 +0000 Subject: [PATCH 3/8] Custom Reports Donut Graph refactor (#2098) * donut refactor * notes * fixes --- .../components/reports/graphs/DonutGraph.tsx | 147 ++++++++++-------- upcoming-release-notes/2098.md | 6 + 2 files changed, 92 insertions(+), 61 deletions(-) create mode 100644 upcoming-release-notes/2098.md diff --git a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx index f377a48e92b..5599fb5c733 100644 --- a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx @@ -1,67 +1,87 @@ -import React from 'react'; +import React, { useState } from 'react'; -import { css } from 'glamor'; -import { PieChart, Pie, Cell, Tooltip, ResponsiveContainer } from 'recharts'; +import { PieChart, Pie, Cell, Sector, ResponsiveContainer } from 'recharts'; -import { amountToCurrency } from 'loot-core/src/shared/util'; - -import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import Text from '../../common/Text'; -import PrivacyFilter from '../../PrivacyFilter'; import Container from '../Container'; import { type DataEntity } from '../entities'; -import numberFormatterTooltip from '../numberFormatter'; - -type PayloadItem = { - name: string; - value: string; - color: string; - payload: { - date: string; - assets: number | string; - debt: number | string; - networth: number | string; - change: number | string; - fill: string; - }; -}; -type CustomTooltipProps = { - active?: boolean; - payload?: PayloadItem[]; - label?: string; -}; +const RADIAN = Math.PI / 180; +const ActiveShape = props => { + const { + cx, + cy, + midAngle, + innerRadius, + outerRadius, + startAngle, + endAngle, + fill, + payload, + percent, + value, + } = props; + const yAxis = payload.name ?? payload.date; + const sin = Math.sin(-RADIAN * midAngle); + const cos = Math.cos(-RADIAN * midAngle); + const sx = cx + (innerRadius - 10) * cos; + const sy = cy + (innerRadius - 10) * sin; + const mx = cx + (innerRadius - 30) * cos; + const my = cy + (innerRadius - 30) * sin; + const ex = cx + (cos >= 0 ? 1 : -1) * yAxis.length * 4; + const ey = cy + 8; + const textAnchor = cos <= 0 ? 'start' : 'end'; -const CustomTooltip = ({ active, payload, label }: CustomTooltipProps) => { - if (active && payload && payload.length) { - return ( -
+ + + + + {`${yAxis}`} + {`${value.toFixed(2)}`} + -
-
- {payload[0].name} -
-
- - - {amountToCurrency(payload[0].value)} - - -
-
-
- ); - } + {`(${(percent * 100).toFixed(2)}%)`} +
+ + ); }; type DonutGraphProps = { @@ -90,6 +110,12 @@ function DonutGraph({ } }; + const [activeIndex, setActiveIndex] = useState(0); + + const onPieEnter = (_, index) => { + setActiveIndex(index); + }; + return ( {!compact &&
} - } - formatter={numberFormatterTooltip} - isAnimationActive={false} - /> getVal(val)} nameKey={yAxis} isAnimationActive={false} data={data[splitData]} innerRadius={Math.min(width, height) * 0.2} fill="#8884d8" + labelLine={false} + onMouseEnter={onPieEnter} > {data.legend.map((entry, index) => ( diff --git a/upcoming-release-notes/2098.md b/upcoming-release-notes/2098.md new file mode 100644 index 00000000000..fcfa29d54d6 --- /dev/null +++ b/upcoming-release-notes/2098.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [carkom] +--- + +Changing the view and functions for donut graph in custom reports. From c6723da7808062db511b051780269784fce01b0b Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins Date: Fri, 22 Dec 2023 21:20:29 +0000 Subject: [PATCH 4/8] :recycle: (TypeScript) fix strictFunctionTypes violations (pt 4) (#2071) --- .../src/components/common/Menu.tsx | 10 +- .../src/components/payees/PayeeTable.tsx | 99 ++-- .../components/schedules/SchedulesTable.tsx | 2 +- .../desktop-client/src/components/table.tsx | 498 +++++++++--------- .../transactions/TransactionsTable.jsx | 2 +- .../src/server/sync/sync.property.test.ts | 2 +- upcoming-release-notes/2071.md | 6 + 7 files changed, 309 insertions(+), 310 deletions(-) create mode 100644 upcoming-release-notes/2071.md diff --git a/packages/desktop-client/src/components/common/Menu.tsx b/packages/desktop-client/src/components/common/Menu.tsx index 1d0258cd77e..eb5efa66c66 100644 --- a/packages/desktop-client/src/components/common/Menu.tsx +++ b/packages/desktop-client/src/components/common/Menu.tsx @@ -33,19 +33,19 @@ type MenuItem = { key?: string; }; -type MenuProps = { +type MenuProps = { header?: ReactNode; footer?: ReactNode; - items: Array; - onMenuSelect: (itemName: MenuItem['name']) => void; + items: Array; + onMenuSelect: (itemName: T['name']) => void; }; -export default function Menu({ +export default function Menu({ header, footer, items: allItems, onMenuSelect, -}: MenuProps) { +}: MenuProps) { const elRef = useRef(null); const items = allItems.filter(x => x); const [hoveredIndex, setHoveredIndex] = useState(null); diff --git a/packages/desktop-client/src/components/payees/PayeeTable.tsx b/packages/desktop-client/src/components/payees/PayeeTable.tsx index b376752ae30..c7504d76cfe 100644 --- a/packages/desktop-client/src/components/payees/PayeeTable.tsx +++ b/packages/desktop-client/src/components/payees/PayeeTable.tsx @@ -1,10 +1,8 @@ import { - forwardRef, useCallback, useLayoutEffect, useState, type ComponentProps, - type ComponentRef, } from 'react'; import { type PayeeEntity } from 'loot-core/src/types/models'; @@ -20,6 +18,7 @@ import PayeeTableRow from './PayeeTableRow'; type PayeeWithId = PayeeEntity & Required>; type PayeeTableProps = { + tableRef: ComponentProps>['tableRef']; payees: PayeeWithId[]; ruleCounts: Map; navigator: TableNavigator; @@ -28,56 +27,56 @@ type PayeeTableProps = { 'onUpdate' | 'onViewRules' | 'onCreateRule' >; -const PayeeTable = forwardRef< - ComponentRef>, - PayeeTableProps ->( - ( - { payees, ruleCounts, navigator, onUpdate, onViewRules, onCreateRule }, - ref, - ) => { - const [hovered, setHovered] = useState(null); - const selectedItems = useSelectedItems(); +const PayeeTable = ({ + tableRef, + payees, + ruleCounts, + navigator, + onUpdate, + onViewRules, + onCreateRule, +}: PayeeTableProps) => { + const [hovered, setHovered] = useState(null); + const selectedItems = useSelectedItems(); - useLayoutEffect(() => { - const firstSelected = [...selectedItems][0] as string; - if (typeof ref !== 'function') { - ref.current.scrollTo(firstSelected, 'center'); - } - navigator.onEdit(firstSelected, 'select'); - }, []); + useLayoutEffect(() => { + const firstSelected = [...selectedItems][0] as string; + if (typeof tableRef !== 'function') { + tableRef.current.scrollTo(firstSelected, 'center'); + } + navigator.onEdit(firstSelected, 'select'); + }, []); - const onHover = useCallback(id => { - setHovered(id); - }, []); + const onHover = useCallback((id: string) => { + setHovered(id); + }, []); - return ( - setHovered(null)}> - - ref={ref} - items={payees} - navigator={navigator} - renderItem={({ item, editing, focusedField, onEdit }) => { - return ( - - ); - }} - /> - - ); - }, -); + return ( + setHovered(null)}> + { + return ( + + ); + }} + /> + + ); +}; export default PayeeTable; diff --git a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx index 149cb6fd188..e7c2574936c 100644 --- a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx +++ b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx @@ -118,7 +118,7 @@ function OverflowMenu({ onClose={() => setOpen(false)} > { + onMenuSelect={name => { onAction(name, schedule.id); setOpen(false); }} diff --git a/packages/desktop-client/src/components/table.tsx b/packages/desktop-client/src/components/table.tsx index 92e2e833a47..ddf274b1b50 100644 --- a/packages/desktop-client/src/components/table.tsx +++ b/packages/desktop-client/src/components/table.tsx @@ -11,7 +11,6 @@ import React, { type ReactNode, type KeyboardEvent, type UIEvent, - type ReactElement, type Ref, } from 'react'; import { useStore } from 'react-redux'; @@ -847,17 +846,18 @@ type TableHandleRef = { type TableWithNavigatorProps = TableProps & { fields; }; -export const TableWithNavigator = forwardRef< - TableHandleRef, - TableWithNavigatorProps ->(({ fields, ...props }, ref) => { +export const TableWithNavigator = ({ + fields, + ...props +}: TableWithNavigatorProps) => { const navigator = useTableNavigator(props.items, fields); return
; -}); +}; type TableItem = { id: number | string }; type TableProps = { + tableRef?: Ref>; items: T[]; count?: number; headers?: ReactNode | TableHeaderProps['headers']; @@ -886,282 +886,276 @@ type TableProps = { saveScrollWidth?: (parent, child) => void; }; -export const Table: ( - props: TableProps & { ref?: Ref> }, -) => ReactElement = forwardRef( - ( - { - items, - count, - headers, - contentHeader, - loading, - rowHeight = ROW_HEIGHT, - backgroundColor = theme.tableHeaderBackground, - renderItem, - renderEmpty, - getItemKey, - loadMore, - style, - navigator, - onScroll, - version = 'v1', - allowPopupsEscape, - isSelected, - saveScrollWidth, - ...props - }, - ref, - ) => { - if (!navigator) { - navigator = { - onEdit: () => {}, - editingId: null, - focusedField: null, - getNavigatorProps: props => props, - }; - } - - const { onEdit, editingId, focusedField, getNavigatorProps } = navigator; - const list = useRef(null); - const listContainer = useRef(null); - const scrollContainer = useRef(null); - const initialScrollTo = useRef(null); - const listInitialized = useRef(false); - - useImperativeHandle(ref, () => ({ - scrollTo: (id, alignment = 'smart') => { - const index = items.findIndex(item => item.id === id); - if (index !== -1) { - if (!list.current) { - // If the table hasn't been laid out yet, we need to wait for - // that to happen before we can scroll to something - initialScrollTo.current = index; - } else { - list.current.scrollToItem(index, alignment); - } - } - }, - - scrollToTop: () => { - list.current?.scrollTo(0); - }, +export const Table = ({ + tableRef, + items, + count, + headers, + contentHeader, + loading, + rowHeight = ROW_HEIGHT, + backgroundColor = theme.tableHeaderBackground, + renderItem, + renderEmpty, + getItemKey, + loadMore, + style, + navigator, + onScroll, + version = 'v1', + allowPopupsEscape, + isSelected, + saveScrollWidth, + ...props +}: TableProps) => { + if (!navigator) { + navigator = { + onEdit: () => {}, + editingId: null, + focusedField: null, + getNavigatorProps: props => props, + }; + } - getScrolledItem: () => { - if (scrollContainer.current) { - const offset = scrollContainer.current.scrollTop; - const index = list.current.getStartIndexForOffset(offset); - return items[index].id; + const { onEdit, editingId, focusedField, getNavigatorProps } = navigator; + const list = useRef(null); + const listContainer = useRef(null); + const scrollContainer = useRef(null); + const initialScrollTo = useRef(null); + const listInitialized = useRef(false); + + useImperativeHandle(tableRef, () => ({ + scrollTo: (id, alignment = 'smart') => { + const index = items.findIndex(item => item.id === id); + if (index !== -1) { + if (!list.current) { + // If the table hasn't been laid out yet, we need to wait for + // that to happen before we can scroll to something + initialScrollTo.current = index; + } else { + list.current.scrollToItem(index, alignment); } - return 0; - }, - - setRowAnimation: flag => { - list.current?.setRowAnimation(flag); - }, + } + }, - edit(id, field, shouldScroll) { - onEdit(id, field); + scrollToTop: () => { + list.current?.scrollTo(0); + }, - if (id && shouldScroll) { - // @ts-expect-error this should not be possible - ref.scrollTo(id); - } - }, + getScrolledItem: () => { + if (scrollContainer.current) { + const offset = scrollContainer.current.scrollTop; + const index = list.current.getStartIndexForOffset(offset); + return items[index].id; + } + return 0; + }, - anchor() { - list.current?.anchor(); - }, + setRowAnimation: flag => { + list.current?.setRowAnimation(flag); + }, - unanchor() { - list.current?.unanchor(); - }, + edit(id, field, shouldScroll) { + onEdit(id, field); - isAnchored() { - return list.current && list.current.isAnchored(); - }, - })); - - useLayoutEffect(() => { - // We wait for the list to mount because AutoSizer needs to run - // before it's mounted - if (!listInitialized.current && listContainer.current) { - // Animation is on by default - list.current?.setRowAnimation(true); - listInitialized.current = true; + if (id && shouldScroll) { + // @ts-expect-error this should not be possible + ref.scrollTo(id); } + }, - if (scrollContainer.current && saveScrollWidth) { - saveScrollWidth( - scrollContainer.current.offsetParent - ? scrollContainer.current.offsetParent.clientWidth - : 0, - scrollContainer.current ? scrollContainer.current.clientWidth : 0, - ); - } - }); + anchor() { + list.current?.anchor(); + }, - function renderRow({ index, style, key }) { - const item = items[index]; - const editing = editingId === item.id; - const selected = isSelected && isSelected(item.id); - - const row = renderItem({ - item, - editing, - focusedField: editing && focusedField, - onEdit, - index, - position: style.top, - }); - - // TODO: Need to also apply zIndex if item is selected - // * Port over ListAnimation to Table - // * Move highlighted functionality into here - return ( - - {row} - - ); + unanchor() { + list.current?.unanchor(); + }, + + isAnchored() { + return list.current && list.current.isAnchored(); + }, + })); + + useLayoutEffect(() => { + // We wait for the list to mount because AutoSizer needs to run + // before it's mounted + if (!listInitialized.current && listContainer.current) { + // Animation is on by default + list.current?.setRowAnimation(true); + listInitialized.current = true; } - function getScrollOffset(height, index) { - return ( - index * (rowHeight - 1) + - (rowHeight - 1) / 2 - - height / 2 + - (rowHeight - 1) * 2 + if (scrollContainer.current && saveScrollWidth) { + saveScrollWidth( + scrollContainer.current.offsetParent + ? scrollContainer.current.offsetParent.clientWidth + : 0, + scrollContainer.current ? scrollContainer.current.clientWidth : 0, ); } + }); - function onItemsRendered({ overscanStartIndex, overscanStopIndex }) { - if (loadMore && overscanStopIndex > items.length - 100) { - loadMore(); - } - } + function renderRow({ index, style, key }) { + const item = items[index]; + const editing = editingId === item.id; + const selected = isSelected && isSelected(item.id); - function getEmptyContent(empty) { - if (empty == null) { - return null; - } else if (typeof empty === 'function') { - return empty(); - } + const row = renderItem({ + item, + editing, + focusedField: editing && focusedField, + onEdit, + index, + position: style.top, + }); - return ( - - {empty} - - ); - } + // TODO: Need to also apply zIndex if item is selected + // * Port over ListAnimation to Table + // * Move highlighted functionality into here + return ( + + {row} + + ); + } - if (loading) { - return ( - - - - ); + function getScrollOffset(height, index) { + return ( + index * (rowHeight - 1) + + (rowHeight - 1) / 2 - + height / 2 + + (rowHeight - 1) * 2 + ); + } + + function onItemsRendered({ overscanStartIndex, overscanStopIndex }) { + if (loadMore && overscanStopIndex > items.length - 100) { + loadMore(); } + } - const isEmpty = (count || items.length) === 0; + function getEmptyContent(empty) { + if (empty == null) { + return null; + } else if (typeof empty === 'function') { + return empty(); + } return ( - {headers && ( - - )} - - {isEmpty ? ( - getEmptyContent(renderEmpty) - ) : ( - - {({ width, height }) => { - if (width === 0 || height === 0) { - return null; - } + {empty} + + ); + } - return ( - - - items[index].id) - } - indexForKey={key => - items.findIndex(item => item.id === key) - } - initialScrollOffset={ - initialScrollTo.current - ? getScrollOffset(height, initialScrollTo.current) - : 0 - } - overscanCount={5} - onItemsRendered={onItemsRendered} - onScroll={onScroll} - /> - - - ); - }} - - )} - + if (loading) { + return ( + + ); - }, -); + } + + const isEmpty = (count || items.length) === 0; + + return ( + + {headers && ( + + )} + + {isEmpty ? ( + getEmptyContent(renderEmpty) + ) : ( + + {({ width, height }) => { + if (width === 0 || height === 0) { + return null; + } + + return ( + + + items[index].id) + } + indexForKey={key => + items.findIndex(item => item.id === key) + } + initialScrollOffset={ + initialScrollTo.current + ? getScrollOffset(height, initialScrollTo.current) + : 0 + } + overscanCount={5} + onItemsRendered={onItemsRendered} + onScroll={onScroll} + /> + + + ); + }} + + )} + + + ); +}; export type TableNavigator = { onEdit: (id: T['id'], field?: string) => void; diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.jsx b/packages/desktop-client/src/components/transactions/TransactionsTable.jsx index a1009c1aaca..5c04a9289e7 100644 --- a/packages/desktop-client/src/components/transactions/TransactionsTable.jsx +++ b/packages/desktop-client/src/components/transactions/TransactionsTable.jsx @@ -1722,7 +1722,7 @@ function TransactionTableInner({ >
>({ value, timestamp: jsc.integer(1000, 10000).smap( x => { - let clientId; + let clientId: string; switch (jsc.random(0, 1)) { case 0: clientId = clientId1; diff --git a/upcoming-release-notes/2071.md b/upcoming-release-notes/2071.md new file mode 100644 index 00000000000..e443cc99adc --- /dev/null +++ b/upcoming-release-notes/2071.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.4). From 489411880982bf79315f84ee9647cc1b158cf9b3 Mon Sep 17 00:00:00 2001 From: Joel Jeremy Marquez Date: Fri, 22 Dec 2023 13:53:39 -0800 Subject: [PATCH 5/8] Mobile split transactions (#2068) * Mobile split transactions * Release notes * Fix colors * Update test ids * AmountInput component on split transactions * Add notes to mobile split transaction * Ease of use improvements + functional components * Ease of use updates * VRT updates * Fix AmountInput blur * Remove negative state in AmountInput + fix vrt --- packages/desktop-client/e2e/mobile.test.js | 4 + ...from-accounts-id-page-1-chromium-linux.png | Bin 19112 -> 19028 bytes ...from-accounts-id-page-2-chromium-linux.png | Bin 19536 -> 19350 bytes ...ion-via-footer-button-1-chromium-linux.png | Bin 17490 -> 17401 bytes ...ion-via-footer-button-2-chromium-linux.png | Bin 17894 -> 17711 bytes ...ion-via-footer-button-3-chromium-linux.png | Bin 20314 -> 20317 bytes ...ion-via-footer-button-4-chromium-linux.png | Bin 20565 -> 20633 bytes .../desktop-client/src/components/Modals.tsx | 1 + .../components/budget/MobileBudgetTable.jsx | 4 +- .../components/mobile/MobileAmountInput.jsx | 438 ++--- .../src/components/mobile/MobileForms.jsx | 5 +- .../src/components/modals/EditField.jsx | 10 +- .../src/components/schedules/EditSchedule.jsx | 4 +- .../transactions/MobileTransaction.jsx | 1660 ++++++++++------- .../src/components/util/AmountInput.tsx | 86 +- .../src/hooks/useSingleActiveEditForm.tsx | 125 ++ .../src/client/state-types/modals.d.ts | 1 + upcoming-release-notes/2068.md | 6 + 18 files changed, 1356 insertions(+), 988 deletions(-) create mode 100644 packages/desktop-client/src/hooks/useSingleActiveEditForm.tsx create mode 100644 upcoming-release-notes/2068.md diff --git a/packages/desktop-client/e2e/mobile.test.js b/packages/desktop-client/e2e/mobile.test.js index fa53ecd5152..b67a03e4243 100644 --- a/packages/desktop-client/e2e/mobile.test.js +++ b/packages/desktop-client/e2e/mobile.test.js @@ -83,6 +83,8 @@ test.describe('Mobile', () => { await expect(transactionEntryPage.header).toHaveText('New Transaction'); await transactionEntryPage.amountField.fill('12.34'); + // Click anywhere to cancel active edit. + await transactionEntryPage.header.click(); await transactionEntryPage.fillField( page.getByTestId('payee-field'), 'Kroger', @@ -114,6 +116,8 @@ test.describe('Mobile', () => { await expect(page).toMatchThemeScreenshots(); await transactionEntryPage.amountField.fill('12.34'); + // Click anywhere to cancel active edit. + await transactionEntryPage.header.click(); await transactionEntryPage.fillField( page.getByTestId('payee-field'), 'Kroger', diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-from-accounts-id-page-1-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-from-accounts-id-page-1-chromium-linux.png index 109397af4d87b9d517562e55791d9301490c205d..71c34be4250eb6f6bab7ca82e2b43ef17915e459 100644 GIT binary patch literal 19028 zcmd741yEe?mM_}41-AqZP9V4woDS~pZowhAy97&+;2tEnySqzpcXxMqn{&?0{A=db zJ!jtB`|4J86~*q|{jI&eWxwBAUx&)ch$186A%Z|4WN|UD0tf`50|G&+!NUSqXp$n6 zfIkpl6-0$VB_jlTAkce|I9O20CFO9*R8MiL6ZVwK-EsUUh2Nq2cM{3#Tm$8w1Jo@8 zI9I4y?-ADp(9yJf1{CDcjIaVKpfzep;rpVSKNRNBK2W;yV?k!pi7#AM#qQjMF1jCc z?dbfWqS}e<%XOA=@C^wG_<`#H7ZO6m{ziwCwEb-p80^R75*h++c#46J(6dTGiV@x} z2_}E*A0Hyd2+M%}L+^imW5U=fGWCbxOwP)*5F+aig)uaG(Rf+pkViFCtM5`umEb^` zdJze%(%g@`)^ZRS=dCvI@f&;Mu+XtXeRm`2Z_C!N9MGk4KRl_zb;fQA4VAH~{b7Ew z6{}5zpjMIbt(VQi5;!^DZRMWLvxixdMc==fZcAD37*|VnS3i)4UF4zCpA!2GauRok>}(Te!00-O|R+rW1Eh=;NZ;a z6z(8FgI&xpXEWQwDvVDolFZ|csK~oGm7oe)>QitP?7YBgDc8@(!*i%i10?K`BZalg z>5g|s3$5(#O(oOv$P?10xm&1(owP+TOE5HgcQ{S=2KEk#zi!}{q|=jZo$_wV#2UA| zGPj(UQ{cRy+`NcGXpSaPJx?_zwB)`RyV&QWsG^87QY^jHN?_Au93$Z=S^gFgu;Y>v zmr0p7?|uG^BUX!Iw^c(^<)#?L%dcstXV-J4{KdB=%%3D43hDk=M|9G-Olle)tA}{l zk!~_egyq-lmwi3pY1>vVKAQ0e1ZRkDCakc)L}SC3{t^Hb5uh9`j7cr}M;!q!e!MX4kDu&Z^jh_hi^=4F#6!^?(_rdCA||D&k6AJpsZ1~EH)w|^)> z`B%)7QPUY7ir7_x_P@03SH~pqWh{sCOTBE6_phcQLEqvOGXOabHO<=jk&2J`7`(4W z9Fip%gr9WqVr_E$=)sYfg)#&ymYwa!Ds{(r1P=|ZN_AU<{nZPZ_?ICa&4*E_o=8hY zoD^-*X^w45W+g(CtWfuK2qL9-f@a)mNO2>TQe$NHRfO51E4uz;HeVRIy)6Y?j6eUp zf)KD(=emE!3m{s7!)d_u%}tg$)YkK*lndIn**(!zDFLP3Px>@4n3K$DaaMMs6pjb> zx|@&P8A5H=qO@;$zWW-HLv~CM6I~tq?!Z{!cgUyo(HwK*$A>>&FT=9tkXvR~KZ$;; zrf^mcqr_vv7iS2>_d`(6h=pz<$)v1UiS}h9R^exh-cczNEfhL3R}mKmQ()J52>4~z z5y-X_2-o*G-!D0op+wzGw&}x-99Ib!$7gQA6VlYwDaMyt(M$@&i^EQS`_qzCAf7?#5S!l{>UJ&9Gd?HR_Q4J`WB4?E8cJenr!4LaeU1@ zb<*s)0VQss!0x#;+&E6-x4yU?$@Uein2G>CwQ%sw6+AV?s9iGps5zR3pl`N?InT<$Ef-{jT<>wSp^BfI8p zA5ll^nIvg!^+K`X;x+Y~9e?uwvh?Yt@&+8l%-=}u!kQc7dHAhe%F+jtb4)0jTKTnf z80UQ@b03rqa+7fMF9?B`&>={(=Yj9ETM@w7&)iz`3?xSq+bt^A#ePeh9V`6q zUV2AQ{eJtYQ`8G$d(Q=)uIT|GC5QpaD(m-52ox5ywpSrg^m#}*HW4nJG&C90gSPgS z-mQOfb-%g=(1TLKD>sZ%c9<0n#0MeIjKHb`V`j z!}nJuirOD7wX2$)ekI+7qA>-Sc+A_Kk_~eiC;cOLk=<|o%zRDur$1Y@SC(~;CwHo# z+;P>$w^%4>s^r|EOaErF-l9#+0+~Y(su%cq1hcKw8`9MAgK|Yp1l5gS&dhizRGQaznIUnK+NNdp8>G(o1HsU1Gv94M|_iaJeI9S?@PFr{DT*)Q~EeZd~3^_E59^DuSe29?JqFQxG`4-^zlL zX+&yEr8;N^e8fq6j-twM%gvKSJno zk+a$VbT~$EAO?>b+}Csq^aa z&HoUjHRbFUMi@#pA@@5DF^5zs|6PtCSQXjH%fcx=c0fM)IqjaogGD1Y>XENES^3uK zZRx1p?ealKu~isvF7$WwrlX!+J?fIS`I|pKY{wwtF+)=Hd`KQg#70uq1NbIu*=wZO z*826`stAiazj6GjY!c5bn|rQ)r)>(o8fs>h`@>Mf4@xkKy6oT+3xSRa96?RE4H|_7 zjqODWh7*hJlbT4|d^mkL{T#m(xI+2dJ?{2qX{>sjX?o@X(hD^^~`PU$XpmqBykBev3H&{45 zU@9k1(;%U^@)ze%mBM}sP(0|xS86)-5r|7B&>3!~qbIq5AOgWjGK^oW9F%Tc?_4^4Sa30cg9y$xuy_9SeApLxeO7oG^?u(lnRi;{jw)}auO9dw-H`!Vcth?FG)oJme z*lc%BPvRTaxWwI8(#?M8kUXsQ0OE$gelaL`pdJcPV)N3l-$IK{*;BgyiwS0O7RGiopl+ zRbv6G?`!AU6A1Ayai?k%kBKY8BXinLN?-CsW^5qsjuM~*bBur;UhC_Qr`&L)`uJNW z)+WhrPk-JRS7KU80F(OS_T{R2SeOY%$ubi>Om7~WpDVCWK_$Uo5&+~z{v9=*T;!7U z?{XEn7^!@$t9|CQ^pB}`w}juyGlY;R%tgM)W#wXgz)hi+m-cP@W1ljozY~Y}S*|4w zcG!G#!6X(1TXXs4<7+j8*P8WtL$%6mRyOQhw&43|X~69GUY+anh%KpC62gwNWd4{? zM8T0VXVbtp3sGKCBOsorT{&^n6MmP=X~wHgnpLsI$9b9z17v*cZo0>dfg@7v(f{ec>MxG&i>nqghbg(Yz+CFj=_sP=s^41OmWroZG z?%8O2_T0~UH!_3>(uYiWBYxIHf{1x59oyF9+x4;(V(2VOMwbt|MQZp_Zq3>)?B(m+F!xzY_Pm?GZO+IG*2Z z#DadMB+&tzIols;%ELMDS;M>YS?PTF>ge8z-zyAV7NtB<^he3UIZ7QFGX?_bC1!KK zAhzkX60^Pbs_-U%%fqC5urWA)64|7BqjTQ4Rc;qzIYY2TL>F;xJow(amniDWzWxmZ z-vmVKGTXi*XNp>rIoZ9_$)S!(javE1syA@^M@4+uYKx#F?~_rxm7a*VKCP$(?f32? z(_m62m;Tbj=m0>>Q>oscAfNn5IITX4 zehKC%k#aJ=pSad15v+4%Ve5TDLS)rj|5U2qf&0~VOT!?tmg*c1(8SdJt+tqi%;%HL zlPtkrzFXVQfBvvk$0VeD zGwAjMftV9NE<77mm*_Vqxv*CtFF#nqYLyV2kjkgMif+JR-Mb*1UGCfodAL*tg4@8! zHY}u6tEcBvoa0*}D|fgOA>j8!p&Hc^=$)44ojw3mTBuEUu+A)tRJ7CtHH<$E1HwW= z@ar}obf`EI>TnDQ3^JM<<+yJRiJf#9(#1<&(54t*1D<6#?m+z3;)DcTV{u&0Q(!3B zRTLI{khW$VL4z%q>mdHd+Z(TeZwkjej#)944DP1qvOcWLWCCTD0zo7O<|}Sd+cf`+ z;LGwTBna}28_!h9JCX48Alh1bmQPOm1eBw<=nQ-_OoJ^2$`T&z*N#P6wcW&xGO=X9 zt|za|bZ6W7!(*Xd5E!%DXyKYv!Zh9xj#NpfTc_H6Si{o^F;6#6jhZP4+QSqzyh|E3 zyIT}+IA(hzDx22LFhTYHv1I%Z&IVbeImCST;hvNA+hK4m-#rEc&jR|Bn?rw1YusRb z_o-mBeSIyso{D9Ge8e6d9ia>T-}xBk^x+IRjeBJ{lo#`^vnfjQwC_ze0)Z-O*c1hP z#iGSJ0KuY!<>1^G#o4PF@JrWGZ+Hx>WR@cwVR{K)T0p-`FHf|{Y27)#BF$OZ9iG>M zYZaxHt6=2)d*~9){-N!f0pzLQIh*C6167sDLNBg9BmS!-(p%za;k)%Hes;sX=(mp# zC;Go~b4jVG;T`uUJ1$0@MH{b+k+kti? zxV@s*SS%b|lW=}VHD+E7vm6xieBWsrmC||oH3~=VVN(})xL+CmGh6m+Q<W$uF3hDl4u|;MRCI!>$l#Km;Ckn`J+2T9s^znS4kKVX${-MMsRqCaz2# z=E_J4GKgAn8(k`ir=6?|B#=F>HxP?Jt=)hHT3tx2Tyx+?`h|@CL@|KkAOC1@vg}!B zyG9Di@P3KUm^rBUXv+BZ^qh7aB2*v33r15TCjKB|t`2(mH!#KEI(o3IR69nQ; zwc&WT>-dhU@*|FwD+BhzhK(2@TuwFHV*Yw)T1BSb4J&{oBC7a>8Wbh z?koTOkx5xuv3yRxW^k04#v-Aj(*9-r3S*WuGTZG#uJnQQX5|vgIp)7eAYZBC2x<%6 zp!$)LV!u++-~WNrZXFAhp;Damm%GNB)D=PRWFP0t^d~$AOLSY&=~a7#&ys4*G~Qc< z>@vtZy=~gWMaE~d<(D$KE+VdIJ{+*D(Hl7=h5#88c|s%OP5wn9q(C8G5@9$Hh+eBM zgvqd{)4J9@wtV5pAv4Inen->x;OCLqR0XC+^RBHXdkhS>vvP*Xz|ikVN7d#y87yGB-GSs)d%1V z_Z!pk`mfhf`r%P4K{vggZ$Jr*Yo1k>Q;R27o6g#IzU`V-j4ol{JFuEweJU%^6fxvq zrH{kDkI_f~VTX3t`g{5kr?s#dwy~hI|6>RcJCxitqOx0)5gYI~O<#(cGtJ}u+-0Ee zi2ZBfe@_kiuxJj=^06h7t&pzv*x}d6O84x!u#mdpBQ|{66!lOMMvw8D@)bsk;6%3& zT1WVu(J1VSrt&$IM*A{k*GfP@{Ij5QFtE-mwVj9eFAMxXAjbdYk}QEa4?m?f!H0gl zGjqZm=nlkT&?Qgyy1%%?K)^OPE=DWkpN&_|sqxt$7AR4}fo3aT723>$&rbJ`BGQ2bg~IDTB99)maaRo|GiVUp|Pa< z81!sg4ZU75s4! zV=)(~d)Ra2;%>%z&-+s4KG%oZ(l+3D_I9zf(LGV)cYqLmutH{^G%kQD)V!J_Zw9W& zAFFTBNEg^{)QG0aDGa8&JGbobD!E9r;1tq!Tu!bZ8eCYd(R|nSNr(oMIZBW&u#lWi zK85#Oku^;l0#8L?#&9OhV+jIg#{{dpIlwN0y4H0|4%q;a!+dSJ7 z$XL;x2-$P6G2O6@n?omj=;*w1N)lX`8f9H>8l}k_)nfnNNy_{a*HT@Q$)sms|gL3pbqDGgOk1?o%l)?3bs=lGy zag?%TRnMIH(u56|)b1V|O~Oa^(yb=g(xtTkiT2}y$pd4rt zih&xNu1pf8)gdw@pSoO9=GWU|Momk2Mi*3_#5v0PChTYenYYsH2}SHOp8(wo=g0|^ zDwDKj1PL8`7PRL9T|3g3HD%=gX)o_TKg$28J1CX7fE<;^>A!b@v(dJODM!5-lCOgR z_=@lR6s;*uqtTRz2dfqP&(UN*8tefGP|32GkkX|s$Y*d1sQ&$B3L!uN&~OHwS?@T# znIN>Yf*a#k*vm%0zMZYb2d%DpQ!#A>uh{PHe&{n2h?CeFd+FX8D;nP*S|H%GCs-NM z4kzoC75*)kA>RxiPVfgeM=}UXAh!k!5e9F%*w=YwH%ft`qs;V0zv+1ytLu>yIpYIrU9lJzn5Q4X#u_qNx}%iIqMXr$&?}h@VJ(v+alS&$D&h8u zhg_@CS6#6O62zCpj?bZ}aMm461_5Gk3`m0#&6KSb<9U$^P9YK@brah%FIc-sT?=%_wOU^IsZU|aAo{awxmi1Dfs=Iy1s&;1U=DuQORtNIp&asa;lr==CC<~?iT+S z`U>qzsjW2gnKuhB%jw2XIEBbS@{+4G|9n#c@+Ue$CianSO$*-08(qtzC_HQL6a3z9 zc+Y063M~Eg)I>XNg@cLGdTZm`Qn}KR5o{wz|j2g?qoyg=usk_3ajV6ag=do zUgT#rG22|PCjPrmkL6bkoT)PTu@aUqp7ha*e=-zk&+~MIa_4eS_C>u;EPd;p{4W z;NNBexUidpTaZApYu}JvYpyi& zG4n|?xja~4{|BqA^@q5n9=v=X9RHE3uC3L4n(=W~^%e~rET^DpXS#QaXZqm#0mjDg zidd7Sc;R`5Z?ZsTJbSUBPCId+`0oIIxZ)YYGrhB7cDT--_rnBtwE{w*7D|rLkKX3@ zS;6upG9}GV=BzCbUp^R2_q3Z-0u=&~mp{E;;I1-%0|GvU;C;j!(5I=&yNL5|$#3AS z8!PeEg;t)cuq0J&USouIblH8B)$Lxb+M933PI-%~%L#nW=+l<-5RK&RW)*tJe%Q13 zJN&yV4|5+6O62PylP06unsik+>(jwt=fNq*rs@Laj-ua&XTvGow~q_y0PvM7)c8Df zdq{YbW7Jw2Cb|KOPECZfUT$^KtfRS-UA%Xb3Y%0qC*EsdifT=O$`Oj}xw6=Z z-@`;B!n3!Dv3@N{Xvz3GXq(eE*c!l_9Q6&6@gX7hQMGR{|LI`HodZA#e)5xzLkR`rk5O^1n4H{e=T9Z7)>l(~nOf zy%z#s3RFtU%sJM`NoxY8lZ7_DVQaTKa>pg*mGpGO!Ha-69!kU5c$o}ntd*Qw+$ z3xE&sb7$fIZRmpmpFzDEome_KV(TI|Ln6>VahjOd4t8RPuE)2NDnqUhUA`G3sA&?a zx=?jQxgJV1awEAu%x?4c3pF+(YXPqB58?YPhkjd7+g%vKE|V>*Q)%i+`O?zhsIFAo z#FNNsZ)s1q*Abrj-}qqp@lFU3K;8lYo4XhmgoZ&7f*fYDxmAWfE=(^=wv27DAz$j` z*i{rdSam#BuK1SI9&*0cGJIIFwUao^Gz)+=E{>OAg2xl1$U#C*k2jsmi2)@)tjZ`% z*r(}JBKPBnh12y<)lwEv-idJ}RcPrl^I$d3jPwFYx!iKZXtxUQ#v+Iw zeM`B-|7LRzNvzI^5K{zM5Qu$ca}-fm>7$SD{2v@eXZqOX3YCGEORgd<5N0B;&b+tl z7AH?|*Q-_2MB}fAGZkp`$1IpKWL2vy|A4;YmJG?SIBFp8Pv-l{wj{+bEK!jTRBOSV zoX>IsTxFzv)K8JS3S+cd!zlOEZu8D%?<5(R;6A5e<~a8P zZ5GQHckjpte(NsKqvt9-07C}OYQSJu0HIV%VgRwblcg4trN9uWt7z#^Cp{$vF-OSv zdxp=$^v2ivSXLlaLBpBQjb??p=AgGjt!GX-!%vtjlp@95oJn!`P{394S@Jh7*b5^*X z!RFE%{lo9QgjQB|I8mPv>Kl84Ce;$EwbJHbw7HV{-gAIGN3WzO0?Z9`dR;hvdz_aO zqK*%jJdBd8Ed=cJ>xJF1f^zpyx`Pn}i}({e^c_jkpY-C%-%8^QX_rB2zC6M`x$`4| z;2C$%lp0OmGI`;ZXf;ECIRDBKKgk!y-dY|WsMT9b%Amra%a`;GvG>QtAe%fj5j>y} zch;syoT<@s5tz*w!c#^)5aZ26fj|VjuCOaZ>fwMx3Dd`9s#Je_dp&@ZSh{glzIb%t zf=c`e`R`f6U8@(#D5WgkQUruSq=&A$WKVwfGkTeB3VUN@m3yS`aK+?pwPO%h74(52b8 zW6fdxUYe}RoB}|7N)mx9+>&4=tXT@Ua1;EGDhS=e$Z~xr#4S4h98+e2gL`1xjFD18 z3Q`(#g>aR&Jt5nS>z1vi$j}H%+Dq<;6>br*lG6VXi1$&~?*>2y=uh{YlV(#;=vHZ> zmj@eVCu2;lQ#Q<+r{^K4i={TXzt#)6TJM{l5-;NAe(zP@&{giNknM80uol$r25A(# z8=U6L+A*zZlsp{L+VqaZx9m(m?YG<{V9Fog@w(g)^9Aj|wfX~HBEuKrR)dp!n2`Nh z49}p5E6v+|M~%nR?o>1}8S&1Uuef(P)}Yz1tMFO6-o(vmM*;rH-krJ@+u17Bh%Vgs z-gQnJxhwPa@gausnm0sWNe6ga;ZA}TO*e)GJx|vwQ#0fXf!C>r5?uJ(N&Hru*?oFv zpeq*?{)|<<(Bkt=I<5V}f2I9QaR+1+-h?M2VhH#UxXP7?P2;L9pme*#?%+4SbJWl^ zA$Jf}x+@H2B}`lrU)aeG!-YmG2eCI7Znlmm!cv+!Qk+C6s2RoP@+9z@4&U&;>GLt) zq~#Q5Yw!}YmrgcpHZYlPY{8y=Ht`Z%xx?U2@KyJk zmu)G8B%A;9l!^BE?cPi034YD?f>`RV;07=ZrCD@)k?y~H=Flj00DHan?aT(nq4nAP zn3U&UO#HF=+VpUt3=Qyz@Y_|Sn|sN4rYV^-Y@2Hfvp6-=(y+s>p z#RAUdw9`2Er@H=?b+>itLmd`k&7Y$^X-}f3SBph?V0-&RpccF)<__Y=8SYxUrO1~% zMh_nlY}}yq4nvAB)$1K_oxSN5;v_%`zrUr8V)xcAM^S7^1#ksrrboRf^Hu*sOH|q^ z+n)%^$BSN}$L9^!Asw`sEiX*oaA0yroI^1~iAL@tXP?E~?+sDC!vRW=+8%6Bz_xNA$V=`wPpxU3k1HQQ@3IGS3ONkc-Al>FGDLwlMNp2zun%gDmaI`C zQ?=+jZ-4j$*&4oCCd}8fVf~b8WxiU?>h|b{|8(zDX?^XB$0K|=z8%%9_oEdy->nDE z&*7wSQQ{AY#>B_9CqPOoPp;X>t_^-KP%7MiD);8_B4y@@)J^U7(lEXSkq+mLxc#b$ zM8OP5y;>hX_oeJDhvLMk*>4PLbsj8~om4pZ!7cmP585414Sx)cZMQ_SMm^6|ylWoN zFrXW?h3q9Xa!;FoB!rg%HTujea*Z2!(kPv3qvryFLdE;b<`01$9O%X^eh?-?B-OEz zi_^*V3kTDOcl32Uk;N+6J!BM}cH55>2}3wixArJfCbXO14!w0xT0H9#A%i?J*Nt1Oi z(k$mAvP$>p$m0vZK?;({=_;AxCuQw=pq`#FjGu85w(+#ps&nY}w4_tPkB(McGDfj} zMt-f~1Z`y7&bbsb6t)hnFo5lf9}EmA|h%N{M$0T$G&5^>gErT!{WT0;0ce)p9zM5Up3D;^<%w9F+1 zW>|Bm!I7yw1$VkxU>BzJgG68=jT$JnD7BwauRdM(bO#jPw&G@0(47pHUx+rQN4g?o z5BzM88Ex|8w$k;{j%IXSeBs%bD^yCjx>GCCYK0k`w!E%CTF8y`#sqqYj`PhvBc3{g z=f6nCI|mL%8`E2(!|ii~z*lerJzEk-x-Qs2P{W$1zl#T`GpV0v#T%z*6F?!36=~h? zVT>p*zbEcx4+acboEBi&&r+O3DUy@A&CXF! zDgBKprnq!NmNF^S<^Bv-icKtX+O1aS|N3AJlnnxTeseS=6ie$~V{GW?OZxEyV&b)J zmgOXEtGq7F%gk>;uQYT&Y|K>87dX-^cYq7tWi^N1oszp}oLW@`&My3TIW2(wzY1{X z4(-9dj>AY^+5%t$HBXF9B%PzFx0K%(a>)7IIHoD1=du9-rw1frAOZRmt$v>*uUw;>G3edgxZ$c9 zFbBgwQPc9=Y#K+UZdEErJyvFo-1H#g9ZQ4mv~vHc+Bzv)>LQo`jsf(Fg4!jeSq#R% zUF|;1t39$?U`WKjxuI?}u;SUDDv3;BvwO>SNC6T6LiWw|&BJJ2BOxhG6AIy{KoT48 zZ$E?|*27RmAwkpKM_q;4R0i9>n2t}IiFKcsD+gkVYHI&ZTQ>1;X$~bZU$H={h?^ zSVC26z*K7lnsQfnWb7WR5x?Z=&i9F@0U+WZv}4SM({cQl=k;2y<&om_uJjjzbF~^C zc9b7SN!g3pIr1%*@4Aj=H%hld^1qjnLPh0jP(F`V zNr}Q%s50c}u5O&vx@lfOLYvv`_dPm#+si7RyvuqqNIl*3&Bb5oLdT@P(uLq^iRV35 z^euIJdzx587$HB%bEVOz=Vj0Sn1uz&XlQ`^+lRApE9URZ7_H#HF-hXTqjRw# zrywIIAA551e55C*$jiDJbB1Vps$Lza1_Qgdt(Xdc=0=s5)lzy4c|Ldq1iww&_grke zvTN?GteFHm*iVL8y$8OYQc~m@0HhaM?S{>p-3e@v?UozH^SnDepmX=w2%s=#I#^$` zuRovvh>lHa(~1{y;-&E|q1vu&?hpXlfG#6nFQ63T?fgDo+!T)(z#jYM1-<>0bP;3t zs(paSZnrGY0%pkSwCG>cWQi_*>rlcf(fLaYJy8TcIKxFPq}OQ}eJpuW&%Jj;fw{8#Tkpcv z`K;4<9fw@D{hj5@vM?mF&c!bWoQe3qP;*~vQIZ^#`T+oM6$scFDbpOhzf6Q^ z2UMo~7JXWg6T%lte2ka~c%%<09N~;Eq4{!*Nmh)zlklk1JHLq{BoL&_FqlCimDueN zfhXIg9XIjpWq9 zTTNv(g&EOq(b+v9Cp{15i8@G?!To7E5Gw@)X!}ZZ!P4GDT|Zl+ zGK~H4fb~8M9=&|>L{J`#_m!d?oZ)sR<_TR2meJoFl!qTXD06tC|EN}tEv$P8c#NZl zWA3VMt0%uqifrFfJ9$>HP+A^d&B>=A(*<_0k4{+h8j0D=FLtM+2UO6hSwCYq;UB^% zRqu}rM^PyaAxUvW!#CWiGE`|_E}%PvAT#A@$D0Hlqke}p)gTz9#4TO!2!g9!*ITwi zcGrI9t+FK*i^;HMc_gkM8*dH9wgncx%kD78Ci0yhR39)jrO$NhX1>#)0`79qHq@=mL;LVMJ%<%+5w{!Wgt^m6f>BF(U`heXU5Mlco&sQ%!=`G3>2#Zt z0E-Cw-u4MsYDYBnhTD}7BKeso#QF&TE=L+9Ce2}Zkk;wa;0TotOi=|ZrunHB%6G2W zb^tR0gHky7Rd_4(e$OY96q9wP67TuS*!z* z(;@5u%ybdSxFYKK%lLnP4>h9Gz@qAQeeTGk!91AZfbrD*#R#%ltxEYWf1PdOHWL1ff>7rQA^UH|dW7$sgPYO~4wCZ))3!kmf2CC*ZPVNJ+hEu}00`lPY}JDqD6mme)}~!cZFM zcxM+_sS3UvV=|i(W4ZG>YU0?V#J|*tTiL&$0*-iMBf6#HQHCLh{x+FCjMSPjto-yn z!8~Z(z+W)$%ne?C+CH{KoTNR}M)#|c28|0D9fz%=VX#mv!UF@R&E zq;Ni6YOJI)N#FHaoWkxZF=|r$`lYECZ|^P7f{y*BaZ^B|0mdYZ5W)@CMt}8c&j|FM zD}^!1l2P3%#p%6U+rL+bDdyDV9*Dp}*K=a8M__>RKg;qjoNxU<)qXIR;dt$9%iiGo z61U<--B(+;9Dzz=YMz9LtojP_!>vGngyK(7Go|D8i$ee8yI z2qik!@p_&A(brqC=5*YKq#S-kfI~_5(Z~Te;zTf+tMTtT&ZiI~lafLJY^i{VSmd1p z?9buEaF9RWATu05R+cfvFl|S~pB?>TDw`vJ#H+;d3~CNuF_9K>F@u)~3U2V{E?jMq z&YLo-*RtniyiE-aImQXK;d=)Igwq=;@30RnJBE*ag7tH3q*)&Eg}-4_Rs6Zx3RYuE zw~aMT_HU5R=4nT>B_FosKEyHZR=*v~qt#&l;!}^Ly4}#}EZLCw&0;2ItWcAj)tn8e zoEWXU1bC)u>UH-4A|16pZG(`*0QAgf3k~qq#u}#oF;zX$kT=iPdEI)mQ=^Vb(GiyE z6hZTrca4?+=w^WAcs@cSA52|JK7qk^B&v$YAT%tqwk~I#&SYY#?hUp=w<1XyaepAG z*y;)79(4%$*}ng@Rl_QaDN>Llvzt_~3Z!W+p+DCl?fExE~|K+L+=u$o@@T1Fn^?g14%lxw8U0-`M zljkuhKqEsriTjNkwJ*ZZmR*f{kG0-Zx?16Y-p4?kcyU7kniaI?wB==b_Z6o^AT>$( z@$cU@q10*hkICfItCY{j#{U>`er*Vyo#B4XQ0fD^qgId1o{$~F!uCq7a|WOPc4)v2 z?AVsCntis_YqOTj6?VGZmH66vzA}Oe$D3wIP68&m(q21gFiQxeS-}W4?pyBo(=jDMB9m;Mqm=t6UuhQvLb!hY zU4Z{a-?;s&mrd%eIPnieHI97(H|$=V9z!OWs(OmSTgV$L;XD;xZ2j$+3`3B$v8^>$x| z7d9_S_GH#=K17s{C!BoZ>16S&da-lcqk>Sng%3qEGVQ0(X9)jz5NJUrk8GTJEl9rO znxzMFPgovhx9D0rJ2umUiEXn2^6)J-Jm16*5NPmOT4YcH!Usvsi}4*DEgoWnFwi^27>Y)+c#-VPlZ^`+gbCM-_X*V|@|D@+!g@G6A@`^~=y|DiJ}H;h zb_VsfdUZt-E+E*YZT6EPWA$W*L*^Jlium&BE4xOJpcxxO3Q`r*E}1n}R2K;s%hj4E zWnfJ+f13v_xqwM{YR%!fGhsB|^TeQG>>P30Jq|4q%P2@;7z7VX44jZ{MY*5U?`+~O zv=Y3GT(PkSNA>#~ByhM1#6JbjA3L@3sI_0SID*0#9ndRvhI1S{xm=4AVThOB+w8s9 z87y7(8}3d_-!fn`cXA;&d@h033Qx@2??8aNO87zL@C`-wJrGdu32Sx zqm%B@%>gqjVaR{I&d`7K@hvO6Q}Ze{EB zH+X4;*u9d9F=Jnpczc|lbM(9Lp*){1+*nT1^0V?g0%fud6n_3t&81>tC9xH4liR@X zOeWV6eC`(U@CsD#{0M4ldcg^1;Bs*b$jKfKHr;pOZS~WYk~FbQ^6l(KnI>+S`duow zu(X#KMgHCB&-sI)@}XLSc=U(c-**?Sah3Pu&=nh3Zy3$gDsL!*!w8E~qr2)Hpa5k> zh+57P=+5R=YYi+z7c@RFxSYahdIh>}l zOr5{E^;CPifjR*pgtv2|%TaM&$()w1XZ(b!P$z$)Z({Bt*2ZP;=m{DS7FaW|^QYZx-f$OA(sy&+2e551b>Y^q6{lg);x_%l2Ts z-fZP)+YP4uD$)aaD(3WtNS7Aa7n2K?FIolm`p(to+lNXOu+Y)-XoYDawfviQRp!|E zh&1Zld}$mexuDbCjJL2FS+n*9IJLTaOziMHkq4;CjNU__Wmh-7-se3oleEWG8XN5S zS#AchUvzSfnCzj%cGtkGvvc|N(jK!iNZs}hORJ@AsCG5lzu~6< zWP{dG?#SNGgRqp~&d3lOoK^6A35N(WE3}pD5HmAhXGrJLz}z{`IRh6pwKZ72ZS8qG zX3LX9UO@DYTG3R54+_%C;nU+DP z_;uUr^J~oCgpO?s6p2;Z$2PSmO@uzUH*pv1E$11A53LoIn~i6zRTQh2v-uetDu$;M zRFh84cBc3Dy;mk)&Rso#EbMKI)GPL(R4@R%VCWKbm6#mdu+%Xz3E2W_7`GRzs6QXR}r; zgfIE5(b2EWMG`Tg!(PVaLGG;Bh#Xj5oIW68ljmj4<`z0#V6=9q2`1`)n2m5lH67HP zWu%R>+Y8D_N3K-h(%%17)GjHLmFAKi^rSoIKf>=oQfG~C-gsOkJ%4(`Xhmyvx_U)h zlwyQjpq);GaB{y9rfj|Zk_8L@2<6V%+4n6}rDW2@?Cb+cL`+ORRd>(GP2pnG; zS`{T1#k83$I~IT$r0U9^DfsZw>GaOkJ^rY1tyI?%$+8>p|Gv9V;lc#gKih^F&;b zow3X587AJ&4aQF1T`=l#CtgsTY&%^0NssGuiH8k%PTwb7F=kpyHCHPU#7`rWXW3Db zKuDOoRN9e@7qXg(yPTz7PL3Jb**O||7)0h-^7zRvl4o)gZTVP?$l#&TQ_#e`ulZ=1 z5Qisn$>^5hOLxJ1S25JTo=Wk!uLpx!X>hCOWumq*MEGuS+Vx!u%@>oi5sYO%jqb16 z8-D936g7$UCVY2x?5gHVA6K+{fOyIT{>^#%s28N>m^vT!ESW>S7Pk>LXzu#H^Zw=D z6PzGo-5{1aG1`vp@2uQ<(kVLJQXLYGtu=4e78@G)Jq0chxyp{npCq*55AXhPrwavhR@5JvGP zA$W9seJULQek?q+HZR1Y30;a>m!hWDTtpnXV>qp|;REM0GnX#G@FXq6Nhw59J*TDF zsGrVylCta?nkMH{nJ)m*;um#@tDUHZ=^5;DcgsdmA1Jv%eBQLk()7Sbc=+xL&`G+U zJ_AQ9nD;|iK4(t_v?@&(z6zCfvsnQ9ACg471fr34ke?xvfCI$WvHusMm%TuqY6$pv VT)&kBekKYe{#gcGBBbZ{{{Ze^If4KH literal 19112 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

~(>YLn>_h5ELC4nyfAZYbcXk^yJ4XKt=2`L1#}` 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 diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-from-accounts-id-page-2-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-from-accounts-id-page-2-chromium-linux.png index d0990083a9997d3b05cb0a02ed22ace0d28f1d7e..885ad0401f9cb1d33aaf9feb42ff44da1f8b09c2 100644 GIT binary patch literal 19350 zcmd741yo(lmMwg6fXy6mtl$aFY z7nqZ>lqjft4F3QGA_lz|7g2FfJ6iP+R{8k?eP(upgAEOdDuL>-J^`sB{(*g(K9QB9 z!YVo8_|fsSEOqsl=CgIfYU#)f>pXqK%G+BCZB!^XDC6{iMKfQ&&$-hew$8J_JMS0A zwabj#=L{u6Z%~k;MRm!DlVb-Z zhP`8kWrkBe97k#WaF!-H7E5@!11Nu_1qv|*3LJFu%!!k^+9cUKbN$0=pkFl8 zrkAQmy+=d;X5nR@No=A}j#<~HqY|^Y$it~ct-g}0t0 zd~L9Lt2O1Abh%3^+g*>h6Hxv_?YwHXuN|)wOJzvtX%=r@|2rm54BZn|OMJ-Feub*96Hr{``yv1U+J@%ln^77nOIy@eTv$JAeg++4#V>lhXV$R2QBgp*!bBw&`z)0BBBlySJyEYmZtGDD z4~|<{>Dm91LVw>p;qlH1|M3|g>BTd@UWR7+Lfy5cEe3BD?g2kn>M`2#(aoYx2Yj{~ z7k(|v9`PiVtCPVQOYj9IrkrojWj*i`+B((gnrQDEQ_M!Vs@q0BDhrqQ87@4%BIKaM z0NoqzIy$@u{0|||Kc#VOGv-irK5>SYI}l$jO5#5pvvc}+LaN0hf+k$V;iJ6yP!EOP z^?e(U1%bYTIkwhXk$-2US$nS;@#SeMFIo`UxwCBCwGU{ZSK6XlAMjvE`Pxvd%wEEm zb(`N9Op4s;JsE05ak3wvN9+vnl2sc)6uQ6}6EXGH^9J}in?w8?{+**G;>Hl64kGfbS z(sapTjT4;c8rA!@#7;^$sM&=?G1I8GKNd;!ZBB0(m#4~tI%T5aMZp4SC|7)4 zAIyAGcw65}GD_c7WLA#@z1N|y^dRBLlW6Tn&RFD7S;i1?aB-^OmL;vH>%AzO#3xr- zFcRsNXL-_#acuju1~&VJ^e}Uxz(+r9e_%lk@+gIE8dAT0NAoTM@v*X^Z(%2VDN9@J>hJ$@{d?-MD%)xFuu8mm|S)!@f% z1Mxxo4Ks$OJ#e`}478O8YxO8!p`qLkrU4n3)b(+92(ej{PbcScdp?9>+22UMTO1@; zQ;LT)#<7@B(V&;CE$q!zJTu6#>;{qV81Khj$l>DlLuT&_~IO31isI6}YO|oUxW8MTW2AhJ;oGIlA5Lz*7SYg%$Da%D-ffh$)m9IFq2B zD39BKC^8mKYW?_tjZ{W!V>d^Efc)f4wAUTx8E(hgIVA)5d#oqT!5w4I5Ks(=4!r@4d%+g9iXR2N1%}Z)o|*_ z*cl%^q<$!lyZt~kFDCI9X9u*MA{hWH%j*ozd-99H@iYm1e3p}Ks2RFKBV{)8PtHeL zUpD7V=_~aQ6QwGT4~>{HH9??gO{m;e|NL^np;%W*eF%*9Ha7@XH)9A;Ou0bh&^m(f z{O07s**S^2UWjIlL*}i7eiGce{F47u%_r$uhKT7m^gb3;gdYX5gY;V8;Lv;=6x#b} zbyR7dguq$)N<3Tke0z&bx|uO&zAQ9#UE(VFgMz)iLLkN2(%;E%m$X@md+ewMpD6_tdox6h%dt#sP605t zwpoaE*_DmS0s~nTl>o;lDi_&gBS^i=AWz3-3i8!?LWX88(VKHoao`fW3dlVMPFvp! zT7=)0iboRWfq8GmM*0e1%2bt&+ziSiPTb#^i@RDYKAer}bwIs0Mr-g@f0=IUE^Pp( z)~)JWMO|3xPv%2yQ`4I-Csun^Iv46{U)@kksfYI;E{j%qDwB`RCv#C535Ee&l>o4C z!3GJzJ0CvhZ8z#F8MtdIL~={@F#dR^XOvYC-^<(B9BZ;EE}hOv#65>iMZ$bWY>m8g zW%Z1%d$Id{R(9Ocx3~Z@)xT@55KwEcA8=7BR(6u+Pc7~{XoH_6^3~gBpz|K^^L5JW zxjij^D#n=P?49Mj=@FdZnA})?Qt2@r66=m0uZY*!N`v6i_LamovlDJt*EbWo4VTDb_PujPYjh;fyo7Wj5N+RzS zm3C(KaWBP7IySmSI`Nw*Da838Q$zM^Zn}2Y;bGdnSp@1DB{pvQ)GRUxw+`_Wr)=~G zFUO6-US%5H}l99_Yw zgnc|H%DcoY!3yI&kONlO9ffF9h;^1zmuau z0TW?oQ89DTueN?2?PJNTREX)J>{77~HWRfn*p3PZldLS@OP?%DGpdNjtiB+Xc< zcCn%jEryjwwzy*_9Y>sMUH69G*Rd{xD-LhCR&j!Q-`m8+XAijD+Fmp!97U|JEriNQ zU9xNpX^2y?)7B{H)LhgFOqk)VE?Hyp?aD6rGw9(5$kIp@kc^_PDTfAiWb`K*&5?3V zKi@GC4ux(y9;iNzq^pbZ7BD!5IbMToSH8hPGM8 zMlrcxAs^|wgExnPes`a|8iGRPp<%WfqJo&!8{RDKgdKzcD1Y`UhIJ~Kc}C79AuXm6 z9doZRN68CW{bk=GEGh1si+bVFsy;JI)fE;dzU5Yq`hQCj|IQ|dreO$+k8#7oY^nLT z|8IEb-!J(m1oa;djGuP}QxQUZC*3*Y;I`GrCDgwd`LX;a?2Nhf_1ARL=(xNi>4BZ4GdBJQU`3Sb~|v^Of!6tbplAYnV^ts!-@hf~BHJlvo}OL0eK z{wetkQAcI`cD>dgMvrAaUY?M4pE*&&9nuZl7IbWE40Fy_YQvLS%qiCHkN5_EIwJf^ z44cpJfqnIS{DA%oQE;9-LHg`$N9k@a>LYW?2;nk3+;#aGBhyIuQ-BQOj@u|Mm#D@& zX2Hw`^tQLnqLhhEHe6a|6NR(;6TJOpZGOu9tYc|zR(NiE`t+LjeD%lgLq<>hhpf9I z>a;3f?QuULpJ){|1Fe@&q)>5;6{n~ENJ6u*!Dkn9?R%P-i$j|S9-mcr&N*nrKg#nn%9lzoyFfPB9 zcJCAv7+p+Hvz$~VRvE2}T**aU?zfm;A|bq!7FIEaOp)O1j(HAUsZT9a!yo64);&)b zxH-naik!(E00T*UGNi_khJ>+LeGm`kpuXK&j-{Iy!7J?g4AxfSStzaw$Tb}nD5YWr zt_*S2RI_D1hhq@$7|Glf(%bw?SG@V3JGrfw+Ob?yS98aoOstqK7s}p6#D-{7hG^#X zo@qViXjyxeYSci1^x2c+s<|)}aUmf9qpFx@T~gR%~rm|0ZyltA=0EvGO4DMH*IB&jWm#eGZVQ6&1_X>7d=e znRh>o!}h|$Z#XVGW*r=#vhhOQ-Y}Dyp+Z>mBv+YA8iv1C%(x^KrO>XZQ24K?XMcdx z-5~R9nC_}wch=6D`8+RlKmZsuBcsStxNPa#8I0@6bIsT&Nsev~9d_%EI&B^r6Thzz z+FM&kE95z-Y$~n@R`_xDFrr}f_mfQZ*LBNLmg}vEUhL-PD>ZG(kB8Om zI%O1OB@Dae-bI~8Xg%C?KQJs?+5EmyLI~FUAQOOb{V}ZsAbXle*0skgtp*ebP|0jW za^{%G%};(%=R(UTVbZvnANZudC}@#^rsaHSnKMV5gauU^|I|zx*=2pii8iIzX+i>_ zEOLVrEZ3JO@QBaIs1QOk-AicC$ACZu)8S=&H);!Rmp7~Syy>=&;TdA$ZQ?%-&c5i? z+Ae~F>>pO3&<_wXZW!pNwny%##u06&S)0{%QIwdJJby&}eTYf++Z3B{suUxijedAt$s@#bU^QQ6`^sLjWZu;^diC_DF{9626G zz#HXjM73RuGED+Dhc`25LwU{wU!G5i&MB-gv5+4@_X0k&Cx9sN1rGH4X((~+OU=F4G^g|GHY>VS>rIhRYnTg_TG@D}yPx*eA|o5z14j4Z6a^Jv}Svf{KA zQyzEkbvp=aZ)?t#P+@y&r-0%~yhL5A1cP2%fgjD4o|nGG=MHvBRp#$^-wFsf$HrBD z*n^=mxG-Y6_lZftjx1y)Kkq3x?>O_^5}Z!G%ew2*EECC9+ROtcdAD5E&zr?MCX7>W zemu$eJt-F7+o9$1jkdJZQ`FX%q}=@e;`a(rzTtK=ujO_3LmkF($7uQUuBbaitJV$r zq1TC;WnHE7=xbZRi+?4#$@Vrpzl$G8VHBJ=H-;}XV(uC3t5rHO66ba+a!wk_HL9( zO<_EuFq{TwL}c?{mcfWp$W44;L1)-Wk1Jo%TK@T&=)4B^7Y+c0HuP`899$)-apzrm zR1iHHgJp+AzSG@yQ%?dP>`48AMgY?P&zyjNNVNVJyoEomxRbC-LduVD+VQ~tJBR8t zb<%&$X7_H{$HJB~Rqp_M|0ap|M85TIcYxcA1s*h!?ShcuV-B9-w=K4Vh1vArYEBSj zMuZ=`xBdhxo!4#iME9*?F_7R9IibboerYs80G%{PQ|Vv>3KYK>MKj)x1cIF?JiGHT zVmTS>y7SzGQ_tM_?*2WUKV;`Sw|9p-254hHTo%Y;`gSJWHi8!6K_J#9gbyb;F;K(v z#2uBeKqhFrtyhv`BQ8E4Y01R#6?;^p-t+AiZ-ZMMht&$K0ZG@L_nPvR{61W=_U=-> z{-R|qkYC!SFM)wRtva&7Awrj~*S9q1p`hwuJ=OHn#dUg&4*zZgkU6QzGcp?MNQxfK zDsrZbB-PmSoDi@fD8->R`Uu;NWOR%$nE{wG-u0y!^mnurnztu&D?RzTyjI{b0qL&$5p44ERpp_-a z@{S_qH|AY4OpX(@o-G(33{*#+qn@YY#{e-$XQJ=Ss~6m~RB6DlAj zZMIeQioVr+M%%XMW`KZ_@NBr5$vsdk`MSSQPZ5JZe#RT4nb)1>rsrU#)nUWsyWZTg zVk1QVQRf+gm=sMIO~^ZC+KY>n^a4weRrXKk{q8gbx^fY^bONqr9W-2Cb-oqQf^rQ8 z%p_S!jS)(2?>lVBiY~eY>Fn8Giq_Pkx;GRW45oH1D5$H7=+YR0fnq4w-^Hrh2d(Zr z5q0yVb#R+`KKjxD#+hK1=E&giP~h}IuyR?zkcP5>UxigGaF>T}@D7Z3;wpML5pdaR zR;@RexUFz`Uxwku#RV%hM+9|XwsjEy+@|~gXmS1-oc*>Eb%W+DtAw*v!V5#f_M7t+ zi}mX?{^$nfhd028JSn52D*5EkLiHH4dLC2V&UG1bk}2Xr7EHepQz9wFtkHubCoN_I zhOf3+9}@aN(R#w`_>{w)00|}n(UW=>SNv13Xtv5jo+4?^L$_sBr!i~JLRM(c=GoG^ z)fsr+rWNbAPGkBa*8p*GF5b1-|Hsfxb+t-DgZe)9*u z{j}nO0BLgCMJS2ciInV{+Jkd@y`cGiY``dznqIxJSS5us`h+Add-;wV9|>QYFC1!k zZo|=+1mr&Qvy#tYXNSi7aT{(213g>p5S#yT0+Ro=KXj0Z-Z6Ul4}i7j&+xk>Yj7pa zxp=n~s^FyNT9C9G=YBBh#o~8hX}uf|2inJ&$Jst@Cph)KNSC^Mxory7Z&;3V*yaC& z>$U>z9dSQEmG!uB$y};12O7jA$ol3ov8;=z1*!85ak&$pY?B#w`@IE)>xmE~$o%cw zkiC4l-W7>F8^S`7Mk<11=DD)reP*dHGf<{e&SI?XdOr`UzBzb>d z^R>-fBWky3;Q4)P-hTQ725Zv@QwT)oT?_Q~-a4ng(GNn6*J7jjfS$X%<;)3Y_Jvuy zmGq!0^Pi^+^;8&~EfAD7P;_&)T`xTr*n*9A$wpeGYELf%jJ07A&UFkL^|)nP;@MgS zt{{JdhLw+5BT;{?1&9(23doibPf$MCP^CpTUoVELKjz)2vKh@kPU^6()6xP|1Ld21 zQaUOutZGIwl6s%nlD1FM*}}`;CQarX02u5jU*Dax`^~nWfdg}7LhDUpDpaUHuh4-N zl=FCT{l|f0Kunw~M!Mo0+5!R)mGr4uJc+a^B{ENR&UXj$I*RR9eL&BieMWmPJ%Zx} zYDLVC>4~dLYiS%Xo<3Dl1jtbx@B%Haf#S3QqqYNLOfSfPW#nh>;DohzKikEec+b*zWm<>O*6}?vg211XRIuI3e z9;7=v7X3P8-9Ll1c4n?lgHGt;echw{``ybP+v|iZ=R8Z7ID}F-=^kuXDIZBH_CDE3 z0EjQ>zaocQ_5W31x_3qZf^;$9OY~XxRmB(lj)bu`zo*twSXcSH4_dR~+85QNrz>Y! zUr*kCfg4uWBfhZqaEI9vT>nMOzVoQ*{pn}QSQ{=E>(G&oZ?NTnV6ncKt5?ye@tsgW zclU01-d5yQ_uL$%^m4(pZh6z5SKp1h*aKbMnXGuKug)V*b&E* z%DHP*?7?VW&kYTrAlV;UzP-CYEDxotKjHT`7J_5~Jykk$NUjNjp1r7qixhq4tW4Ww3Wij0s1{OA?wLABEp$_Rq zD(&ikjJUY!fYhfyuT=5&^cST~5G_&`E1LsC&789w@LVxU`oQCdU?UeHLy?InHaOh# zlxb=;2_g_B28Y`rOZtv%ut;<8B1DTs742ccgPf`7usjg;D!NKkie$vNsD|w%&`@Wo z)FN>_cmO*iU9p&h8Apcp=+q@z9k`30#zq5pc-SvGAWF?xM$h}|2B~MOIC=zx4Z^5J zE*2c>x0VF_x65h%e~i;3R%eEy-A6A(-7I!*xqh^yD2iFe&tdzL11*3i{J&9; z^uIKKNv*tm$p2O(CS2AMmoU5{fSBOT=Sf3?kcm5C#N6 zpoiRFUD4pbm394m5(Np1yJMTSUcu(`KQ=G>&eux?hiD3CyhuP<>e^_o*R_QvwTW07wQlF2YjtKZ3do9O6X=4@)WadhRv8K=IZ_i;UY=t?|7@y;n*IR0rS?;5iG`HSEj{CxZUIZCg6aLA79& z%LL3{vFY#&Sf8z3`68k-p5Y=9CM+OmeGn)pD7^)5%~rTvv4Play#fka&P_p6ZU zk0;nBHoRXl!WoutH#fs`&#t?F{ydQp-%(KI-9G-O0x<+gqf`x_&jYTl#qD~*O|e5f zih!k2`FTW*F2*cPvf^%x5Qx2fq}TfnAmO-dZ0QiRE)mTJK~w|8A8mIx+do_;pe>n= zg-@khApp!&KiIJOM~V1_&K*pDZA-QB@CIx@5gVpS8!1`))7l#y``gbi3w5uGd5@!d z_0YMWRwKUOX$+bu7ph7lbks35_tg(XaA<)*lJPiz-haL`<40U7!VDs&t!ANI^MRSO zUHiCuzF_0(eQ`{BC3mE@*bo?2C{5coGw~nl#an~t2*&?3gvO?KUM1@_rjL$gbRdw~5&0jC^M`eUI2_@xG#X5PH$v%zCB5ZqG*Mz% zU(zN7-J>fCs%i?k?_KQ$mSlL?;3=T8{;3F)1UR?v@|3AnEemIHslWb6DGvuIi(#FH zJ}Zs^OX`L_ck9h9ZYw|mHOr9tK9TO2=mpMh-FIyQ)PglcIV5WXwBrHjgnjD*U04Ge^2I{)UNld(h2c$m?g{c7R6*avb!?aQ zc=KsiT%y){CQ#@2x_6jIq?+NP-61XhdMeGfl;N7faFxZfEyy28Yjb{Wx0Xkt4<3T%FhJJvzlQ=-%IieS_3}9$#=anRscxseE9DMTa3Ro6e5QMb+P9S!LKW zN08KD4rT4?Rky|m+FviAqKv@__`E@!Hpm~1+>sP{iB;p1qMog&|D!Q(KXHb@F&TgP zmaubgo$;)Ys!0J^7MlaV;^|aOnAD+duN~jZUov_iKSt^{)evAn8_Q5K=QFkMfA>ds z-7n{1tir4nfQj_whOYiHKK}YLjW$B3T_)GIcC%ia!Lgy9w%AwrctRi4fF%(B^@Q>K z%>;DU{!BaKiPw{!`_BFR=Op{LC(TA#1C0kb1uWM^>VRRy{HvX+>Zrj*Fj|i=LHW1+ zW90P1Hr6J!{#4X^UcP*O$sbf}ffGIOde7T0bcN5TH#T7OVW6d6h}{E0G{`0CqF3nr z41RjD-9{#=spg0x?nkQ|U}+p{4s3+`wFmg|pV5!$jr1GcDqMN2g;GX~(o$n(`5(wsf%YCqE5_uN4j+9zer5x9UC(C$W4$rDnokiiIz@`4MN;_f zX)Uk-3g1J8Xta9<&2N)7E8V#iWfvA=15Tw#K!7g9cZG58C|pi#5lse1N2j<{J=k!S zttHzAz7^m7alId+=0PZ#R_C0)_XGO=qKrYD%$;Q3L1KZ58sFX8>NU%NkX}A-S_1`? zr@oqW@iKgsrf5&PPqAtd2iGW_bKJdtZYvpU1-?i_d&9W5+Y+6as^?FM8l9z7;;`P> zlC4HV_q0|BX9YVaN|~@_s8(D2_9?XDgRW*NruY3bDGNae=kg z)l3{kxZBYpA6D+>+flM9zKhfPvKs|s&8#K z=yi?LsTmFZaM2y87_7QNc)EQxHQ3tcJKz6$UdeNGcR8WNf1BB$q^PlT>2-dXYRNPtT1GQ?UCcW;X2cm9#5u`|0yB`uG>SVNZ z3H+xaDm==#6K(yJ#zpsmID|Idk~ z|6m1K)@`1hBRpLVpEiDtKb-XY6ScJb{0f>Z!`mf)fM1 zn(mm!A%51GD)L`@PN`F+{cu9+cDE~Q&)94scO6IT9 zD7$-()iFoK_;}z!3taqs8TWL|2WGNKN2a0vAB-q#FF!dcahG7_Y~e>WhDw`xuvnXa z;cd^X3MLogMT*2t>frMC_W3#))vTj>fbOdJ4ZIC(snfp%V)*<1bQ|5;Q{xr8-{A?w z{yZHa-!0LNhisj6$l_`1(cH~$DbFCkQ66Lj?Mx1V_Rt+S10K4G?!G!yS5_La~7gNRu4hloghVId1xenm{Jn-yr` zh0uSacEuR&7|*SbU#R9!UVFcKDHbwG`fkpa(%3zPomH~#J$dEd$FB!+(FkIO#+o(j z-oD?D@Q_j4Y(QMrwo#C6g7JB~U1@zy=_e;6UN>S`x3w_zVSlxaZq9mbv)%@vcEO(@ zjW#bhW>a#jJ*vHrFox6BVS*2oyVuodz>DdcE^ITJkH@G*YKf zkk4!h>lsimyvu4&$fzily=S6FTDHS0~;bbYscOEp^hINUyNzqY$H%*$SK zy?;8h7{kR$4h#Fy`#+TYcBK9SX_z%{kV13ohe_^G{(-A0-%#D7D6M{1EJi`c5Bx1! zT}vRW^LARD(W?HMniw6rm`e!zMO@Ms)tW{RpekT50TNZ6&J^PKA#R0cSwMTGusDOb zN)UoX2w?OB&U{zshAMS}wk~loOerQ?#pDd?e<=IiAM?!vdh0L|vQ>g0vod((qPE%T zN7FMjrF7y1Y1G2m?C&YaRyxSYQNYH$LV3kvmAq`N(a^dTB5b7|mNsm3yRLg4qt8tX0VM9f#q1;D}U-Yr&78rg-2f+c7o2DKM{8i35nF+y2n zhXZ_VsCy4?-y>LSHLHZZuR}Zgi;t$aZepYXvXnjF5D&e5Aj0>dKOAq^tmQxjI`bYa z#(_791}vm*8L;BSx$(frrE*9a*X%aBZ{nxGSPriUeHX#LxV*6P9+5wp=f^d_&-{vyrKqF>Tx60qLjWj1VX$O8YE`HW{6}B!d{8$}VBr|3;%s4O>Rq z{^baV-2&|mh#C88p@t1Ak*-nTyNCvGZAU9_*>FhiggB&{A;{3482G($5iIB@xGVBcCMFOvx{UpBvcqEbO!rejsxZOmc9odSc)gRf?#`q5|1;w3>iq+1RY+MJw zE59RG4~-j2s9Zi4JSM`On=pExMcLn~CM-~2P~|cMUx>ejv7mK|;k%K0!J< ztUr!BK6&$lA8B)y>f@H?TpzsoWHkpm9MlXLm^mg!bZI13s{(z3DBgDoC6V@l`V{OB zK$GjO_~p$q#N}@&I!51sCKg=fae0U+?^3dLdzqjX3<96F+ zcVsg2T4mxUN0$hZu;)$}?T@mU#Z3VrYSvqXezRF>TDm=w4d}Bjzer2*7iLF59wP_I&5ULWvsJF&jQ^NlaR;Nv}w)>Win4t)l9#Wnp9Zd$9re4KekCU+l7# zOBZvp^zS8fjz=9Q5ssG?C;@iO@%ViW&w9h@qZKaI& zv$LekSyFls4yXcZdhYD`lKYM_Q&YkVUA2*s(O1k{p({FU|8|J{ALku_Md1C+Hzg%S zbyxpeIplxEh5ujD#sB#h;dph|(BB^P(~HhrvXq6 z8fHQG1}G>Kv!JTdU&PfOV}kr|S=zZ4+xD{fE-*{AVS%%@0~rvZ=g(WJ%v$sbeq4Zk zQ0ROH4phE%^~6hUX0n-fnX@J?7Rbq>XQXnXI$@Rd@@4t}vS*CQGuru54f3X*onM4# z8yHlGr@CSy#)|syGQ?#QWg1=YE8Wt?q(C>JOqc}a02r#M-r%@~&BGA7Vn=gvagK6n z8AQq&94h(rzP8-Zgk`h;%=b-zZ~rEb=RcuOpk}uSRx%1L7LMwKS>Acm2J_4+h^i!4 zc!7KR_e$u)D!IRE-P<_+fZjTpC$?NHe@NLe=>N80Z0p=>APcA$0A*#pizPcq_Qe6@ zYDyK0A~2A&wCtVt$+)}WFQLyF9!oY_pE*ICEd+g%xdXl-643j#Ur9PiOR{+&sEidmo`HA9UCCN6wj=*8hOfY4 zbgMfA%Y(}#-B$uht>$TtjX|*Kac~GtjKz?{-0nhYqD7=6HcAg6Z z81d-vlh+)A1DiFgp=8v$Zp*#j;ws|wXtG0Hn_fAVu;Qc^A=c)x5NFIc&(2OV0(g%nUq~ch?s6mgL zJ4H4BGGc>F@lu-26z9%!N(x`e>#BG1Q=kmkHL{*CZ+>4yKTY5|iY;z#@Hct9e z7jUEihWfiQ%~x8E8B0V=kaGtJ1ke5Z{{o;(o5;hxDG%`?{gp|}@1}IwU{x5Ic7%Hj$AnXqf zc+ZllYAisJ$F&>a@VaQ)>Jm;Vm;#oHP2UR7(0Do5cG8i4iy{g+2xi=V_K@# z!Ta#Aax=u9?upIU<)+(x>Ru9!_33jML##z(w1qtB+y1E7Q@v2 zD5{m4be!PzoYu^vhAB{$#$(u}`Ia2Tyt!e`Z~2 z>8;PL@2zk5lWB!Og~fD=pa2~{t;b^=8 zD|-s#bC6c@>+@>$6&!spE3dR92TMZ8{eFn%?!H!WMZw{WbFTSIBGodyC~RC}rh-w~ z#dy7=zdWa!0@RFjoBG|TYIcubzEn^B^4-R2?{0j__4w`q!ca#% ziWM5HCQ?&!{mBYyN3PQ!`9Su@d@W`8r#g2U`oNb3jIRlLE#OACwb=eQ?Xk>9RX`2tgCR3+n1X`-Y(3M^k5Opm z7DflZ_zjHUIz)--EHD@}BnW1Y2^nWNScCD3`3|QhI}P&fhgj3&dYA9Ud8ogLx`V-t zY?~9Cj$f>&nX1syv6!pJFI(Fj1)(THDChM&c1<{sUcLc?u04gtcHA`NZ27iZov(w0 zf(=6*21`-`N$POFJ8c%e_)(64KY5kvrqaQUzCA-QYX2Gk7qq3I#w$&Iv~@Ce9kFrD!DgT3K*sKIN@@PoA=VIhLxL*!cSXY!0kupciGTS!@)G zuHyO5{K9MIDlVzK@$(STYkJ^Tirx`OAc&0nizEKCi2%ryva@ma>vlom7ul%%NptA4ZA?V6lCJN|6V8?mhQX&-+gZo(f$g%+bex?E@)KQm5$ib;TvAX+lWhm4QaX-uh<$zW@G z`(UD)0O)89)_9z|*x;H4K9ifmN;+PRfNjALw*$>Ua+M(x26WKJYYwN&??rRzulNs> zJ5Q>)amP}w6O%#vEs{zCJ6IL0qZ)QAx9y%JV>0@`~`sh*E_S6#jdj zek`pydtJB5QU?Hlz^EHl>=mw6SE(wPPxGyKpgh=TG>oPz<375CKW0MO5h!XXiyORG zik>gl^|x5W`EHU&*X~x4b)r4-vvQ*ZS#C@UIaN9qY13MuG2PJT4T$k(Y~L0Z+YDwp zp%xhUgpyqNQ}Mpa=QD*7-DlhDQ_4mYFJ72n>gIVnEY|yh6sST~MDw3N2lfjjndyGX zQML;8l{ysHBWmO8Ostyn?a3FfrPazWrJii>mj0BMX!5qd0mYSl@+>VXfq7YDxPN*~ zAUDfTe){g9FdZDCS^DI@jhs-najLBbn z$`MR)M0ozm+6)s?<2z5;zSb01H@;iXw%6%&5oBG{x(hMx%v-Jq}K;MtVaGB$kKD?-ai3P~HEe{wUw1aH5U7|LoBOkSlCH=msP|;K8%s-l zxrAxCcDhU5w2)?z(Zj&%i{V~+KbVAs2(C{G zMh_D-+zY&C_sDb@D##We4@RDEMZsIO*!XBabs&1j-L0b~x0nXxIQR-SB{o@Mp)K(H zFDkLLp7mZHaW|(*q?XUy$lJiY-FCO?vrcIe5FZIU001eR?x(uD%Q>F$`Wba{;bSQw z0kgr=@t8Tx}|KNj~QAM4Nf{g$O|4AGU;qo^QMf<(R2 zmYbS)>cecPqDeA0?uU*0d29}q4#Mi*cCl=4Na&>k8)E1frax%rR~%cwlAwPs`!6I9 zeO;-E6}eSvkLn{5uq3~}_G>bD-2ZsJ{IaznH_R=T%2|eiOb#S6DV#55Jn0US4nn{g zUp;X%F&SV_mn78MMZ-Lcs?=oM=Na$rYKd8{Yqwq^I>=!<=jJ~7t1(y{EaR7zlx&HF zpyV(P&mX*#5fU@}WpVYu+V^})>mGt4x+36FECNeHFB_=--}-svM_gH8LE~z;0{o*b O(0d7a@p4i9!2bhrM#PQ) literal 19536 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 D`ZN$t diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-2-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-2-chromium-linux.png index ff9a2444f99745d1cfdb67660be71dd7bd4e1b38..3f118cdc0acbe3b5f4fe4a92adc82f0bbfbc8133 100644 GIT binary patch literal 17711 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�$e{FCJ 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 literal 17894 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 F{{gaj-;@9V diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-3-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-3-chromium-linux.png index 27df8c3e591cd3da4e725d0a204947c4a16edf8a..3404a4f5b328384777d44604afab43d4522e7e08 100644 GIT binary patch literal 20317 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

eKNURr8>f7 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 ); diff --git a/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx b/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx index 4f8e81107c1..eb7905bd8df 100644 --- a/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx +++ b/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx @@ -151,7 +151,7 @@ function BudgetCell({ return ( onEdit?.(null)} /> Math.abs(props.value); + + useEffect(() => { + if (focused) { + focus(); } - } + }, []); - componentWillUnmount() { - if (this.removeListeners) { - this.removeListeners(); - } - } - - componentDidUpdate(prevProps, prevState) { - if (!prevProps.focused && this.props.focused) { - this.focus(); - } + useEffect(() => { + setEditing(text !== ''); + }, [text]); - if (prevProps.value !== this.props.value) { - this.setState({ - editing: false, - text: '', - ...this.getInitialValue(), - }); + useEffect(() => { + if (focused) { + focus(); } - } + }, [focused]); - parseText() { - return toRelaxedNumber( - this.state.text.replace(/[,.]/, getNumberFormat().separator), - ); - } + useEffect(() => { + setEditing(false); + setText(''); + setValue(getInitialValue()); + }, [props.value]); - // animate() { - // this.animation = Animated.sequence([ - // Animated.timing(this.backgroundValue, { - // toValue: 1, - // duration: 1200, - // useNativeDriver: true, - // }), - // Animated.timing(this.backgroundValue, { - // toValue: 0, - // duration: 1200, - // useNativeDriver: true, - // }), - // ]); - - // this.animation.start(({ finished }) => { - // if (finished) { - // this.animate(); - // } - // }); - // } + const parseText = () => { + return toRelaxedNumber(text.replace(/[,.]/, getNumberFormat().separator)); + }; - onKeyPress = e => { - if (e.nativeEvent.key === 'Backspace' && this.state.text === '') { - this.setState({ editing: true }); + const onKeyPress = e => { + if (e.key === 'Backspace' && text === '') { + setEditing(true); } }; - getInitialValue() { - return { - value: Math.abs(this.props.value), - }; - } - - focus() { - this.input.focus(); - - const initialState = this.getInitialValue(); - this.setState(initialState); - } - - applyText = () => { - const { editing } = this.state; + const focus = () => { + inputRef.current?.focus(); + setValue(getInitialValue()); + }; - const parsed = this.parseText(); - const newValue = editing ? parsed : getValue(this.state); + const applyText = () => { + const parsed = parseText(); + const newValue = editing ? parsed : value; - this.setState({ - value: Math.abs(newValue), - editing: false, - text: '', - }); + setValue(Math.abs(newValue)); + setEditing(false); + setText(''); return newValue; }; - onBlur = () => { - const value = this.applyText(); - this.props.onBlur?.(value); - if (this.removeListeners) { - this.removeListeners(); - } + const onBlur = () => { + const value = applyText(); + props.onUpdate?.(value); }; - onChangeText = text => { - const { onChange } = this.props; - - this.setState({ text }); - onChange(text); + const onChangeText = text => { + setText(text); + props.onChange?.(text); }; - render() { - const { style, textStyle } = this.props; - const { editing, value, text } = this.state; - - const input = ( - (this.input = el)} - value={text} - inputMode="decimal" - autoCapitalize="none" - onChange={e => this.onChangeText(e.target.value)} - onBlur={this.onBlur} - onKeyPress={this.onKeyPress} - data-testid="amount-input" - style={{ flex: 1, textAlign: 'center', position: 'absolute' }} - /> - ); - - return ( - onChangeText(e.target.value)} + onBlur={onBlur} + onKeyUp={onKeyPress} + data-testid="amount-input" + style={{ flex: 1, textAlign: 'center', position: 'absolute' }} + /> + ); + + return ( + + {input} + - {input} - - {/* */} - - {editing ? text : amountToCurrency(value)} - - - ); - } -} - -export class FocusableAmountInput extends PureComponent { - state = { focused: false, isNegative: true }; - - componentDidMount() { - if (this.props.sign) { - this.setState({ isNegative: this.props.sign === 'negative' }); - } else if ( - this.props.value > 0 || - (!this.props.zeroIsNegative && this.props.value === 0) - ) { - this.setState({ isNegative: false }); + {editing ? text : amountToCurrency(value)} + + + ); +}); + +export const FocusableAmountInput = memo(function FocusableAmountInput({ + value, + sign, // + or - + zeroSign, // + or - + focused, + textStyle, + style, + focusedStyle, + buttonProps, + onFocus, + ...props +}) { + const [isNegative, setIsNegative] = useState(true); + + useEffect(() => { + if (sign) { + setIsNegative(sign === '-'); + } else if (value > 0 || (zeroSign !== '-' && value === 0)) { + setIsNegative(false); } - } - - focus = () => { - this.setState({ focused: true }); - }; + }, []); - onFocus = () => { - this.focus(); + const toggleIsNegative = () => { + setIsNegative(!isNegative); + props.onUpdate?.(maybeApplyNegative(value, !isNegative)); }; - toggleIsNegative = () => { - this.setState({ isNegative: !this.state.isNegative }, () => { - this.onBlur(this.props.value); - }); + const maybeApplyNegative = (val, negative) => { + const absValue = Math.abs(val); + return negative ? -absValue : absValue; }; - maybeApplyNegative = value => { - const absValue = Math.abs(value); - return this.state.isNegative ? -absValue : absValue; + const onUpdate = val => { + props.onUpdate?.(maybeApplyNegative(val, isNegative)); }; - onBlur = value => { - this.setState({ focused: false, reallyFocused: false }); - this.props.onBlur?.(this.maybeApplyNegative(value)); + const onChange = val => { + props.onChange?.(maybeApplyNegative(val, isNegative)); }; - onChange = value => this.props.onChange?.(this.maybeApplyNegative(value)); - - render() { - const { textStyle, style, focusedStyle, buttonProps } = this.props; - const { focused } = this.state; + return ( + + - return ( - (this.amount = el)} - onChange={this.onChange} - onBlur={this.onBlur} - focused={focused} - style={{ - width: 80, - transform: [{ translateX: 6 }], - justifyContent: 'center', - ...style, - ...focusedStyle, - ...(!focused && { - opacity: 0, - position: 'absolute', - top: 0, - }), - }} - textStyle={{ fontSize: 15, textAlign: 'right', ...textStyle }} - /> - - - {!focused && ( - - )} + {!focused && ( - + )} + - ); - } -} + + ); +}); diff --git a/packages/desktop-client/src/components/mobile/MobileForms.jsx b/packages/desktop-client/src/components/mobile/MobileForms.jsx index c7f084574ec..4a7334fbd84 100644 --- a/packages/desktop-client/src/components/mobile/MobileForms.jsx +++ b/packages/desktop-client/src/components/mobile/MobileForms.jsx @@ -18,7 +18,7 @@ export function FieldLabel({ title, flush, style }) { marginTop: flush ? 0 : 25, fontSize: 13, color: theme.tableRowHeaderText, - paddingLeft: styles.mobileEditingPadding, + padding: `0 ${styles.mobileEditingPadding}px`, textTransform: 'uppercase', userSelect: 'none', ...style, @@ -35,7 +35,6 @@ const valueStyle = { marginLeft: 8, marginRight: 8, height: FIELD_HEIGHT, - paddingHorizontal: styles.mobileEditingPadding, }; export const InputField = forwardRef(function InputField( @@ -44,7 +43,7 @@ export const InputField = forwardRef(function InputField( ) { return ( ; } -export default function EditField({ modalProps, name, onSubmit }) { +export default function EditField({ modalProps, name, onSubmit, onClose }) { const dateFormat = useSelector( state => state.prefs.local.dateFormat || 'MM/dd/yyyy', ); @@ -44,6 +44,11 @@ export default function EditField({ modalProps, name, onSubmit }) { const { createPayee } = useActions(); + const onCloseInner = () => { + modalProps.onClose(); + onClose?.(); + }; + function onSelect(value) { if (value != null) { // Process the value if needed @@ -53,7 +58,7 @@ export default function EditField({ modalProps, name, onSubmit }) { onSubmit(name, value); } - modalProps.onClose(); + onCloseInner(); } const itemStyle = { @@ -268,6 +273,7 @@ export default function EditField({ modalProps, name, onSubmit }) { showHeader={isNarrowWidth} focusAfterClose={false} {...modalProps} + onClose={onCloseInner} padding={0} style={{ flex: 0, diff --git a/packages/desktop-client/src/components/schedules/EditSchedule.jsx b/packages/desktop-client/src/components/schedules/EditSchedule.jsx index adf731ec447..5beaa5968c8 100644 --- a/packages/desktop-client/src/components/schedules/EditSchedule.jsx +++ b/packages/desktop-client/src/components/schedules/EditSchedule.jsx @@ -514,8 +514,8 @@ export default function ScheduleDetails({ modalProps, actions, id }) { ) : ( + value={state.fields.amount} + onUpdate={value => dispatch({ type: 'set-field', field: 'amount', diff --git a/packages/desktop-client/src/components/transactions/MobileTransaction.jsx b/packages/desktop-client/src/components/transactions/MobileTransaction.jsx index 369ea54da8f..7763f1bf639 100644 --- a/packages/desktop-client/src/components/transactions/MobileTransaction.jsx +++ b/packages/desktop-client/src/components/transactions/MobileTransaction.jsx @@ -1,10 +1,10 @@ import React, { - PureComponent, - Component, forwardRef, useEffect, useState, useRef, + memo, + useMemo, } from 'react'; import { useSelector } from 'react-redux'; import { useParams } from 'react-router-dom'; @@ -21,7 +21,6 @@ import { isValid as isValidDate, } from 'date-fns'; import { css } from 'glamor'; -import memoizeOne from 'memoize-one'; import q, { runQuery } from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; @@ -32,6 +31,9 @@ import { ungroupTransactions, updateTransaction, realizeTempTransactions, + splitTransaction, + addSplitTransaction, + deleteTransaction, } from 'loot-core/src/shared/transactions'; import { titleFirst, @@ -47,12 +49,17 @@ import { useActions } from '../../hooks/useActions'; import useCategories from '../../hooks/useCategories'; import useNavigate from '../../hooks/useNavigate'; import { useSetThemeColor } from '../../hooks/useSetThemeColor'; -import SvgAdd from '../../icons/v1/Add'; -import SvgTrash from '../../icons/v1/Trash'; +import { + SingleActiveEditFormProvider, + useSingleActiveEditForm, +} from '../../hooks/useSingleActiveEditForm'; +import Split from '../../icons/v0/Split'; +import Add from '../../icons/v1/Add'; +import Trash from '../../icons/v1/Trash'; import ArrowsSynchronize from '../../icons/v2/ArrowsSynchronize'; import CheckCircle1 from '../../icons/v2/CheckCircle1'; import Lock from '../../icons/v2/LockClosed'; -import SvgPencilWriteAlternate from '../../icons/v2/PencilWriteAlternate'; +import PencilWriteAlternate from '../../icons/v2/PencilWriteAlternate'; import { styles, theme } from '../../style'; import Button from '../common/Button'; import Text from '../common/Text'; @@ -67,11 +74,13 @@ import { } from '../mobile/MobileForms'; import MobileBackButton from '../MobileBackButton'; import { Page } from '../Page'; +import { AmountInput } from '../util/AmountInput'; const zIndices = { SECTION_HEADING: 10 }; -const getPayeesById = memoizeOne(payees => groupById(payees)); -const getAccountsById = memoizeOne(accounts => groupById(accounts)); +function getFieldName(transactionId, field) { + return `${field}-${transactionId}`; +} function getDescriptionPretty(transaction, payee, transferAcct) { const { amount } = transaction; @@ -167,80 +176,352 @@ function Status({ status }) { ); } -class TransactionEditInner extends PureComponent { - constructor(props) { - super(props); - this.state = { - transactions: props.transactions, - editingChild: null, - }; - } +function Footer({ + transactions, + adding, + onAdd, + onSave, + onSplit, + onAddSplit, + onEmptySplitFound, +}) { + const [transaction, ...childTransactions] = transactions; + const onClickRemainingSplit = () => { + if (childTransactions.length === 0) { + onSplit(transaction.id); + } else { + const emptySplitTransaction = childTransactions.find(t => t.amount === 0); + if (!emptySplitTransaction) { + onAddSplit(transaction.id); + } else { + onEmptySplitFound?.(emptySplitTransaction.id); + } + } + }; + + return ( + + {transaction.error?.type === 'SplitTransactionError' ? ( + + ) : adding ? ( + + ) : ( + + )} + + ); +} - serializeTransactions = memoizeOne(transactions => { - return transactions.map(t => - serializeTransaction(t, this.props.dateFormat), +const ChildTransactionEdit = forwardRef( + ( + { + transaction, + amountSign, + getCategory, + getPrettyPayee, + isOffBudget, + isBudgetTransfer, + onClick, + onEdit, + onDelete, + }, + ref, + ) => { + const { editingField, onRequestActiveEdit, onClearActiveEdit } = + useSingleActiveEditForm(); + return ( + + + + + onClick(transaction.id, 'payee')} + data-testid={`payee-field-${transaction.id}`} + /> + + + + + onRequestActiveEdit(getFieldName(transaction.id, 'amount')) + } + onUpdate={value => { + const amount = integerToAmount(value); + if (transaction.amount !== amount) { + onEdit(transaction, 'amount', amount); + } else { + onClearActiveEdit(); + } + }} + /> + + + + + + onClick(transaction.id, 'category')} + data-testid={`category-field-${transaction.id}`} + /> + + + + + + onRequestActiveEdit(getFieldName(transaction.id, 'notes')) + } + onUpdate={value => onEdit(transaction, 'notes', value)} + /> + + + + + + ); - }); + }, +); + +const TransactionEditInner = memo(function TransactionEditInner({ + adding, + accounts, + categories, + payees, + dateFormat, + transactions: unserializedTransactions, + navigate, + pushModal, + ...props +}) { + const { editingField, onRequestActiveEdit, onClearActiveEdit } = + useSingleActiveEditForm(); + const [totalAmountFocused, setTotalAmountFocused] = useState(false); + const childTransactionElementRefMap = useRef({}); + + const payeesById = useMemo(() => groupById(payees), [payees]); + const accountsById = useMemo(() => groupById(accounts), [accounts]); + + const getAccount = trans => { + return trans?.account && accountsById?.[trans.account]; + }; - componentDidMount() { - if (this.props.adding) { - this.amount.focus(); - } - } + const getPayee = trans => { + return trans?.payee && payeesById?.[trans.payee]; + }; - componentWillUnmount() { - document - .querySelector('meta[name="theme-color"]') - .setAttribute('content', '#ffffff'); - } + const getTransferAcct = trans => { + const payee = trans && getPayee(trans); + return payee?.transfer_acct && accountsById?.[payee.transfer_acct]; + }; + + const getPrettyPayee = trans => { + const transPayee = trans && getPayee(trans); + const transTransferAcct = trans && getTransferAcct(trans); + return getDescriptionPretty(trans, transPayee, transTransferAcct); + }; + + const isBudgetTransfer = trans => { + const transferAcct = trans && getTransferAcct(trans); + return transferAcct && !transferAcct.offbudget; + }; + + const getCategory = (trans, isOffBudget) => { + return isOffBudget + ? 'Off Budget' + : isBudgetTransfer(trans) + ? 'Transfer' + : lookupName(categories, trans.category); + }; - openChildEdit = child => { - this.setState({ editingChild: child.id }); + const onTotalAmountEdit = () => { + onRequestActiveEdit?.(getFieldName(transaction.id, 'amount'), () => { + setTotalAmountFocused(true); + return () => setTotalAmountFocused(false); + }); }; - onAdd = () => { - this.onSave(); + useEffect(() => { + if (adding) { + onTotalAmountEdit(); + } + }, []); + + const onTotalAmountUpdate = value => { + if (transaction.amount !== value) { + onEdit(transaction, 'amount', value.toString()); + } else { + onClearActiveEdit(); + } }; - onSave = async () => { + const onSave = async () => { + const [transaction] = unserializedTransactions; + const onConfirmSave = async () => { - let { transactions } = this.state; - const [transaction, ..._childTransactions] = transactions; const { account: accountId } = transaction; - const account = getAccountsById(this.props.accounts)[accountId]; + const account = accountsById[accountId]; - if (transactions.find(t => t.account == null)) { + if (unserializedTransactions.find(t => t.account == null)) { // Ignore transactions if any of them don't have an account // TODO: Should we display validation error? return; } - // Since we don't own the state, we have to handle the case where - // the user saves while editing an input. We won't have the - // updated value so we "apply" a queued change. Maybe there's a - // better way to do this (lift the state?) - if (this._queuedChange) { - const [transaction, name, value] = this._queuedChange; - transactions = await this.onEdit(transaction, name, value); + let transactionsToSave = unserializedTransactions; + if (adding) { + transactionsToSave = realizeTempTransactions(unserializedTransactions); } - if (this.props.adding) { - transactions = realizeTempTransactions(transactions); - } - - this.props.onSave(transactions); - this.props.navigate(`/accounts/${account.id}`, { replace: true }); + props.onSave(transactionsToSave); + navigate(`/accounts/${account.id}`, { replace: true }); }; - const { transactions } = this.state; - const [transaction] = transactions; - if (transaction.reconciled) { // On mobile any save gives the warning. // On the web only certain changes trigger a warning. // Should we bring that here as well? Or does the nature of the editing form // make this more appropriate? - this.props.pushModal('confirm-transaction-edit', { + pushModal('confirm-transaction-edit', { onConfirm: onConfirmSave, confirmReason: 'editReconciled', }); @@ -249,72 +530,58 @@ class TransactionEditInner extends PureComponent { } }; - onSaveChild = childTransaction => { - this.setState({ editingChild: null }); + const onAdd = () => { + onSave(); }; - onEdit = async (transaction, name, value) => { - const { transactions } = this.state; - - let newTransaction = { ...transaction, [name]: value }; - if (this.props.onEdit) { - newTransaction = await this.props.onEdit(newTransaction); - } - - const { data: newTransactions } = updateTransaction( - transactions, - deserializeTransaction(newTransaction, null, this.props.dateFormat), - ); - - this._queuedChange = null; - this.setState({ transactions: newTransactions }); - return newTransactions; - }; - - onQueueChange = (transaction, name, value) => { - // This is an ugly hack to solve the problem that input's blur - // events are not fired when unmounting. If the user has focused - // an input and swipes back, it should still save, but because the - // blur event is not fired we need to manually track the latest - // change and apply it ourselves when unmounting - this._queuedChange = [transaction, name, value]; + const onEdit = async (transaction, name, value) => { + const newTransaction = { ...transaction, [name]: value }; + await props.onEdit(newTransaction); + onClearActiveEdit(); }; - onClick = (transactionId, name) => { - const { dateFormat } = this.props; - - this.props.pushModal('edit-field', { - name, - onSubmit: (name, value) => { - const { transactions } = this.state; - const transaction = transactions.find(t => t.id === transactionId); - // This is a deficiency of this API, need to fix. It - // assumes that it receives a serialized transaction, - // but we only have access to the raw transaction - this.onEdit(serializeTransaction(transaction, dateFormat), name, value); - }, + const onClick = (transactionId, name) => { + onRequestActiveEdit?.(getFieldName(transaction.id, 'payee'), () => { + pushModal('edit-field', { + name, + onSubmit: (name, value) => { + const transaction = unserializedTransactions.find( + t => t.id === transactionId, + ); + // This is a deficiency of this API, need to fix. It + // assumes that it receives a serialized transaction, + // but we only have access to the raw transaction + onEdit(serializeTransaction(transaction, dateFormat), name, value); + }, + onClose: () => { + onClearActiveEdit(); + }, + }); }); }; - onDelete = () => { + const onDelete = id => { + const [transaction, ..._childTransactions] = unserializedTransactions; + const onConfirmDelete = () => { - this.props.onDelete(); + props.onDelete(id); + + if (transaction.id !== id) { + // Only a child transaction was deleted. + onClearActiveEdit(); + return; + } - const { transactions } = this.state; - const [transaction, ..._childTransactions] = transactions; const { account: accountId } = transaction; if (accountId) { - this.props.navigate(`/accounts/${accountId}`, { replace: true }); + navigate(`/accounts/${accountId}`, { replace: true }); } else { - this.props.navigate(-1); + navigate(-1); } }; - const { transactions } = this.state; - const [transaction] = transactions; - if (transaction.reconciled) { - this.props.pushModal('confirm-transaction-edit', { + pushModal('confirm-transaction-edit', { onConfirm: onConfirmDelete, confirmReason: 'deleteReconciled', }); @@ -323,316 +590,322 @@ class TransactionEditInner extends PureComponent { } }; - render() { - const { adding, categories, accounts, payees } = this.props; - const transactions = this.serializeTransactions( - this.state.transactions || [], - ); - const [transaction, ..._childTransactions] = transactions; - const { payee: payeeId, category, account: accountId } = transaction; - - // Child transactions should always default to the signage - // of the parent transaction - // const forcedSign = transaction.amount < 0 ? 'negative' : 'positive'; - - const account = getAccountsById(accounts)[accountId]; - const isOffBudget = account && !!account.offbudget; - const payee = payees && payeeId && getPayeesById(payees)[payeeId]; - const transferAcct = - payee && - payee.transfer_acct && - getAccountsById(accounts)[payee.transfer_acct]; - const isBudgetTransfer = transferAcct && !transferAcct.offbudget; - const descriptionPretty = getDescriptionPretty( - transaction, - payee, - transferAcct, - ); + const scrollChildTransactionIntoView = id => { + const childTransactionEditElement = + childTransactionElementRefMap.current?.[id]; + childTransactionEditElement?.scrollIntoView({ + behavior: 'smooth', + }); + }; - const transactionDate = parseDate( - transaction.date, - this.props.dateFormat, - new Date(), - ); - const dateDefaultValue = monthUtils.dayFromDate(transactionDate); + const onAddSplit = id => { + props.onAddSplit(id); + }; - return ( - } - footer={ - - {adding ? ( - - ) : ( - - )} - - } - padding={0} - > - - { + props.onSplit(id); + }; + + const onEmptySplitFound = id => { + scrollChildTransactionIntoView(id); + }; + + const transactions = useMemo( + () => + unserializedTransactions.map(t => serializeTransaction(t, dateFormat)) || + [], + [unserializedTransactions, dateFormat], + ); + + const [transaction, ...childTransactions] = transactions; + + useEffect(() => { + const noAmountTransaction = childTransactions.find(t => t.amount === 0); + if (noAmountTransaction) { + scrollChildTransactionIntoView(noAmountTransaction.id); + } + }, [childTransactions]); + + // Child transactions should always default to the signage + // of the parent transaction + const childAmountSign = transaction.amount <= 0 ? '-' : '+'; + + const account = getAccount(transaction); + const isOffBudget = account && !!account.offbudget; + const title = getDescriptionPretty( + transaction, + getPayee(transaction), + getTransferAcct(transaction), + ); + + const transactionDate = parseDate(transaction.date, dateFormat, new Date()); + const dateDefaultValue = monthUtils.dayFromDate(transactionDate); + + return ( + } + footer={ +