Skip to content

Commit

Permalink
fix live range
Browse files Browse the repository at this point in the history
  • Loading branch information
carkom committed Apr 5, 2024
1 parent c96c957 commit ea5b6c1
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 50 deletions.
41 changes: 3 additions & 38 deletions packages/desktop-client/src/components/reports/ReportSidebar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,10 @@ import { View } from '../common/View';
import { Tooltip } from '../tooltips';

import { CategorySelector } from './CategorySelector';
import { getLiveRange } from './getLiveRange';
import { ModeButton } from './ModeButton';
import { ReportOptions } from './ReportOptions';
import {
getSpecificRange,
validateEnd,
validateRange,
validateStart,
} from './reportRanges';
import { validateEnd, validateStart } from './reportRanges';

export function ReportSidebar({
customReportItems,
Expand Down Expand Up @@ -48,38 +44,7 @@ export function ReportSidebar({
const onSelectRange = cond => {
onReportChange({ type: 'modify' });
setDateRange(cond);
let dateStart;
let dateEnd;
switch (cond) {
case 'All time':
onChangeDates(earliestTransaction, monthUtils.currentDay());
break;
case 'Year to date':
[dateStart, dateEnd] = validateRange(
earliestTransaction,
monthUtils.getYearStart(monthUtils.currentMonth()) + '-01',
monthUtils.currentDay(),
);
onChangeDates(dateStart, dateEnd);
break;
case 'Last year':
[dateStart, dateEnd] = validateRange(
earliestTransaction,
monthUtils.getYearStart(
monthUtils.prevYear(monthUtils.currentMonth()),
) + '-01',
monthUtils.getYearEnd(monthUtils.prevYear(monthUtils.currentDate())) +
'-31',
);
onChangeDates(dateStart, dateEnd);
break;
default:
[dateStart, dateEnd] = getSpecificRange(
ReportOptions.dateRangeMap.get(cond),
cond === 'Last month' ? 0 : null,
);
onChangeDates(dateStart, dateEnd);
}
onChangeDates(...getLiveRange(cond, earliestTransaction));
};

const onChangeMode = cond => {
Expand Down
44 changes: 44 additions & 0 deletions packages/desktop-client/src/components/reports/getLiveRange.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import * as monthUtils from 'loot-core/src/shared/months';

import { ReportOptions } from './ReportOptions';
import { getSpecificRange, validateRange } from './reportRanges';

export function getLiveRange(cond: string, earliestTransaction: string) {
let dateStart;
let dateEnd;
const rangeName = ReportOptions.dateRangeMap.get(cond);
switch (rangeName) {
case 'yearToDate':
[dateStart, dateEnd] = validateRange(
earliestTransaction,
monthUtils.getYearStart(monthUtils.currentMonth()) + '-01',
monthUtils.currentDay(),
);
break;
case 'lastYear':
[dateStart, dateEnd] = validateRange(
earliestTransaction,
monthUtils.getYearStart(
monthUtils.prevYear(monthUtils.currentMonth()),
) + '-01',
monthUtils.getYearEnd(monthUtils.prevYear(monthUtils.currentDate())) +
'-31',
);
break;
case 'allMonths':
dateStart = earliestTransaction;
dateEnd = monthUtils.currentDay();
break;
default:
if (typeof rangeName === 'number') {
[dateStart, dateEnd] = getSpecificRange(
rangeName,
cond === 'Last month' ? 0 : null,
);
} else {
break;
}
}

return [dateStart, dateEnd];
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { AppliedFilters } from '../../filters/AppliedFilters';
import { PrivacyFilter } from '../../PrivacyFilter';
import { ChooseGraph } from '../ChooseGraph';
import { defaultsList, disabledList } from '../disabledList';
import { getLiveRange } from '../getLiveRange';
import { Header } from '../Header';
import { LoadingIndicator } from '../LoadingIndicator';
import { ReportLegend } from '../ReportLegend';
Expand Down Expand Up @@ -93,18 +94,6 @@ export function CustomReport() {
location.state ? (location.state.report ? 'saved' : 'new') : 'new',
);

useEffect(() => {
const format =
ReportOptions.intervalMap.get(interval).toLowerCase() + 'FromDate';

const dateStart = monthUtils[format](startDate);
const dateEnd = monthUtils[format](endDate);

setIntervals(
monthUtils[ReportOptions.intervalRange.get(interval)](dateStart, dateEnd),
);
}, [interval, startDate, endDate]);

useEffect(() => {
if (selectedCategories === undefined && categories.list.length !== 0) {
setSelectedCategories(categories.list);
Expand Down Expand Up @@ -138,10 +127,31 @@ export function CustomReport() {
.reverse();

setAllIntervals(allInter);

if (!isDateStatic) {
const [dateStart, dateEnd] = getLiveRange(
dateRange,
trans ? trans.date : monthUtils.currentDay(),
);
setStartDate(dateStart);
setEndDate(dateEnd);
}
}
run();
}, [interval]);

useEffect(() => {
const format =
ReportOptions.intervalMap.get(interval).toLowerCase() + 'FromDate';

const dateStart = monthUtils[format](startDate);
const dateEnd = monthUtils[format](endDate);

setIntervals(
monthUtils[ReportOptions.intervalRange.get(interval)](dateStart, dateEnd),
);
}, [interval, startDate, endDate]);

const balanceTypeOp = ReportOptions.balanceTypeMap.get(balanceType);
const payees = usePayees();
const accounts = useAccounts();
Expand Down

0 comments on commit ea5b6c1

Please sign in to comment.