diff --git a/next.config.ts b/next.config.ts index 0b4bdde9..c414beb3 100644 --- a/next.config.ts +++ b/next.config.ts @@ -39,10 +39,6 @@ const nextConfig: NextConfig = { key: 'X-Content-Type-Options', value: 'nosniff', }, - { - key: 'X-Frame-Options', - value: 'DENY', - }, { key: 'X-XSS-Protection', value: '1; mode=block', diff --git a/src/app/books/layout.tsx b/src/app/books/layout.tsx new file mode 100644 index 00000000..da0ae9f6 --- /dev/null +++ b/src/app/books/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Books', + description: 'Browse Books on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/books/page.tsx b/src/app/books/page.tsx index 696acd02..e4bfa1e3 100644 --- a/src/app/books/page.tsx +++ b/src/app/books/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * Books Page * diff --git a/src/app/dht/layout.tsx b/src/app/dht/layout.tsx new file mode 100644 index 00000000..140cfd6d --- /dev/null +++ b/src/app/dht/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'DHT Torrents', + description: 'Browse DHT Torrents on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/dht/page.tsx b/src/app/dht/page.tsx index 50efbd50..75727c69 100644 --- a/src/app/dht/page.tsx +++ b/src/app/dht/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * DHT Index Page * diff --git a/src/app/favicon.ico b/src/app/favicon.ico new file mode 100644 index 00000000..1c7b4a52 Binary files /dev/null and b/src/app/favicon.ico differ diff --git a/src/app/find-torrents/layout.tsx b/src/app/find-torrents/layout.tsx new file mode 100644 index 00000000..d4943352 --- /dev/null +++ b/src/app/find-torrents/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Find Torrents', + description: 'Browse Find Torrents on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/find-torrents/page.tsx b/src/app/find-torrents/page.tsx index 7c4f5a2e..0eca2585 100644 --- a/src/app/find-torrents/page.tsx +++ b/src/app/find-torrents/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * Find Torrents Page * diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 8cea83a1..77fd486f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -75,8 +75,8 @@ export const viewport: Viewport = { themeColor: '#8b5cf6', width: 'device-width', initialScale: 1, - maximumScale: 1, - userScalable: false, + maximumScale: 5, + userScalable: true, viewportFit: 'cover', }; diff --git a/src/app/live-tv/page.tsx b/src/app/live-tv/page.tsx index 75c2f9d1..17c66554 100644 --- a/src/app/live-tv/page.tsx +++ b/src/app/live-tv/page.tsx @@ -19,7 +19,7 @@ export default async function LiveTvPage(): Promise { const user = await getCurrentUser(); if (!user) { - redirect('/login?redirect=/live-tv'); + redirect('/login?redirect=/live-tv&reason=live-tv'); } return ; diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 5be9ac90..3dff8fcd 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -6,7 +6,7 @@ * User authentication with email/password. */ -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import Link from 'next/link'; import Image from 'next/image'; import { MainLayout } from '@/components/layout'; @@ -17,6 +17,12 @@ export default function LoginPage(): React.ReactElement { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [isLoading, setIsLoading] = useState(false); + const [reason, setReason] = useState(null); + + useEffect(() => { + const params = new URLSearchParams(window.location.search); + setReason(params.get('reason')); + }, []); const [error, setError] = useState(null); const handleSubmit = async (e: React.FormEvent): Promise => { @@ -53,6 +59,12 @@ export default function LoginPage(): React.ReactElement {
+ {/* Reason message for redirects */} + {reason === 'live-tv' && ( +
+ Sign in to access Live TV — add your IPTV playlists and stream live channels. +
+ )} {/* Logo */}
diff --git a/src/app/movies/layout.tsx b/src/app/movies/layout.tsx new file mode 100644 index 00000000..8c412580 --- /dev/null +++ b/src/app/movies/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Movies', + description: 'Browse Movies on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/movies/page.tsx b/src/app/movies/page.tsx index 5e242659..e075377c 100644 --- a/src/app/movies/page.tsx +++ b/src/app/movies/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * Movies Page * diff --git a/src/app/music/layout.tsx b/src/app/music/layout.tsx new file mode 100644 index 00000000..1b223a73 --- /dev/null +++ b/src/app/music/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Music', + description: 'Browse Music on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/music/page.tsx b/src/app/music/page.tsx index 77bf0c40..4d7aac36 100644 --- a/src/app/music/page.tsx +++ b/src/app/music/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * Music Page * diff --git a/src/app/search/layout.tsx b/src/app/search/layout.tsx new file mode 100644 index 00000000..e378cfa4 --- /dev/null +++ b/src/app/search/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Search', + description: 'Browse Search on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/search/page.tsx b/src/app/search/page.tsx index c9471ade..44084678 100644 --- a/src/app/search/page.tsx +++ b/src/app/search/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * Search Page * diff --git a/src/app/trending/layout.tsx b/src/app/trending/layout.tsx new file mode 100644 index 00000000..faf4dd58 --- /dev/null +++ b/src/app/trending/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Trending', + description: 'Browse Trending on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/trending/page.tsx b/src/app/trending/page.tsx index f75a7876..bf8bbb04 100644 --- a/src/app/trending/page.tsx +++ b/src/app/trending/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * Trending Page * diff --git a/src/app/tvshows/layout.tsx b/src/app/tvshows/layout.tsx new file mode 100644 index 00000000..6647321d --- /dev/null +++ b/src/app/tvshows/layout.tsx @@ -0,0 +1,10 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'TV Shows', + description: 'Browse TV Shows on BitTorrented', +}; + +export default function Layout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/tvshows/page.tsx b/src/app/tvshows/page.tsx index b727a832..f0b90553 100644 --- a/src/app/tvshows/page.tsx +++ b/src/app/tvshows/page.tsx @@ -1,5 +1,6 @@ 'use client'; + /** * TV Shows Page *