From 41735c5280bf5b20625e80aecc16c39822420236 Mon Sep 17 00:00:00 2001
From: "Carlos (Almeira)"
Date: Wed, 15 Apr 2026 17:05:16 -0500
Subject: [PATCH] feat(media): add filtering by type and sorting by creation
date
---
src/app/dashboard/media/page.tsx | 84 ++++++++++++++++++++++----------
1 file changed, 57 insertions(+), 27 deletions(-)
diff --git a/src/app/dashboard/media/page.tsx b/src/app/dashboard/media/page.tsx
index 4ae4b2b..31fd215 100644
--- a/src/app/dashboard/media/page.tsx
+++ b/src/app/dashboard/media/page.tsx
@@ -9,11 +9,13 @@ import { Query } from 'node-appwrite';
export default async function MediaLibraryPage({
searchParams
}: {
- searchParams: { q?: string, page?: string }
+ searchParams: Promise<{ q?: string, page?: string, tipo?: string, orden?: string }>
}) {
const sParams = await searchParams;
const q = sParams.q || '';
const page = Number(sParams.page) || 1;
+ const tipo = sParams.tipo || '';
+ const orden = sParams.orden || 'desc';
const limit = 12;
const offset = (page - 1) * limit;
@@ -26,12 +28,16 @@ export default async function MediaLibraryPage({
const queries = [
Query.limit(limit),
Query.offset(offset),
- Query.orderDesc('$createdAt')
+ orden === 'asc' ? Query.orderAsc('$createdAt') : Query.orderDesc('$createdAt')
];
if (q) {
queries.push(Query.contains('titulo', q));
}
+
+ if (tipo === 'imagen' || tipo === 'video') {
+ queries.push(Query.equal('tipo', tipo));
+ }
const response = await sessionClient.databases.listDocuments(
APPWRITE_ALMEIRA_CONFIG.databaseId,
@@ -65,16 +71,28 @@ export default async function MediaLibraryPage({
-