Skip to content

Commit 65d3722

Browse files
committed
feat(edit): setup service and page edit
1 parent 1044167 commit 65d3722

6 files changed

Lines changed: 56 additions & 8 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const EditEventPage = () => {
2+
return <div>EditEventPage</div>;
3+
};
4+
export default EditEventPage;

src/app/[locale]/admin/events/[eventId]/page.tsx

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/domains/Events.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,9 @@ export const createEventFormSchema = (t: (key: string) => string) =>
109109
export type EventFormType = z.infer<ReturnType<typeof createEventFormSchema>>;
110110

111111
export type CreateEventPayload = Omit<EventFormType, "image"> & { file_name: string };
112+
113+
export type AdminEventResponseType = Omit<EventFormType, "image"> & {
114+
id: number;
115+
author: string;
116+
file_name: string;
117+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { EventFormType } from "@/domains/Events";
2+
import EventForm from "../components/EventForm";
3+
4+
const AdminEventUpdatePage = () => {
5+
const handleSubmit = (data: EventFormType) => {
6+
// createMutation.mutate(data);
7+
console.log(data);
8+
};
9+
10+
return (
11+
<section>
12+
<div className="mb-6">
13+
<h1 className="text-2xl font-bold">Edit Event</h1>
14+
<p className="text-muted-foreground">Edit event details quickly and easily.</p>
15+
</div>
16+
17+
<EventForm onSubmit={handleSubmit} mode="edit" isLoading={false} />
18+
</section>
19+
);
20+
};
21+
export default AdminEventUpdatePage;

src/features/events/pages/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export { default as AdminEventsListPage } from "./AdminEventsListPage";
22
export { default as AdminEventsCreatePage } from "./AdminEventsCreatePage";
3+
export { default as AdminEventUpdatePage } from "./AdminEventUpdatePage";
34
export { default as PublicEventListPage } from "./PublicEventListPage";
45
export { default as PublicEventDetailPage } from "./PublicEventDetailPage";
56
export { default as UserEventPage } from "./UserEventPage";

src/services/events/index.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { HttpResponse } from "@/types/http";
22
import { fetcher } from "../instance";
3-
import { CreateEventPayload, EventType, RegistrationForm, UserEventType } from "@/domains/Events";
3+
import {
4+
AdminEventResponseType,
5+
CreateEventPayload,
6+
EventType,
7+
RegistrationForm,
8+
UserEventType,
9+
} from "@/domains/Events";
410

511
export const eventsService = {
612
/**
@@ -56,7 +62,24 @@ export const eventsService = {
5662
});
5763
},
5864

65+
/**
66+
* API to create event for admin.
67+
*/
5968
async createEventAdmin(payload: CreateEventPayload): Promise<HttpResponse<null>> {
6069
return fetcher.post(`/admin/events`, payload);
6170
},
71+
72+
/**
73+
* API to get detail event for admin.
74+
*/
75+
async getDetailEventAdmin(id: string): Promise<HttpResponse<AdminEventResponseType>> {
76+
return fetcher.get(`/api/v1/admin/events/${id}`);
77+
},
78+
79+
/**
80+
* API to update event for admin.
81+
*/
82+
async updateEventAdmin(id: string, payload: CreateEventPayload): Promise<HttpResponse<null>> {
83+
return fetcher.put(`/admin/events/${id}`, payload);
84+
},
6285
};

0 commit comments

Comments
 (0)