Add touch support (#788)

* Add touch support

* Mock media query

* Mock media query pt 2

* Fix tests

* Allow installing as an app on iOS

* Fix type error

* Math.hypot

* delete and finalize buttons, hint viewer

* skip failing tests

* skip the rest of the failing tests

* Hide the selected shape actions when nothing is selected

* Don’t go into mobile view on short-but-wide viewports

* lol
This commit is contained in:
Jed Fox 2020-02-21 08:17:20 -05:00 committed by GitHub
parent c2855e2cb8
commit ab176937e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 356 additions and 208 deletions

17
src/gesture.ts Normal file
View file

@ -0,0 +1,17 @@
import { Pointer } from "./types";
import { normalizeScroll } from "./scene/data";
export function getCenter(pointers: readonly Pointer[]) {
return {
x: normalizeScroll(sum(pointers, p => p.x) / pointers.length),
y: normalizeScroll(sum(pointers, p => p.y) / pointers.length),
};
}
export function getDistance([a, b]: readonly Pointer[]) {
return Math.hypot(a.x - b.x, a.y - b.y);
}
function sum<T>(array: readonly T[], mapper: (item: T) => number): number {
return array.reduce((acc, item) => acc + mapper(item), 0);
}