feat: social UI optimization, collapsible sections, and admin fixes

This commit is contained in:
2025-12-18 21:16:09 +01:00
parent a64e8f17a1
commit 7008bbfd84
8 changed files with 326 additions and 162 deletions

View File

@@ -3,6 +3,8 @@
import React, { useState, useMemo } from 'react';
import { Calendar, Star, ArrowUpDown, Clock, Trash2, Loader2, Users, GlassWater } from 'lucide-react';
import Link from 'next/link';
import AvatarStack from './AvatarStack';
import { useI18n } from '@/i18n/I18nContext';
import { deleteTasting } from '@/services/delete-tasting';
interface Tasting {
@@ -33,6 +35,7 @@ interface TastingListProps {
}
export default function TastingList({ initialTastings, currentUserId }: TastingListProps) {
const { t } = useI18n();
const [sortBy, setSortBy] = useState<'date-desc' | 'date-asc' | 'rating-desc' | 'rating-asc'>('date-desc');
const [isDeleting, setIsDeleting] = useState<string | null>(null);
@@ -185,16 +188,14 @@ export default function TastingList({ initialTastings, currentUserId }: TastingL
</div>
{note.tasting_tags && note.tasting_tags.length > 0 && (
<div className="pt-3 flex flex-wrap gap-2 border-t border-zinc-100 dark:border-zinc-800">
<span className="text-[10px] font-black text-zinc-400 uppercase tracking-widest flex items-center gap-1.5 mr-1">
<Users size={12} className="text-amber-500" />
Gekostet mit:
</span>
{note.tasting_tags.map((tag) => (
<span key={tag.buddies.id} className="text-[10px] font-bold text-zinc-600 dark:text-zinc-400 bg-zinc-100 dark:bg-zinc-800/80 px-2 py-0.5 rounded-full">
{tag.buddies.name}
<div className="pt-3 flex items-center justify-between border-t border-zinc-100 dark:border-zinc-800">
<div className="flex items-center gap-2">
<span className="text-[10px] font-black text-zinc-400 uppercase tracking-widest flex items-center gap-1.5 mr-1">
<Users size={12} className="text-amber-500" />
{t('tasting.with') || 'Mit'}:
</span>
))}
<AvatarStack names={note.tasting_tags.map(tag => tag.buddies.name)} />
</div>
</div>
)}
</div>