diff --git a/packages/desktop-client/src/components/FinancesApp.js b/packages/desktop-client/src/components/FinancesApp.js index 02c0a4792e..a64de70a4c 100644 --- a/packages/desktop-client/src/components/FinancesApp.js +++ b/packages/desktop-client/src/components/FinancesApp.js @@ -207,7 +207,12 @@ class FinancesApp extends React.Component { let oldPush = this.history.push; this.history.push = (to, state) => { - return oldPush.call(this.history, to, makeLocationState(state)); + let newState = makeLocationState(to.state || state); + if (typeof to === 'object') { + return oldPush.call(this.history, { ...to, state: newState }); + } else { + return oldPush.call(this.history, to, newState); + } }; // I'm not sure if this is the best approach but we need this to diff --git a/packages/desktop-client/src/components/Titlebar.js b/packages/desktop-client/src/components/Titlebar.js index 47df412256..04d077ae85 100644 --- a/packages/desktop-client/src/components/Titlebar.js +++ b/packages/desktop-client/src/components/Titlebar.js @@ -186,7 +186,7 @@ function BudgetTitlebar({ globalPrefs, saveGlobalPrefs, localPrefs }) { /> {reportBudgetEnabled && ( - + {showTooltip && ( { @@ -190,6 +191,7 @@ function ConfigureField({ field, op, value, dispatch, onApply }) { }} />, { @@ -200,6 +202,7 @@ function ConfigureField({ field, op, value, dispatch, onApply }) { ] : ops.map(currOp => ( dispatch({ type: 'set-op', op: currOp })} @@ -445,6 +448,7 @@ export function AppliedFilters({ filters, editingFilter, onDelete }) { > {filters.map((filter, i) => ( { return state.prefs.local.dateFormat || 'MM/dd/yyyy'; @@ -254,7 +266,7 @@ function ScheduleDescription({ id }) { - Amount: {integerToCurrency(schedule._amount || 0)} + Amount: {formatAmount(schedule._amount)} @@ -504,9 +516,8 @@ export function ConditionsList({ } return ( - + {actions.map((action, i) => ( - + diff --git a/packages/desktop-client/src/components/schedules/EditSchedule.js b/packages/desktop-client/src/components/schedules/EditSchedule.js index b68db6d6d9..79cd946730 100644 --- a/packages/desktop-client/src/components/schedules/EditSchedule.js +++ b/packages/desktop-client/src/components/schedules/EditSchedule.js @@ -532,7 +532,9 @@ export default function ScheduleDetails() { style={{ marginTop: 10, color: colors.n4 }} > {state.upcomingDates.map(date => ( - {monthUtils.format(date, `${dateFormat} EEEE`)} + + {monthUtils.format(date, `${dateFormat} EEEE`)} + ))} @@ -555,7 +557,7 @@ export default function ScheduleDetails() { dispatch({ type: 'set-repeats', repeats: e.target.checked }); }} /> - @@ -586,7 +588,10 @@ export default function ScheduleDetails() { }); }} /> - diff --git a/packages/loot-core/src/client/data-hooks/payees.js b/packages/loot-core/src/client/data-hooks/payees.js index b8383aa912..af440ea06c 100644 --- a/packages/loot-core/src/client/data-hooks/payees.js +++ b/packages/loot-core/src/client/data-hooks/payees.js @@ -4,7 +4,7 @@ import q, { liveQuery } from 'loot-core/src/client/query-helpers'; import { getPayeesById } from 'loot-core/src/client/reducers/queries'; export function usePayees() { - let [data, setData] = useState(null); + let [data, setData] = useState([]); useEffect(() => { let query = liveQuery(q('payees').select('*'), async payees => { diff --git a/packages/loot-core/src/shared/util.js b/packages/loot-core/src/shared/util.js index c9c577086b..abd6439796 100644 --- a/packages/loot-core/src/shared/util.js +++ b/packages/loot-core/src/shared/util.js @@ -312,7 +312,9 @@ const MIN_SAFE_NUMBER = -MAX_SAFE_NUMBER; export function safeNumber(value) { if (!Number.isInteger(value)) { - throw new Error('safeNumber: number is not an integer: ' + value); + throw new Error( + 'safeNumber: number is not an integer: ' + JSON.stringify(value) + ); } if (value > MAX_SAFE_NUMBER || value < MIN_SAFE_NUMBER) { throw new Error( diff --git a/packages/loot-design/src/components/DateSelect.js b/packages/loot-design/src/components/DateSelect.js index fdba62c31f..87df94a806 100644 --- a/packages/loot-design/src/components/DateSelect.js +++ b/packages/loot-design/src/components/DateSelect.js @@ -166,11 +166,11 @@ export default function DateSelect({ return d.format(date, dateFormat); } } - return null; + return ''; }, [defaultValue, dateFormat]); let picker = useRef(null); - let [value, setValue] = useState(parsedDefaultValue || ''); + let [value, setValue] = useState(parsedDefaultValue); let [open, setOpen] = useState(embedded || isOpen || false); let inputRef = useRef(null); diff --git a/packages/loot-design/src/components/sidebar.js b/packages/loot-design/src/components/sidebar.js index 29544d7ca8..db88ad647a 100644 --- a/packages/loot-design/src/components/sidebar.js +++ b/packages/loot-design/src/components/sidebar.js @@ -230,7 +230,6 @@ function Account({