Skip to content

Commit

Permalink
πŸš‘οΈ 잘λͺ»λœ searchParam νƒ€μž… μˆ˜μ • (#324)
Browse files Browse the repository at this point in the history
  • Loading branch information
yeolyi authored Mar 8, 2025
1 parent bbf7282 commit 5d8e8fb
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 33 deletions.
34 changes: 34 additions & 0 deletions app/[locale]/community/council/meeting-minute/create/client.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
'use client';

import { postMinutesByYearAction } from '@/actions/council';
import PageLayout from '@/components/layout/pageLayout/PageLayout';
import { councilMinute } from '@/constants/segmentNode';
import { useRouter } from '@/i18n/routing';
import { contentToFormData } from '@/utils/formData';
import { getPath } from '@/utils/page';

import CouncilMeetingMinuteEditor, { MinuteFormData } from '../CouncilMeetingMinuteEditor';

const minutePath = getPath(councilMinute);

export default function CouncilMinuteCreateClientPage({ year }: { year: number }) {
const router = useRouter();

const onCancel = () => router.push(minutePath);

const onSubmit = async (requestObject: MinuteFormData) => {
const formData = contentToFormData('CREATE', { attachments: requestObject.file });
await postMinutesByYearAction(requestObject.year, formData);
};

return (
// TODO: 영문 λ²ˆμ—­
<PageLayout title={`${year ? `${year}λ…„ ` : ''}ν•™μƒνšŒ 회의둝 μΆ”κ°€`} titleType="big" hideNavbar>
<CouncilMeetingMinuteEditor
defaultValues={year ? { year, file: [] } : undefined}
onSubmit={onSubmit}
onCancel={onCancel}
/>
</PageLayout>
);
}
41 changes: 8 additions & 33 deletions app/[locale]/community/council/meeting-minute/create/page.tsx
Original file line number Diff line number Diff line change
@@ -1,42 +1,17 @@
'use client';

import { postMinutesByYearAction } from '@/actions/council';
import PageLayout from '@/components/layout/pageLayout/PageLayout';
import { councilMinute } from '@/constants/segmentNode';
import { useRouter } from '@/i18n/routing';
import { contentToFormData } from '@/utils/formData';
import { getPath } from '@/utils/page';
import CouncilMinuteCreateClientPage from '@/app/[locale]/community/council/meeting-minute/create/client';

import CouncilMeetingMinuteEditor, { MinuteFormData } from '../CouncilMeetingMinuteEditor';

const minutePath = getPath(councilMinute);

export default function CouncilMinuteCreatePage({
export default async function CouncilMinuteCreatePage({
searchParams,
}: {
searchParams: { year?: string };
searchParams: Promise<{ year?: string }>;
}) {
const year = Number(searchParams.year);
if (searchParams.year !== undefined && Number.isNaN(year))
throw new Error('/meeting-minute?year=[year]: yearκ°€ μˆ«μžκ°€ μ•„λ‹™λ‹ˆλ‹€.');
const { year } = await searchParams;
const yearInNumber = Number(year);

const router = useRouter();

const onCancel = () => router.push(minutePath);

const onSubmit = async (requestObject: MinuteFormData) => {
const formData = contentToFormData('CREATE', { attachments: requestObject.file });
await postMinutesByYearAction(requestObject.year, formData);
};
if (yearInNumber !== undefined && Number.isNaN(yearInNumber))
throw new Error('/meeting-minute?year=[year]: yearκ°€ μˆ«μžκ°€ μ•„λ‹™λ‹ˆλ‹€.');

return (
// TODO: 영문 λ²ˆμ—­
<PageLayout title={`${year ? `${year}λ…„ ` : ''}ν•™μƒνšŒ 회의둝 μΆ”κ°€`} titleType="big" hideNavbar>
<CouncilMeetingMinuteEditor
defaultValues={year ? { year, file: [] } : undefined}
onSubmit={onSubmit}
onCancel={onCancel}
/>
</PageLayout>
);
return <CouncilMinuteCreateClientPage year={yearInNumber} />;
}

0 comments on commit 5d8e8fb

Please sign in to comment.