import axios from 'axios'; import { useRouter } from 'next/router'; import React, { useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import useSWR, { mutate } from 'swr'; import useLocale from '../../hooks/useLocale'; import AppDataWarning from '../AppDataWarning'; import Badge from '../Common/Badge'; import Button from '../Common/Button'; import ImageFader from '../Common/ImageFader'; import PageTitle from '../Common/PageTitle'; import LanguagePicker from '../Layout/LanguagePicker'; import SettingsPlex from '../Settings/SettingsPlex'; import SettingsServices from '../Settings/SettingsServices'; import LoginWithPlex from './LoginWithPlex'; import SetupSteps from './SetupSteps'; const messages = defineMessages({ setup: 'Setup', finish: 'Finish Setup', finishing: 'Finishing…', continue: 'Continue', loginwithplex: 'Sign in with Plex', configureplex: 'Configure Plex', configureservices: 'Configure Services', tip: 'Tip', scanbackground: 'Scanning will run in the background. You can continue the setup process in the meantime.', }); const Setup: React.FC = () => { const intl = useIntl(); const [isUpdating, setIsUpdating] = useState(false); const [currentStep, setCurrentStep] = useState(1); const [plexSettingsComplete, setPlexSettingsComplete] = useState(false); const router = useRouter(); const { locale } = useLocale(); const finishSetup = async () => { setIsUpdating(true); const response = await axios.post<{ initialized: boolean }>( '/api/v1/settings/initialize' ); setIsUpdating(false); if (response.data.initialized) { await axios.post('/api/v1/settings/main', { locale }); mutate('/api/v1/settings/public'); router.push('/'); } }; const { data: backdrops } = useSWR('/api/v1/backdrops', { refreshInterval: 0, refreshWhenHidden: false, revalidateOnFocus: false, }); return (
`https://www.themoviedb.org/t/p/original${backdrop}` ) ?? [] } />
Logo
{currentStep === 1 && ( setCurrentStep(2)} /> )} {currentStep === 2 && (
setPlexSettingsComplete(true)} />
{intl.formatMessage(messages.tip)} {intl.formatMessage(messages.scanbackground)}
)} {currentStep === 3 && (
)}
); }; export default Setup;