From 5565116c34e930edadb2c311b1ce8b31e7af3f82 Mon Sep 17 00:00:00 2001 From: Crazypkr1099 <nicholas.lacasse430@gmail.com> 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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%0DeOYU#d5OCkU^`vk;#P<O+uhm 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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 0b27c37b4..6f8dbf39b 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 ( - <View style={{ flexDirection: 'column', alignItems: 'flex-start' }}> + <View + style={{ + flexDirection: 'column', + alignItems: 'flex-start', + flexBasis: '80px', + }} + > {projected ? ( <Label title="PROJECTED SAVINGS" style={{ color: colors.n1 }} /> ) : ( @@ -237,45 +246,26 @@ class BudgetCategory extends PureComponent { super(props); let { editMode, blank } = props; - // this.opacity = new Animated.Value(editMode || blank ? 0 : 1); this.opacity = editMode || blank ? 0 : 1; } - // componentDidUpdate(prevProps) { - // if (prevProps.editing !== this.props.editing) { - // if (this.props.editing && ACTScrollViewManager) { - // ACTScrollViewManager.setFocused(findNodeHandle(this.container)); - // } - // } - - // if (prevProps.editMode !== this.props.editMode) { - // Animated.timing(this.opacity, { - // toValue: this.props.editMode ? 0 : 1, - // duration: 200, - // easing: Easing.inOut(Easing.ease) - // }).start(); - // } - // } - render() { let { category, editing, index, - // gestures, - // editMode, style, month, - // onEdit, onBudgetAction, + show3Cols, + showBudgetedCol, } = this.props; - let budgeted = rolloverBudget.catBudgeted(category.id); let balance = rolloverBudget.catBalance(category.id); + let spent = rolloverBudget.catSumAmount(category.id); let content = !category.hidden && ( <ListItem - // ref={el => (this.container = el)} style={{ backgroundColor: editing ? colors.p11 : 'transparent', borderBottomWidth: 0, @@ -289,13 +279,6 @@ class BudgetCategory extends PureComponent { {category.name} </Text> </View> - {/* <Animated.View - style={{ - flexDirection: 'row', - alignItems: 'center', - opacity: this.opacity - }} - > */} <View style={{ alignItems: 'center', @@ -303,16 +286,30 @@ class BudgetCategory extends PureComponent { opacity: this.opacity, }} > - <BudgetCell - name="budgeted" - binding={budgeted} - editing={editing} - style={{ width: 90 }} - textStyle={{ ...styles.smallText, textAlign: 'right' }} - categoryId={category.id} - month={month} - onBudgetAction={onBudgetAction} - /> + {show3Cols || showBudgetedCol ? ( + <BudgetCell + name="budgeted" + binding={budgeted} + editing={editing} + style={{ width: 90 }} + textStyle={{ ...styles.smallText, textAlign: 'right' }} + categoryId={category.id} + month={month} + onBudgetAction={onBudgetAction} + /> + ) : null} + {show3Cols || !showBudgetedCol ? ( + <CellValue + name="spent" + binding={spent} + style={{ + ...styles.smallText, + width: 90, + textAlign: 'right', + }} + type="financial" + /> + ) : null} <CellValue name="balance" binding={balance} @@ -325,7 +322,6 @@ class BudgetCategory extends PureComponent { type="financial" /> </View> - {/* </Animated.View> */} </ListItem> ); @@ -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 = ( <ListItem style={{ @@ -416,16 +412,30 @@ class TotalsRow extends PureComponent { opacity: this.opacity, }} > - <CellValue - binding={rolloverBudget.groupBudgeted(group.id)} - style={{ - ...styles.smallText, - width: 90, - fontWeight: '500', - textAlign: 'right', - }} - type="financial" - /> + {show3Cols || showBudgetedCol ? ( + <CellValue + binding={rolloverBudget.groupBudgeted(group.id)} + style={{ + ...styles.smallText, + width: 90, + fontWeight: '500', + textAlign: 'right', + }} + type="financial" + /> + ) : null} + {show3Cols || !showBudgetedCol ? ( + <CellValue + binding={rolloverBudget.groupSumAmount(group.id)} + style={{ + ...styles.smallText, + width: 90, + fontWeight: '500', + textAlign: 'right', + }} + type="financial" + /> + ) : null} <CellValue binding={rolloverBudget.groupBalance(group.id)} style={{ @@ -485,7 +495,6 @@ class TotalsRow extends PureComponent { // </Droppable> } } - 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 { > <TotalsRow group={group} + showBudgetedCol={showBudgetedCol} budgeted={rolloverBudget.groupBudgeted(group.id)} balance={rolloverBudget.groupBalance(group.id)} + show3Cols={show3Cols} editMode={editMode} onAddCategory={onAddCategory} onReorderCategory={onReorderCategory} @@ -648,9 +661,11 @@ class BudgetGroup extends PureComponent { // const editing = editingId === category.id; return ( <BudgetCategory + show3Cols={show3Cols} key={category.id} index={index} category={category} + showBudgetedCol={showBudgetedCol} editing={undefined} //editing} editMode={editMode} //gestures={gestures} @@ -754,6 +769,8 @@ class BudgetGroups extends Component { onReorderCategory, onReorderGroup, onBudgetAction, + showBudgetedCol, + show3Cols, } = this.props; const { incomeGroup, expenseGroups } = this.getGroups(categoryGroups); @@ -768,6 +785,7 @@ class BudgetGroups extends Component { key={group.id} group={group} editingId={editingId} + showBudgetedCol={showBudgetedCol} editMode={undefined} //editMode} gestures={gestures} month={month} @@ -776,6 +794,7 @@ class BudgetGroups extends Component { onReorderCategory={onReorderCategory} onReorderGroup={onReorderGroup} onBudgetAction={onBudgetAction} + show3Cols={show3Cols} /> ); })} @@ -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 ( <NamespaceContext.Provider value={monthUtils.sheetForMonth(month, type)}> <View style={{ flex: 1, overflowY: 'hidden' }} data-testid="budget-table"> <BudgetHeader + show3Cols={show3Cols} currentMonth={month} + toggleDisplay={toggleDisplay} + showBudgetedCol={showBudgetedCol} monthBounds={monthBounds} editMode={editMode} onDone={() => onEditMode(false)} @@ -847,23 +895,62 @@ export function BudgetTable(props) { /> )} <View style={{ flex: 1 }} /> - - <View style={{ width: 90, justifyContent: 'center' }}> - <Label title="BUDGETED" style={{ color: colors.n1 }} /> - <CellValue - binding={reportBudget.totalBudgetedExpense} - type="financial" - style={{ - ...styles.smallText, - color: colors.n1, - textAlign: 'right', - fontWeight: '500', - }} - formatter={value => { - return format(-parseFloat(value || '0'), 'financial'); - }} - /> - </View> + <Button + type="bare" + disabled={show3Cols} + onClick={toggleDisplay} + style={{ + ...buttonStyle, + padding: '0 8px', + margin: '0 -8px', + background: + showBudgetedCol && !show3Cols + ? `linear-gradient(-45deg, ${colors.p5} 8px, transparent 0)` + : !show3Cols + ? `linear-gradient(45deg, ${colors.p5} 8px, transparent 0)` + : null, + // 45deg to flip it to the lower left corner + }} + > + {show3Cols || showBudgetedCol ? ( + <View style={{ width: 90, justifyContent: 'center' }}> + <Label title="BUDGETED" style={{ color: colors.n1 }} /> + <CellValue + binding={reportBudget.totalBudgetedExpense} + type="financial" + style={{ + ...styles.smallText, + color: colors.n1, + textAlign: 'right', + fontWeight: '500', + }} + formatter={value => { + return format(-parseFloat(value || '0'), 'financial'); + }} + /> + </View> + ) : null} + {show3Cols || !showBudgetedCol ? ( + <View + style={{ + width: 90, + justifyContent: 'center', + }} + > + <Label title="SPENT" style={{ color: colors.n1 }} /> + <CellValue + binding={rolloverBudget.totalSpent} + type="financial" + style={{ + ...styles.smallText, + color: colors.n1, + textAlign: 'right', + fontWeight: '500', + }} + /> + </View> + ) : null} + </Button> <View style={{ width: 90, @@ -899,6 +986,8 @@ export function BudgetTable(props) { categoryGroups={categoryGroups} editingId={editingCategory} editMode={editMode} + showBudgetedCol={showBudgetedCol} + show3Cols={show3Cols} // gestures={gestures} month={month} onEditCategory={onEditCategory} @@ -922,6 +1011,8 @@ export function BudgetTable(props) { <View> <BudgetGroups categoryGroups={categoryGroups} + showBudgetedCol={showBudgetedCol} + show3Cols={show3Cols} editingId={editingCategory} editMode={editMode} // gestures={gestures} @@ -950,6 +1041,9 @@ function BudgetHeader({ onDone, onPrevMonth, onNextMonth, + toggleDisplay, + showBudgetedCol, + show3Cols, }) { let serverURL = useServerURL(); diff --git a/upcoming-release-notes/1651.md b/upcoming-release-notes/1651.md new file mode 100644 index 000000000..c73a84ef3 --- /dev/null +++ b/upcoming-release-notes/1651.md @@ -0,0 +1,6 @@ +--- +category: Features +authors: [Crazypkr1099] +--- + +Add spent column to mobile view -- GitLab