--- /** * Avatar Variants Management * Full CRUD for avatar_variants collection */ import AdminLayout from '@/layouts/AdminLayout.astro'; import { getDirectusClient } from '@/lib/directus/client'; import { readItems } from '@directus/sdk'; const client = getDirectusClient(); let items = []; let error = null; let stats = { total: 0, male: 0, female: 0, neutral: 0, }; try { items = await client.request(readItems('avatar_variants', { fields: ['*'], sort: ['avatar_key', 'variant_type'], })); stats.total = items.length; stats.male = items.filter((i: any) => i.variant_type === 'male').length; stats.female = items.filter((i: any) => i.variant_type === 'female').length; stats.neutral = items.filter((i: any) => i.variant_type === 'neutral').length; } catch (e) { console.error('Error fetching avatar variants:', e); error = e instanceof Error ? e.message : 'Unknown error'; } ---

🎭 Avatar Variants

Manage gender and tone variations

✨ New Variant
{error && (
Error: {error}
)}
Total Variants
{stats.total}
Male
{stats.male}
Female
{stats.female}
Neutral
{stats.neutral}

All Variants

{items.map((variant: any, index: number) => ( ))}
Avatar Type Pronouns Identity Actions
{variant.avatar_key} {variant.variant_type} {variant.pronoun} {variant.identity} Edit
{items.length === 0 && !error && (

No variants found. Create your first one!

)}