diff --git a/packages/editor/src/components/button.tsx b/packages/editor/src/components/button.tsx new file mode 100644 index 000000000..73fdad904 --- /dev/null +++ b/packages/editor/src/components/button.tsx @@ -0,0 +1,35 @@ +import React, { useCallback, useRef } from "react"; +import { Button as RebassButton, ButtonProps } from "rebass"; + +export default function Button(props: ButtonProps) { + const touchStartTime = useRef(0); + + const onTouchEnd = useCallback((e) => { + e.preventDefault(); + const now = Date.now(); + setTimeout(() => { + if (touchStartTime.current === 0) return; + if (now - touchStartTime.current > 300) return; + //@ts-ignore + props.onClick(e); + }, 1); + }, []); + + const onTouchStart = useCallback((e) => { + touchStartTime.current = Date.now(); + e.preventDefault(); + }, []); + + return ( + e.preventDefault()} + onTouchEnd={onTouchEnd} + onTouchMove={() => { + touchStartTime.current = 0; + }} + onTouchStart={onTouchStart} + /> + ); +}