feat: organizers, meetups UI, Plausible analytics, and migration tooling
- Add organizer model/API, admin and public organizer pages, meetup cards - Refresh events/home/contact; add calendar dialog and carousel components - Optional Plausible via NEXT_PUBLIC_PLAUSIBLE_* env vars in root layout - Prisma migration, seed updates, baseline-and-migrate script Made-with: Cursor
This commit is contained in:
@@ -51,10 +51,11 @@ export const api = {
|
||||
request<void>(`/posts/${id}`, { method: "DELETE" }),
|
||||
|
||||
// Meetups
|
||||
getMeetups: (params?: { status?: string; admin?: boolean }) => {
|
||||
getMeetups: (params?: { status?: string; admin?: boolean; organizerSlug?: string }) => {
|
||||
const searchParams = new URLSearchParams();
|
||||
if (params?.status) searchParams.set("status", params.status);
|
||||
if (params?.admin) searchParams.set("admin", "true");
|
||||
if (params?.organizerSlug) searchParams.set("organizerSlug", params.organizerSlug);
|
||||
const qs = searchParams.toString();
|
||||
return request<any[]>(`/meetups${qs ? `?${qs}` : ""}`);
|
||||
},
|
||||
@@ -103,6 +104,17 @@ export const api = {
|
||||
deleteCategory: (id: string) =>
|
||||
request<void>(`/categories/${id}`, { method: "DELETE" }),
|
||||
|
||||
// Organizers
|
||||
getOrganizers: () => request<any[]>("/organizers"),
|
||||
getOrganizerBySlug: (slug: string) =>
|
||||
request<any>(`/organizers/by-slug/${encodeURIComponent(slug)}`),
|
||||
createOrganizer: (data: { name: string; slug: string }) =>
|
||||
request<any>("/organizers", { method: "POST", body: JSON.stringify(data) }),
|
||||
updateOrganizer: (id: string, data: { name?: string; slug?: string }) =>
|
||||
request<any>(`/organizers/${id}`, { method: "PATCH", body: JSON.stringify(data) }),
|
||||
deleteOrganizer: (id: string) =>
|
||||
request<void>(`/organizers/${id}`, { method: "DELETE" }),
|
||||
|
||||
// Relays
|
||||
getRelays: () => request<any[]>("/relays"),
|
||||
addRelay: (data: { url: string; priority?: number }) =>
|
||||
|
||||
Reference in New Issue
Block a user