feat: enforce 12-hour limit for active tasting sessions

This commit is contained in:
2025-12-18 12:12:20 +01:00
parent e3af71c584
commit 6e09300bab
5 changed files with 83 additions and 4 deletions

View File

@@ -5,6 +5,7 @@ import Link from 'next/link';
import { Search, Filter, X, Calendar, Clock, Package, Lock, Unlock, Ghost, FlaskConical, AlertCircle, Trash2, AlertTriangle, PlusCircle } from 'lucide-react';
import { getStorageUrl } from '@/lib/supabase';
import { useSearchParams } from 'next/navigation';
import { validateSession } from '@/services/validate-session';
interface Bottle {
id: string;
@@ -115,6 +116,19 @@ interface BottleGridProps {
export default function BottleGrid({ bottles }: BottleGridProps) {
const searchParams = useSearchParams();
const sessionId = searchParams.get('session_id');
const [validatedSessionId, setValidatedSessionId] = useState<string | null>(null);
React.useEffect(() => {
const checkSession = async () => {
if (sessionId) {
const isValid = await validateSession(sessionId);
setValidatedSessionId(isValid ? sessionId : null);
} else {
setValidatedSessionId(null);
}
};
checkSession();
}, [sessionId]);
const [searchQuery, setSearchQuery] = useState('');
const [selectedCategory, setSelectedCategory] = useState<string | null>(null);
@@ -284,7 +298,7 @@ export default function BottleGrid({ bottles }: BottleGridProps) {
{filteredBottles.length > 0 ? (
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 w-full max-w-6xl mx-auto px-4">
{filteredBottles.map((bottle) => (
<BottleCard key={bottle.id} bottle={bottle} sessionId={sessionId} />
<BottleCard key={bottle.id} bottle={bottle} sessionId={validatedSessionId} />
))}
</div>
) : (