Files
spacedrive/interface/app/onboarding/full-disk.tsx
Vítor Vasconcellos c516a3a45b Improve prod bundle size (#2447)
Greatly improve production build size, now prod builds are 1/3 of the size
 - Main spacedrive binary went from ~120M to ~40M
 - Add more optimize options for rust prod build
 - Improve vite settings for front-end prod build
 - Improve lossless compression of PNGs
 - Don't include videos in bundles when they are not used
 - Don't generate/bundle sourcemap for prod builds
2024-05-07 19:32:34 +00:00

66 lines
1.6 KiB
TypeScript

import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router';
import { Button } from '@sd/ui';
import { Icon } from '~/components';
import { useLocale } from '~/hooks';
import { usePlatform } from '~/util/Platform';
import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './components';
export const FullDisk = () => {
const [fdaVideo, setFdaVideo] = useState<string | null>(null);
const { requestFdaMacos } = usePlatform();
const navigate = useNavigate();
const { t } = useLocale();
useEffect(() => {
import('@sd/assets/videos/Fda.mp4').then(
(module) => {
setFdaVideo(module.default);
},
(err) => {
console.error(err);
navigate('../locations', { replace: true });
}
);
});
return (
<OnboardingContainer>
<Icon name="HDD" size={80} />
<OnboardingTitle>{t('full_disk_access')}</OnboardingTitle>
<OnboardingDescription>{t('full_disk_access_description')}</OnboardingDescription>
<div className="mt-5 w-full max-w-[450px]">
{fdaVideo && (
<video
className="rounded-md"
autoPlay
loop
muted
controls={false}
src={fdaVideo}
/>
)}
</div>
<div className="flex items-center gap-3">
<Button onClick={requestFdaMacos} variant="gray" size="sm" className="my-5">
{t('open_settings')}
</Button>
</div>
<div className="flex gap-3">
<Button
onClick={() => {
navigate('../locations', { replace: true });
}}
variant="accent"
size="sm"
className="mt-8"
>
{t('continue')}
</Button>
</div>
</OnboardingContainer>
);
};