-
Robert Dyer authoredRobert Dyer authored
BalanceMenu.tsx 1.12 KiB
import React, { type ComponentPropsWithoutRef } from 'react';
import { useTranslation } from 'react-i18next';
import { reportBudget } from 'loot-core/src/client/queries';
import { Menu } from '../../common/Menu';
import { useReportSheetValue } from './ReportComponents';
type BalanceMenuProps = Omit<
ComponentPropsWithoutRef<typeof Menu>,
'onMenuSelect' | 'items'
> & {
categoryId: string;
onCarryover: (carryover: boolean) => void;
};
export function BalanceMenu({
categoryId,
onCarryover,
...props
}: BalanceMenuProps) {
const { t } = useTranslation();
const carryover = useReportSheetValue(reportBudget.catCarryover(categoryId));
return (
<Menu
{...props}
onMenuSelect={name => {
switch (name) {
case 'carryover':
onCarryover?.(!carryover);
break;
default:
throw new Error(`Unrecognized menu option: ${name}`);
}
}}
items={[
{
name: 'carryover',
text: carryover
? t('Remove overspending rollover')
: t('Rollover overspending'),
},
]}
/>
);
}