Skip to content

Commit 71c561a

Browse files
Fix expense date resetting to today when editing (#167)
1 parent 8adb205 commit 71c561a

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

src/components/AddExpense/AddExpensePage.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ export const AddOrEditExpensePage: React.FC<{
111111
enableSendingInvites: boolean;
112112
expenseId?: string;
113113
}> = ({ isStorageConfigured, enableSendingInvites, expenseId }) => {
114-
const [date, setDate] = React.useState<Date | undefined>(new Date());
115114
const [open, setOpen] = React.useState(false);
116115

117116
const showFriends = useAddExpenseStore((s) => s.showFriends);
@@ -123,6 +122,7 @@ export const AddOrEditExpensePage: React.FC<{
123122
const description = useAddExpenseStore((s) => s.description);
124123
const isFileUploading = useAddExpenseStore((s) => s.isFileUploading);
125124
const amtStr = useAddExpenseStore((s) => s.amountStr);
125+
const expenseDate = useAddExpenseStore((s) => s.expenseDate);
126126

127127
const {
128128
setCurrency,
@@ -132,6 +132,7 @@ export const AddOrEditExpensePage: React.FC<{
132132
setAmountStr,
133133
resetState,
134134
setSplitScreenOpen,
135+
setExpenseDate,
135136
} = useAddExpenseStore((s) => s.actions);
136137

137138
const addExpenseMutation = api.user.addOrEditExpense.useMutation();
@@ -173,7 +174,7 @@ export const AddOrEditExpensePage: React.FC<{
173174
paidBy: paidBy.id,
174175
category,
175176
fileKey,
176-
expenseDate: date,
177+
expenseDate,
177178
expenseId,
178179
},
179180
{
@@ -202,7 +203,7 @@ export const AddOrEditExpensePage: React.FC<{
202203
paidBy: paidBy.id,
203204
category,
204205
fileKey,
205-
expenseDate: date,
206+
expenseDate,
206207
},
207208
{
208209
onSuccess: (d) => {
@@ -385,23 +386,23 @@ export const AddOrEditExpensePage: React.FC<{
385386
variant="ghost"
386387
className={cn(
387388
' justify-start px-0 text-left font-normal',
388-
!date && 'text-muted-foreground',
389+
!expenseDate && 'text-muted-foreground',
389390
)}
390391
>
391392
<CalendarIcon className="mr-2 h-6 w-6 text-cyan-500" />
392-
{date ? (
393-
format(date, 'yyyy-MM-dd') === format(new Date(), 'yyyy-MM-dd') ? (
393+
{expenseDate ? (
394+
format(expenseDate, 'yyyy-MM-dd') === format(new Date(), 'yyyy-MM-dd') ? (
394395
'Today'
395396
) : (
396-
format(date, 'MMM dd')
397+
format(expenseDate, 'MMM dd')
397398
)
398399
) : (
399400
<span>Pick a date</span>
400401
)}
401402
</Button>
402403
</PopoverTrigger>
403404
<PopoverContent className="w-auto p-0">
404-
<Calendar mode="single" selected={date} onSelect={setDate} initialFocus />
405+
<Calendar mode="single" selected={expenseDate} onSelect={setExpenseDate} initialFocus />
405406
</PopoverContent>
406407
</Popover>
407408
</div>

src/pages/add.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const AddPage: NextPageWithUser<{
2626
setPaidBy,
2727
setAmountStr,
2828
setSplitType,
29+
setExpenseDate,
2930
} = useAddExpenseStore((s) => s.actions);
3031
const currentUser = useAddExpenseStore((s) => s.currentUser);
3132

@@ -118,6 +119,7 @@ const AddPage: NextPageWithUser<{
118119
setAmount(toFixedNumber(expenseQuery.data.amount));
119120
setSplitType(expenseQuery.data.splitType);
120121
useAddExpenseStore.setState({ showFriends: false });
122+
setExpenseDate(expenseQuery.data.expenseDate);
121123
}
122124
// eslint-disable-next-line react-hooks/exhaustive-deps
123125
}, [_expenseId, expenseQuery.data]);

src/store/addStore.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ interface AddExpenseState {
2121
fileKey?: string;
2222
canSplitScreenClosed: boolean;
2323
splitScreenOpen: boolean;
24+
expenseDate: Date | undefined;
2425
actions: {
2526
setAmount: (amount: number) => void;
2627
setAmountStr: (amountStr: string) => void;
@@ -40,6 +41,7 @@ interface AddExpenseState {
4041
setFileKey: (fileKey: string) => void;
4142
resetState: () => void;
4243
setSplitScreenOpen: (splitScreenOpen: boolean) => void;
44+
setExpenseDate: (expenseDate: Date | undefined) => void;
4345
};
4446
}
4547

@@ -60,6 +62,7 @@ export const useAddExpenseStore = create<AddExpenseState>()((set) => ({
6062
fileKey: undefined,
6163
canSplitScreenClosed: true,
6264
splitScreenOpen: false,
65+
expenseDate: undefined,
6366
actions: {
6467
setAmount: (amount) =>
6568
set((s) => {
@@ -181,6 +184,7 @@ export const useAddExpenseStore = create<AddExpenseState>()((set) => ({
181184
}));
182185
},
183186
setSplitScreenOpen: (splitScreenOpen) => set({ splitScreenOpen }),
187+
setExpenseDate: (expenseDate) => set({ expenseDate }),
184188
},
185189
}));
186190

0 commit comments

Comments
 (0)