|
2 | 2 | import { AsyncButton } from '@/components/async-button'
|
3 | 3 | import { CategorySelector } from '@/components/category-selector'
|
4 | 4 | import { SubmitButton } from '@/components/submit-button'
|
| 5 | +import { useAnalytics } from '@/components/track-page' |
5 | 6 | import { Button } from '@/components/ui/button'
|
6 | 7 | import {
|
7 | 8 | Card,
|
@@ -112,10 +113,29 @@ export function ExpenseForm({
|
112 | 113 | splitMode: 'EVENLY',
|
113 | 114 | },
|
114 | 115 | })
|
| 116 | + const sendEvent = useAnalytics() |
115 | 117 |
|
116 | 118 | return (
|
117 | 119 | <Form {...form}>
|
118 |
| - <form onSubmit={form.handleSubmit((values) => onSubmit(values))}> |
| 120 | + <form |
| 121 | + onSubmit={form.handleSubmit(async (values) => { |
| 122 | + if (expense) { |
| 123 | + sendEvent( |
| 124 | + { |
| 125 | + event: 'expense: update', |
| 126 | + props: { groupId: group.id, expenseId: expense.id }, |
| 127 | + }, |
| 128 | + `/groups/${group.id}/expenses`, |
| 129 | + ) |
| 130 | + } else { |
| 131 | + sendEvent( |
| 132 | + { event: 'expense: create', props: { groupId: group.id } }, |
| 133 | + `/groups/${group.id}/expenses`, |
| 134 | + ) |
| 135 | + } |
| 136 | + await onSubmit(values) |
| 137 | + })} |
| 138 | + > |
119 | 139 | <Card>
|
120 | 140 | <CardHeader>
|
121 | 141 | <CardTitle>
|
@@ -514,7 +534,16 @@ export function ExpenseForm({
|
514 | 534 | type="button"
|
515 | 535 | variant="destructive"
|
516 | 536 | loadingContent="Deleting…"
|
517 |
| - action={onDelete} |
| 537 | + action={async () => { |
| 538 | + sendEvent( |
| 539 | + { |
| 540 | + event: 'expense: delete', |
| 541 | + props: { groupId: group.id, expenseId: expense.id }, |
| 542 | + }, |
| 543 | + `/groups/${group.id}/expenses`, |
| 544 | + ) |
| 545 | + await onDelete() |
| 546 | + }} |
518 | 547 | >
|
519 | 548 | <Trash2 className="w-4 h-4 mr-2" />
|
520 | 549 | Delete
|
|
0 commit comments