From 5d52dad6e15184dc7b33877e0473550d07341e99 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Fri, 26 May 2023 03:51:29 +0900 Subject: [PATCH] [feat] better polyfill detection --- src/main.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main.ts b/src/main.ts index 53d6097a..7e624ea6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,14 +5,22 @@ import { loadData } from "./ts/globalApi"; import { ReadableStream, WritableStream, TransformStream } from "web-streams-polyfill/ponyfill/es2018"; import { Buffer as BufferPolyfill } from 'buffer' import { initHotkey } from "./ts/hotkey"; -import {polyfill as dragDropPolyfil} from "mobile-drag-drop"; -import {scrollBehaviourDragImageTranslateOverride} from "mobile-drag-drop/scroll-behaviour"; -dragDropPolyfil({ - // use this to make use of the scroll behaviour - dragImageTranslateOverride: scrollBehaviourDragImageTranslateOverride, - holdToDrag: 400 -}); +const testDom = document.createElement('div'); +const supports = ('draggable' in testDom) || ('ondragstart' in testDom && 'ondrop' in testDom); +const isIos = navigator.userAgent ? (!!navigator.userAgent.match('iPhone OS') || !!navigator.userAgent.match('iPad')) : false +testDom.remove() + +if((!supports) || isIos){ + const dragDrop = await import("mobile-drag-drop") + const dragDropBehavior = await import("mobile-drag-drop/scroll-behaviour") + + dragDrop.polyfill({ + // use this to make use of the scroll behaviour + dragImageTranslateOverride: dragDropBehavior.scrollBehaviourDragImageTranslateOverride, + holdToDrag: 400 + }); +} //Polyfills declare var Buffer: typeof BufferPolyfill;