import { PageHeader } from "@/components/admin/form"; import { MEDIA_BUCKET_ID, userStorage } from "@/lib/appwrite-server"; import { requireSessionSecret } from "@/lib/auth"; import { Query } from "appwrite"; import { Upload } from "lucide-react"; import { DeleteButton } from "@/components/admin/delete-button"; import { uploadMedia, deleteMediaFile } from "@/lib/admin-actions"; async function listFiles() { try { const secret = await requireSessionSecret(); const res = await userStorage(secret).listFiles({ bucketId: MEDIA_BUCKET_ID, queries: [Query.orderDesc("$createdAt"), Query.limit(100)], }); return res.files; } catch { return []; } } function fileViewUrl(id: string) { return `${process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT}/storage/buckets/${MEDIA_BUCKET_ID}/files/${id}/view?project=${process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID}`; } export default async function MediaPage() { const files = await listFiles(); async function deleteAction(formData: FormData) { "use server"; const id = String(formData.get("id")); await deleteMediaFile(id); } return (
{files.length === 0 && (
Henüz görsel yüklenmemiş.
)} {files.map((f) => { const url = fileViewUrl(f.$id); return (
{/* eslint-disable-next-line @next/next/no-img-element */} {f.name}

{f.name}

{(f.sizeOriginal / 1024).toFixed(0)} KB

); })}
); }