import { useRouter } from 'next/router'; import React, { useState } from 'react'; import Button from '../Common/Button'; import ImageFader from '../Common/ImageFader'; import SettingsPlex from '../Settings/SettingsPlex'; import SettingsServices from '../Settings/SettingsServices'; import LoginWithPlex from './LoginWithPlex'; import SetupSteps from './SetupSteps'; import axios from 'axios'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import Badge from '../Common/Badge'; import LanguagePicker from '../Layout/LanguagePicker'; import PageTitle from '../Common/PageTitle'; const messages = defineMessages({ setup: 'Setup', finish: 'Finish Setup', finishing: 'Finishing…', continue: 'Continue', loginwithplex: 'Login with Plex', configureplex: 'Configure Plex', configureservices: 'Configure Services', tip: 'Tip', syncingbackground: 'Syncing 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 finishSetup = async () => { setIsUpdating(false); const response = await axios.get<{ initialized: boolean }>( '/api/v1/settings/initialize' ); setIsUpdating(false); if (response.data.initialized) { router.push('/'); } }; return (
Logo
{currentStep === 1 && ( setCurrentStep(2)} /> )} {currentStep === 2 && (
setPlexSettingsComplete(true)} />
{intl.formatMessage(messages.tip)} {intl.formatMessage(messages.syncingbackground)}
)} {currentStep === 3 && (
)}
); }; export default Setup;