diff --git a/src/app/groups/[groupId]/@modal/(.)expenses/[expenseId]/edit/page.tsx b/src/app/groups/[groupId]/@modal/expenses/[expenseId]/edit/page.tsx similarity index 100% rename from src/app/groups/[groupId]/@modal/(.)expenses/[expenseId]/edit/page.tsx rename to src/app/groups/[groupId]/@modal/expenses/[expenseId]/edit/page.tsx diff --git a/src/app/groups/[groupId]/@modal/(.)expenses/create/page.tsx b/src/app/groups/[groupId]/@modal/expenses/create/page.tsx similarity index 100% rename from src/app/groups/[groupId]/@modal/(.)expenses/create/page.tsx rename to src/app/groups/[groupId]/@modal/expenses/create/page.tsx diff --git a/src/app/groups/[groupId]/expenses/[expenseId]/edit/page.tsx b/src/app/groups/[groupId]/expenses/[expenseId]/edit/page.tsx deleted file mode 100644 index aeefaa5..0000000 --- a/src/app/groups/[groupId]/expenses/[expenseId]/edit/page.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { ExpensePage } from '@/app/groups/[groupId]/expenses/expense-page' -import { ExpenseForm } from '@/components/expense-form' -import { getExpense, getGroup } from '@/lib/api' -import { Metadata } from 'next' -import { notFound } from 'next/navigation' - -export const metadata: Metadata = { - title: 'Edit expense', -} - -export default async function EditExpensePage({ - params: { groupId, expenseId }, -}: { - params: { groupId: string; expenseId: string } -}) { - const group = await getGroup(groupId) - if (!group) notFound() - const expense = await getExpense(groupId, expenseId) - if (!expense) notFound() - - return ( - - - - ) -} diff --git a/src/app/groups/[groupId]/expenses/create/page.tsx b/src/app/groups/[groupId]/expenses/create/page.tsx deleted file mode 100644 index 87f9c5b..0000000 --- a/src/app/groups/[groupId]/expenses/create/page.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { ExpensePage } from '@/app/groups/[groupId]/expenses/expense-page' -import { ExpenseForm } from '@/components/expense-form' -import { getGroup } from '@/lib/api' -import { Metadata } from 'next' -import { notFound } from 'next/navigation' - -export const metadata: Metadata = { - title: 'Create expense', -} - -export default async function CreateExpensePage({ - params: { groupId }, -}: { - params: { groupId: string } -}) { - const group = await getGroup(groupId) - if (!group) notFound() - - return ( - - - - ) -} diff --git a/src/app/groups/[groupId]/expenses/expense-list.tsx b/src/app/groups/[groupId]/expenses/expense-list.tsx index 798a5f8..adc6e7a 100644 --- a/src/app/groups/[groupId]/expenses/expense-list.tsx +++ b/src/app/groups/[groupId]/expenses/expense-list.tsx @@ -33,7 +33,9 @@ export function ExpenseList({ expense.isReimbursement && 'italic', )} onClick={() => { - router.push(`/groups/${groupId}/expenses/${expense.id}/edit`) + router.push(`/groups/${groupId}/expenses/${expense.id}/edit`, { + scroll: false, + }) }} >
@@ -66,7 +68,10 @@ export function ExpenseList({ {currency} {(expense.amount / 100).toFixed(2)}
diff --git a/src/app/groups/[groupId]/expenses/page.tsx b/src/app/groups/[groupId]/expenses/page.tsx index 5285cb8..64987a3 100644 --- a/src/app/groups/[groupId]/expenses/page.tsx +++ b/src/app/groups/[groupId]/expenses/page.tsx @@ -35,7 +35,7 @@ export default async function GroupExpensesPage({ diff --git a/src/app/groups/[groupId]/not-found.tsx b/src/app/groups/[groupId]/not-found.tsx new file mode 100644 index 0000000..bb00545 --- /dev/null +++ b/src/app/groups/[groupId]/not-found.tsx @@ -0,0 +1,8 @@ +'use client' +import { redirect, useParams } from 'next/navigation' + +export default function NotFound() { + const { groupId } = useParams() + console.log('Not found!', { groupId }) + redirect(`/groups/${groupId}`) +} diff --git a/src/components/expense-form.tsx b/src/components/expense-form.tsx index b4cf150..a5cae6e 100644 --- a/src/components/expense-form.tsx +++ b/src/components/expense-form.tsx @@ -65,11 +65,13 @@ export function ExpenseForm({ group, expense }: Props) { return (
- expense - ? updateExpenseAction(group.id, expense.id, values) - : createExpenseAction(group.id, values), - )} + onSubmit={form.handleSubmit(async (values) => { + if (expense) { + await updateExpenseAction(group.id, expense.id, values) + } else { + await createExpenseAction(group.id, values) + } + })} >