import { useState } from 'react' import { useTranslation } from 'react-i18next' import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/shared/ui/dialog' import { ManualInboxPanel } from './ManualInboxPanel' import { MovieImportPanel } from './MovieImportPanel' import { UploadToShowPanel } from './UploadToShowPanel' /** Способы пополнить библиотеку: серии из manual/, фильмы пачкой, загрузка файлов в шоу. */ type Tab = 'manual' | 'movies' | 'toShow' /** * Одно окно на все способы завести медиа: серии из `manual/` в шоу, фильмы пачкой и загрузка * выбранных файлов в шоу. Раньше это были три кнопки и три окна — а выбор между ними делается * один раз и по одному признаку: что за контент кладём. * * Первой открывается вкладка серий: сериалами библиотека пополняется чаще, и попасть в неё сразу * важнее, чем в разбор фильмов, который делают раз на пачку. */ export function MediaImportDialog({ onClose }: Readonly<{ onClose: () => void }>) { const { t } = useTranslation() const [tab, setTab] = useState('manual') const tabs: Tab[] = ['manual', 'movies', 'toShow'] return ( !open && onClose()}> {/* Высота фиксирована: вкладки разного роста, и окно, прыгающее при переключении, сбивает — то, на что метился курсор, уезжает из-под него. */} {t('admin.media.importTitle')} {t('admin.media.importHint')}
{tabs.map((item) => ( ))}
{tab === 'movies' && } {tab === 'manual' && } {tab === 'toShow' && }
) }