diff --git a/packages/frontend/core/src/components/affine/ai-onboarding/general.dialog.tsx b/packages/frontend/core/src/components/affine/ai-onboarding/general.dialog.tsx index 66416fcd03..97e80e7207 100644 --- a/packages/frontend/core/src/components/affine/ai-onboarding/general.dialog.tsx +++ b/packages/frontend/core/src/components/affine/ai-onboarding/general.dialog.tsx @@ -67,6 +67,25 @@ const getPlayList = (t: Translate): Array => [ }, ]; +let prefetched = false; +function prefetchVideos() { + if (prefetched) return; + const videos = [ + '/onboarding/ai-onboarding.general.1.mp4', + '/onboarding/ai-onboarding.general.2.mp4', + '/onboarding/ai-onboarding.general.3.mp4', + '/onboarding/ai-onboarding.general.4.mp4', + '/onboarding/ai-onboarding.general.5.mp4', + ]; + videos.forEach(video => { + const prefetchLink = document.createElement('link'); + prefetchLink.href = video; + prefetchLink.rel = 'prefetch'; + document.head.append(prefetchLink); + }); + prefetched = true; +} + export const AIOnboardingGeneral = ({ onDismiss, }: BaseAIOnboardingDialogProps) => { @@ -116,6 +135,10 @@ export const AIOnboardingGeneral = ({ subscriptionService.subscription.revalidate(); }, [subscriptionService]); + useEffect(() => { + prefetchVideos(); + }, []); + const videoRenderer = useCallback( ({ video }: PlayListItem, index: number) => (