From 93f4dbfe9ccea7a93789ffd60e32f64c6df55bb8 Mon Sep 17 00:00:00 2001 From: Crazypkr1099 Date: Mon, 11 Sep 2023 13:06:19 -0400 Subject: [PATCH] Add spent column to mobile view (#1651) --- ...with-budgeted-amounts-1-chromium-linux.png | Bin 25966 -> 25763 bytes .../components/budget/MobileBudgetTable.js | 240 ++++++++++++------ upcoming-release-notes/1651.md | 6 + 3 files changed, 173 insertions(+), 73 deletions(-) create mode 100644 upcoming-release-notes/1651.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 4e52ef1c12cfc0a07ce6b792971e89c29e6a17b3..32c77b8ac70867d01f65e581272fe96083dc16cb 100644 GIT binary patch literal 25763 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 S1-?20QhWaDS(T!B$iD$6rZ?{Z literal 25966 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

7C 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 diff --git a/packages/desktop-client/src/components/budget/MobileBudgetTable.js b/packages/desktop-client/src/components/budget/MobileBudgetTable.js index 0b27c37b4f1..6f8dbf39bce 100644 --- a/packages/desktop-client/src/components/budget/MobileBudgetTable.js +++ b/packages/desktop-client/src/components/budget/MobileBudgetTable.js @@ -1,4 +1,5 @@ import React, { Component, memo, PureComponent, useState } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; // import { // RectButton, // PanGestureHandler, @@ -9,6 +10,7 @@ import React, { Component, memo, PureComponent, useState } from 'react'; import memoizeOne from 'memoize-one'; +import { savePrefs } from 'loot-core/src/client/actions'; import { rolloverBudget, reportBudget } from 'loot-core/src/client/queries'; import * as monthUtils from 'loot-core/src/shared/months'; import { amountToInteger, integerToAmount } from 'loot-core/src/shared/util'; @@ -16,6 +18,7 @@ import { amountToInteger, integerToAmount } from 'loot-core/src/shared/util'; import Add from '../../icons/v1/Add'; import ArrowThinLeft from '../../icons/v1/ArrowThinLeft'; import ArrowThinRight from '../../icons/v1/ArrowThinRight'; +import { useResponsive } from '../../ResponsiveProvider'; import { colors, styles } from '../../style'; import Button from '../common/Button'; import Card from '../common/Card'; @@ -71,7 +74,13 @@ function Saved({ projected }) { let isNegative = saved < 0; return ( - + {projected ? ( - {/* */} - + {show3Cols || showBudgetedCol ? ( + + ) : null} + {show3Cols || !showBudgetedCol ? ( + + ) : null} - {/* */} ); @@ -383,8 +379,8 @@ class TotalsRow extends PureComponent { // } render() { - let { group, editMode, onAddCategory } = this.props; - + let { group, editMode, onAddCategory, show3Cols, showBudgetedCol } = + this.props; let content = ( - + {show3Cols || showBudgetedCol ? ( + + ) : null} + {show3Cols || !showBudgetedCol ? ( + + ) : null} } } - class IncomeCategory extends PureComponent { render() { const { @@ -597,6 +606,8 @@ class BudgetGroup extends PureComponent { // onReorderGroup, onAddCategory, onBudgetAction, + showBudgetedCol, + show3Cols, } = this.props; function editable(content) { @@ -637,8 +648,10 @@ class BudgetGroup extends PureComponent { > ); })} @@ -788,11 +807,11 @@ class BudgetGroups extends Component { export function BudgetTable(props) { const [editingCategory, setEditingCategory] = useState(null); - function onEditCategory(id) { setEditingCategory(id); } - + const { width } = useResponsive(); + const show3Cols = width >= 360; const { type, categoryGroups, @@ -815,11 +834,40 @@ export function BudgetTable(props) { let currentMonth = monthUtils.currentMonth(); let format = useFormat(); + const mobileShowBudgetedColPref = useSelector(state => { + return ( + (state.prefs.local && state.prefs.local.toggleMobileDisplayPref) || true + ); + }); + + let [showBudgetedCol, setShowBudgetedCol] = useState( + !mobileShowBudgetedColPref && + !document.cookie.match(/mobileShowBudgetedColPref=true/), + ); + + let dispatch = useDispatch(); + + function toggleDisplay() { + setShowBudgetedCol(!showBudgetedCol); + if (!showBudgetedCol) { + // remember the pref indefinitely + dispatch(savePrefs({ mobileShowBudgetedColPref: true })); + } + } + let buttonStyle = { + padding: 0, + backgroundColor: 'transparent', + borderRadius: 'unset', + }; + return ( onEditMode(false)} @@ -847,23 +895,62 @@ export function BudgetTable(props) { /> )} - - - +