@@ -0,0 +1,24 @@
|
||||
import screenfull from 'screenfull';
|
||||
import { WebkitHTMLVideoElement } from '../../types';
|
||||
import { CardFullscreenAPI } from '../types';
|
||||
import { ScreenfullFullScreenProvider } from './screenfull';
|
||||
import { FullscreenHandler, FullscreenProvider } from './types';
|
||||
import { WebkitFullScreenProvider } from './webkit';
|
||||
|
||||
export class FullscreenProviderFactory {
|
||||
public static create(
|
||||
api: CardFullscreenAPI,
|
||||
handler: FullscreenHandler,
|
||||
): FullscreenProvider | null {
|
||||
if (screenfull.isEnabled) {
|
||||
return new ScreenfullFullScreenProvider(api, handler);
|
||||
}
|
||||
|
||||
const video = document.createElement('video') as Partial<WebkitHTMLVideoElement>;
|
||||
if (!!video.webkitEnterFullscreen) {
|
||||
return new WebkitFullScreenProvider(api, handler);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user