@@ -239,6 +339,88 @@ function LogPageContent() {
/>
+ {/* External Ratings */}
+ {loadingRatings && (
+
+
+ Lade externe Bewertungen...
+
+ )}
+
+ {externalRatings && !loadingRatings && (
+
+
Externe Bewertungen
+
+ {externalRatings.imdb_rating && (
+
+
IMDb
+
+ {externalRatings.imdb_rating}
+
+ ({externalRatings.imdb_vote_count?.toLocaleString()})
+
+
+
+ )}
+ {externalRatings.rotten_tomatoes_rating && (
+
+ Rotten Tomatoes
+ {externalRatings.rotten_tomatoes_rating}%
+
+ )}
+ {!externalRatings.imdb_rating && !externalRatings.rotten_tomatoes_rating && (
+
Keine externen Bewertungen verfügbar
+ )}
+
+
+ )}
+
+ {/* TV Show Episode Info */}
+ {selectedMovie?.media_type === 'tv' && (
+
+
Episoden-Informationen
+
+
+ Optional - Lasse leer für die ganze Serie
+
+
+ )}
+
{/* Watch date */}
diff --git a/app/(app)/profile/page.tsx b/app/(app)/profile/page.tsx
index 8dff1ae..298fa87 100644
--- a/app/(app)/profile/page.tsx
+++ b/app/(app)/profile/page.tsx
@@ -9,7 +9,7 @@ export default async function ProfilePage() {
const { data: profile } = await supabase
.from("profiles")
- .select("*")
+ .select("display_name, avatar_url, theme")
.eq("id", user!.id)
.single()
diff --git a/app/api/tmdb/search/route.ts b/app/api/tmdb/search/route.ts
index aefc1fc..77b99f8 100644
--- a/app/api/tmdb/search/route.ts
+++ b/app/api/tmdb/search/route.ts
@@ -1,5 +1,5 @@
import { NextRequest, NextResponse } from "next/server"
-import { searchMovies } from "@/lib/tmdb"
+import { searchAll } from "@/lib/tmdb"
export async function GET(request: NextRequest) {
const query = request.nextUrl.searchParams.get("q")
@@ -10,7 +10,7 @@ export async function GET(request: NextRequest) {
}
try {
- const data = await searchMovies(query, Number(page))
+ const data = await searchAll(query, Number(page))
return NextResponse.json(data)
} catch {
return NextResponse.json({ error: "Suche fehlgeschlagen" }, { status: 500 })
diff --git a/app/auth/login/page.tsx b/app/auth/login/page.tsx
index 779d9d5..0fb0ba6 100644
--- a/app/auth/login/page.tsx
+++ b/app/auth/login/page.tsx
@@ -7,6 +7,8 @@ import { useRouter } from "next/navigation"
import Link from "next/link"
import { createClient } from "@/lib/supabase/client"
import { Film, Eye, Loader2 } from "lucide-react"
+import { useLanguage } from "@/contexts/LanguageContext"
+import { LanguageToggle } from "@/components/language-toggle"
export default function LoginPage() {
const [email, setEmail] = useState("")
@@ -14,6 +16,7 @@ export default function LoginPage() {
const [error, setError] = useState
(null)
const [loading, setLoading] = useState(false)
const router = useRouter()
+ const { t } = useLanguage()
async function handleLogin(e: React.FormEvent) {
e.preventDefault()
@@ -27,7 +30,7 @@ export default function LoginPage() {
})
if (error) {
- setError("E-Mail oder Passwort falsch.")
+ setError(t("auth.invalidCredentials"))
setLoading(false)
return
}
@@ -39,6 +42,9 @@ export default function LoginPage() {
return (
+
+
+
@@ -47,14 +53,14 @@ export default function LoginPage() {
InFocus
- Familienfilm-Tagebuch
+ {t("auth.familyMovieDiary")}
- Noch kein Konto?{" "}
+ {t("auth.dontHaveAccount")}{" "}
- Registrieren
+ {t("auth.signUp")}
diff --git a/app/auth/sign-up/page.tsx b/app/auth/sign-up/page.tsx
index 64c0bd6..310df12 100644
--- a/app/auth/sign-up/page.tsx
+++ b/app/auth/sign-up/page.tsx
@@ -7,6 +7,8 @@ import { useRouter } from "next/navigation"
import Link from "next/link"
import { createClient } from "@/lib/supabase/client"
import { Film, UserPlus, Loader2 } from "lucide-react"
+import { useLanguage } from "@/contexts/LanguageContext"
+import { LanguageToggle } from "@/components/language-toggle"
export default function SignUpPage() {
const [email, setEmail] = useState("")
@@ -15,6 +17,7 @@ export default function SignUpPage() {
const [error, setError] = useState
(null)
const [loading, setLoading] = useState(false)
const router = useRouter()
+ const { t } = useLanguage()
async function handleSignUp(e: React.FormEvent) {
e.preventDefault()
@@ -47,22 +50,25 @@ export default function SignUpPage() {
return (
+
+
+
- Konto erstellen
+ {t("auth.createAccount")}
- Tritt deinem Familien-Filmclub bei
+ {t("auth.joinFamilyMovieClub")}
@@ -102,7 +108,7 @@ export default function SignUpPage() {
placeholder="Mindestens 6 Zeichen"
required
minLength={6}
- className="h-12 rounded-lg border border-border bg-secondary px-4 text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring"
+ className="glass-input h-12 text-sm"
/>
@@ -113,7 +119,7 @@ export default function SignUpPage() {