from pRegroup2020 iPadで多少ズームアウトした時には問題ないけど思いっきりズームアウトしたら壊れるバグ

  • これもsingle source of truthの侵害。

    • Paperが持っているzoomの値とReactの持っているzoomの値が食い違っている。
    • これはスムーズなズームのためにReactの状態更新を介さずに直接zoomを変更する必要があるというケース。
  • PC版でホイールを回したり二本指ジェスチャーした時に、小さくなりすぎるのを防ぐためにzoomに最小値を設けた。

  • PC版ではホイールイベントが起きた500msec後にsetTimeoutでPaperの値でReactを更新している、だから値の一貫性は保たれる。

  • 一方iPad版では二本指ジェスチャーの終了時にPaperとReactを両方自分で更新している。

    • この時に、Paperの更新だけに「最小値」が適用され、異なった値が設定される
    • その状況でさらに変更した時にzoomの値がNaNになる経路がある
  • 割と無様な形になっているけどReactの更新が行われるところに同様の最小値処理を挟んでなんとかなった。

  • これはCCSE後に状態遷移周りを綺麗にやり直す時に一緒に直そう

  • 本質的には最大値最小値処理はデバイスの情報を元に決まるべき