diff --git a/src/lib/components/TablaUsuarios.svelte b/src/lib/components/TablaUsuarios.svelte
new file mode 100644
index 0000000..25ffd32
--- /dev/null
+++ b/src/lib/components/TablaUsuarios.svelte
@@ -0,0 +1,38 @@
+
+
+
+
+
+ Usuario
+ Nombre
+ Cantidad de posts
+ Fecha de Creacion
+ Acciones
+
+
+
+ {#each usuarios as usuario}
+
+ @{usuario.username}
+ {usuario.displayName}
+ ?
+ {usuario.createdAt.replace('Z', ' ').replace('T', ' | ')}
+ ?
+
+ {/each}
+
+
diff --git a/src/lib/components/crear-post.svelte b/src/lib/components/crear-post.svelte
index dd40c7f..19da76a 100644
--- a/src/lib/components/crear-post.svelte
+++ b/src/lib/components/crear-post.svelte
@@ -85,6 +85,7 @@
- import CardAction from '@/components/ui/card/card-action.svelte';
import CardContent from '@/components/ui/card/card-content.svelte';
- import CardHeader from '@/components/ui/card/card-header.svelte';
- import CardTitle from '@/components/ui/card/card-title.svelte';
import Card from '@/components/ui/card/card.svelte';
import TableBody from '@/components/ui/table/table-body.svelte';
import TableHead from '@/components/ui/table/table-head.svelte';
@@ -12,10 +9,11 @@
import type { User } from '../../../types';
import CardDescription from '@/components/ui/card/card-description.svelte';
import Spinner from '@/components/ui/spinner/spinner.svelte';
+ import TableCell from '@/components/ui/table/table-cell.svelte';
+ import { page } from '$app/state';
+ import TablaUsuarios from '@/components/TablaUsuarios.svelte';
- let usuarios: User[] = $state([]);
let cargando = $state(true);
- let error = $state(true);
@@ -25,33 +23,18 @@
>
Gestion Usuarios
-
+
- {#if usuarios.length === 0}
- {#if error}
+ {#if page.data.usuarios.length === 0}
+ {#if page.data.error}
Error al cargar usuarios.
- {:else if cargando}
-
-
- Cargando usuarios...
-
{:else}
No hay posts que mostar
{/if}
{:else}
-
-
-
- Usuario
- Nombre
- Cantidad de posts
- Acciones
-
-
-
-
+
{/if}
diff --git a/src/routes/(privado)/admin/+page.ts b/src/routes/(privado)/admin/+page.ts
new file mode 100644
index 0000000..b253ba8
--- /dev/null
+++ b/src/routes/(privado)/admin/+page.ts
@@ -0,0 +1,29 @@
+import { apiBase } from '@/stores/url.js';
+import { sesionStore } from '@/stores/usuario';
+import { redirect } from '@sveltejs/kit';
+import { get } from 'svelte/store';
+import type { UserResponseDto } from '../../../types.js';
+
+//para que solo se envie cuando se requiere
+export const prerender = true;
+
+export async function load({}) {
+ const response = await fetch(get(apiBase) + '/api/admin/users', {
+ method: 'GET',
+ headers: {
+ 'Content-Type': 'application/json',
+ Authorization: `Bearer ${get(sesionStore)?.accessToken}`
+ }
+ });
+
+ if (response.status === 401) {
+ throw redirect(302, '/');
+ }
+ if (!response.ok) {
+ return { error: true };
+ }
+
+ const usuarios: UserResponseDto[] = await response.json();
+
+ return { usuarios, error: false };
+}