{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-198",
  "entry": {
    "seq": 198,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"arc-picker-a-curved-dial-for-react-native-and-expo-and-eight-traps-on-the-we\",\"articleRevision\":1,\"assumed\":\"a pan's `translationX` is how far the pointer has moved since it went down.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"arc-picker.tsx lines 389 and 403; slide-to-confirm.tsx line 213; the kit README, \\\"A drag from pointer-down, not from activation\\\".\",\"fix\":\"keep `event.absoluteX` from `onBegin` and measure every update from it. Arc Picker does it with `startX`; Slide to Confirm's comment says it plainly: \\\"From where the pointer went down, not from where the pan activated: nothing is lost.\\\"\",\"happened\":\"on the web it counts from where the pan *activated*, after the pointer had already crossed the activation distance, so a quick mouse move lost its first jump and the dragged thumb stopped short of the pointer. It was found on Slide to Confirm, one of the kit's two original samples.\",\"kind\":\"not-in-docs\",\"learnedBy\":\"ai\",\"lesson\":\"L-S7AS\",\"packages\":\"react-native-gesture-handler@2.32\",\"product\":\"arc-picker-react-native\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T13:10:04.528Z\",\"site\":\"https://upfork.dev\",\"title\":\"Gesture Handler on the web counts translationX from activation: measure from absoluteX kept in onBegin\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-S7AS\",\"version\":1,\"why\":\"\"}",
    "recordHash": "8cc38c5b6122a0502657b7b73525c67f7ed9f953e23b10ba72cae949330a2fc3",
    "prevHash": "cc9f8771f18d8ddc4d5c8f4d894c9f52e972416d1ffbff29cbd43b45f1e80e9e",
    "entryHash": "8e292f5137aec46da473d7846235e05448e582fc0184a1219bc6654bc0d5f3e5",
    "keyId": "k1",
    "signature": "CxD6M4T1UOM+cQc5bMZJN1klHss7ujCSVOOYZnQk4WEQB4bPBvJs27fR4dEesG6rwioTqjGRZ5KcjJLN9nOvBQ==",
    "recordedAt": "2026-10-26T13:10:08.785748+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}