feat: move offline indicator to header, rename to Offline-Modus, and redesign tasting form

This commit is contained in:
2025-12-21 00:13:33 +01:00
parent 74a10b193c
commit 716afce2ae
7 changed files with 148 additions and 122 deletions

View File

@@ -4,6 +4,7 @@ import React, { useEffect, useState } from 'react';
import BottleDetails from '@/components/BottleDetails';
import { createClient } from '@/lib/supabase/client';
import { validateSession } from '@/services/validate-session';
import OfflineIndicator from '@/components/OfflineIndicator';
import { useParams, useSearchParams } from 'next/navigation';
export default function BottlePage() {
@@ -40,7 +41,10 @@ export default function BottlePage() {
if (!bottleId) return null;
return (
<main className="min-h-screen bg-zinc-50 dark:bg-black p-4 md:p-12 lg:p-24">
<main className="min-h-screen bg-zinc-50 dark:bg-black p-4 md:p-12 lg:p-24 space-y-6">
<div className="max-w-4xl mx-auto flex justify-end">
<OfflineIndicator />
</div>
<BottleDetails
bottleId={bottleId}
sessionId={sessionId}

View File

@@ -53,7 +53,6 @@ export default function RootLayout({
<MainContentWrapper>
<SyncHandler />
<PWARegistration />
<OfflineIndicator />
<UploadQueue />
{children}
</MainContentWrapper>

View File

@@ -10,6 +10,7 @@ import SessionList from "@/components/SessionList";
import StatsDashboard from "@/components/StatsDashboard";
import DramOfTheDay from "@/components/DramOfTheDay";
import LanguageSwitcher from "@/components/LanguageSwitcher";
import OfflineIndicator from "@/components/OfflineIndicator";
import { useI18n } from "@/i18n/I18nContext";
import { useSession } from "@/context/SessionContext";
import { Sparkles } from "lucide-react";
@@ -181,6 +182,7 @@ export default function Home() {
)}
</div>
<div className="flex flex-wrap items-center justify-center sm:justify-end gap-3 md:gap-4">
<OfflineIndicator />
<LanguageSwitcher />
<DramOfTheDay bottles={bottles} />
<button

View File

@@ -12,6 +12,7 @@ import { useParams, useRouter } from 'next/navigation';
import { useI18n } from '@/i18n/I18nContext';
import SessionTimeline from '@/components/SessionTimeline';
import SessionABVCurve from '@/components/SessionABVCurve';
import OfflineIndicator from '@/components/OfflineIndicator';
interface Buddy {
id: string;
@@ -206,13 +207,16 @@ export default function SessionDetailPage() {
<main className="min-h-screen bg-zinc-50 dark:bg-black p-4 md:p-12 lg:p-24">
<div className="max-w-4xl mx-auto space-y-8">
{/* Back Button */}
<Link
href="/"
className="inline-flex items-center gap-2 text-zinc-400 hover:text-amber-600 transition-colors font-bold uppercase text-[10px] tracking-[0.2em]"
>
<ChevronLeft size={16} />
Alle Sessions
</Link>
<div className="flex justify-between items-center">
<Link
href="/"
className="inline-flex items-center gap-2 text-zinc-400 hover:text-amber-600 transition-colors font-bold uppercase text-[10px] tracking-[0.2em]"
>
<ChevronLeft size={16} />
Alle Sessions
</Link>
<OfflineIndicator />
</div>
{/* Hero */}
<header className="bg-white dark:bg-zinc-900 rounded-3xl p-8 border border-zinc-200 dark:border-zinc-800 shadow-xl relative overflow-hidden group">