Release 2.3.2

This commit is contained in:
2025-07-17 22:03:56 +03:00
parent 3ad6bf75a3
commit c7825f20b9
8 changed files with 324 additions and 16 deletions

View File

@@ -1,4 +1,5 @@
import { Inter } from 'next/font/google';
import Script from 'next/script';
import './globals.css';
import { ClientLayout } from '@/components/ClientLayout';
import { Providers } from '@/components/Providers';
@@ -22,8 +23,44 @@ export default function RootLayout({
<html lang="ru">
<head>
<meta name="darkreader-lock" />
{/* Google tag (gtag.js) */}
<Script
strategy="afterInteractive"
src="https://www.googletagmanager.com/gtag/js?id=G-B4DPLCBCH4"
/>
<Script id="gtag-init" strategy="afterInteractive">
{`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-B4DPLCBCH4');
`}
</Script>
{/* Google Tag Manager */}
<Script id="google-tag-manager" strategy="afterInteractive">
{`
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-57L8PCLP');
`}
</Script>
{/* End Google Tag Manager */}
</head>
<body className={inter.className} suppressHydrationWarning>
{/* Google Tag Manager (noscript) */}
<noscript>
<iframe
src="https://www.googletagmanager.com/ns.html?id=GTM-57L8PCLP"
height="0"
width="0"
style={{ display: 'none', visibility: 'hidden' }}
></iframe>
</noscript>
{/* End Google Tag Manager (noscript) */}
<Providers>
<ClientLayout>{children}</ClientLayout>
</Providers>

View File

@@ -1,11 +1,11 @@
'use client';
import dynamic from 'next/dynamic';
const LoginClient = dynamic(() => import('./LoginClient'), {
ssr: false
});
export default function LoginPage() {
return <LoginClient />;
}
'use client';
import dynamic from 'next/dynamic';
const LoginClient = dynamic(() => import('./LoginClient'), {
ssr: false
});
export default function LoginPage() {
return <LoginClient />;
}

View File

@@ -6,6 +6,7 @@ import { moviesAPI } from '@/lib/neoApi';
import { getImageUrl } from '@/lib/neoApi';
import type { MovieDetails } from '@/lib/api';
import MoviePlayer from '@/components/MoviePlayer';
import TorrentSelector from '@/components/TorrentSelector';
import FavoriteButton from '@/components/FavoriteButton';
import Reactions from '@/components/Reactions';
import { formatDate } from '@/lib/utils';
@@ -142,6 +143,10 @@ export default function MovieContent({ movieId, initialMovie }: MovieContentProp
poster={movie.poster_path || ''}
imdbId={imdbId}
/>
<TorrentSelector
imdbId={imdbId}
type="movie"
/>
</div>
)}
</div>

View File

@@ -81,11 +81,11 @@ export default function HomePage() {
<div className="mt-8 flex justify-center">
{activeTab === 'popular' && (
<Pagination
currentPage={currentPage}
totalPages={totalPages}
onPageChange={setPage}
/>
<Pagination
currentPage={currentPage}
totalPages={totalPages}
onPageChange={setPage}
/>
)}
</div>
</div>

View File

@@ -6,6 +6,7 @@ import { tvAPI } from '@/lib/api';
import { getImageUrl } from '@/lib/neoApi';
import type { TVShowDetails } from '@/lib/api';
import MoviePlayer from '@/components/MoviePlayer';
import TorrentSelector from '@/components/TorrentSelector';
import FavoriteButton from '@/components/FavoriteButton';
import Reactions from '@/components/Reactions';
import { formatDate } from '@/lib/utils';
@@ -145,6 +146,11 @@ export default function TVContent({ showId, initialShow }: TVContentProps) {
poster={show.poster_path || ''}
imdbId={imdbId}
/>
<TorrentSelector
imdbId={imdbId}
type="tv"
totalSeasons={show.number_of_seasons}
/>
</div>
)}
</div>