import type { Metadata } from "next"; import { redirect } from "next/navigation"; import Image from "next/image"; import Link from "next/link"; import { getServerSession } from "next-auth"; import { authOptions } from "@/lib/auth"; import { profileService } from "@/server/services/profile.service"; import { payoutRepo } from "@/server/repositories/payout.repo"; import { TripCard } from "@/features/trip/components/trip-card"; import { ProfileTripRow } from "@/features/profile/components/profile-trip-row"; import { ProfileEditor } from "@/features/profile/components/profile-editor"; import { EarningsSection } from "@/features/payout/components/earnings-section"; export const metadata: Metadata = { title: "Profil Saya", robots: { index: false, follow: false }, }; export default async function ProfilePage() { const session = await getServerSession(authOptions); if (!session?.user) { redirect("/login?callbackUrl=/profile"); } const [data, ownProfile, payouts] = await Promise.all([ profileService.getProfileDashboard(session.user.id), profileService.getOwnProfile(session.user.id), payoutRepo.listForOrganizer(session.user.id), ]); const { user, isVerifiedOrganizer, organizedTrips, activeJoined, cancelledJoined, reviewable, } = data; const memberSince = new Intl.DateTimeFormat("id-ID", { month: "long", year: "numeric", }).format(user.createdAt); return (
{user.email}
Anggota sejak {memberSince}
Di sini kamu bisa lihat trip yang kamu buat sebagai{" "} organizer, trip yang kamu{" "} ikuti{" "} sebagai peserta, dan{" "} ulasan untuk trip yang sudah selesai (lewat halaman trip).
Trip yang sudah lewat tidak tampil di daftar Open Trip. Buka trip di bawah ini lalu scroll ke bagian ulasan di halaman detail untuk memberi atau mengubah rating.
Belum ada trip.{" "} Buat trip pertama
) : (Belum join trip.{" "} Cari open trip
) : (