mirror of
https://github.com/penpot/penpot.git
synced 2026-03-31 00:29:37 +02:00
* ⬆️ Update opencode and copilot deps * 🐛 Decouple workspace-content from workspace-local to reduce scroll re-renders Move workspace-local subscription from workspace-content* (parent) into viewport* and viewport-classic* (children). workspace-content* now only subscribes to the new workspace-vport derived atom, which changes only on window resize — not on every scroll event. This prevents the sidebar, palette and other workspace-content children from re-rendering on scroll. * 🐛 Throttle wheel events to one state update per animation frame Accumulate wheel event deltas in a mutable ref and flush them via requestAnimationFrame, so that multiple wheel events between frames produce a single state mutation instead of one per event. This prevents the cascade of synchronous React re-renders (via useSyncExternalStore) that can exceed the maximum update depth on rapid scrolling. Both panning (scroll) and zoom (ctrl/mod+wheel) are throttled. Scroll deltas are summed additively; zoom scales are compounded multiplicatively with the latest cursor point used as the zoom center. * ♻️ Extract schedule-zoom! and schedule-scroll! from on-mouse-wheel * ♻️ Avoid zoom dep on on-mouse-wheel by using a ref
24 lines
621 B
JSON
24 lines
621 B
JSON
{
|
|
"name": "penpot",
|
|
"version": "1.20.0",
|
|
"license": "MPL-2.0",
|
|
"author": "Kaleidos INC",
|
|
"private": true,
|
|
"packageManager": "pnpm@10.31.0+sha512.e3927388bfaa8078ceb79b748ffc1e8274e84d75163e67bc22e06c0d3aed43dd153151cbf11d7f8301ff4acb98c68bdc5cadf6989532801ffafe3b3e4a63c268",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/penpot/penpot"
|
|
},
|
|
"type": "module",
|
|
"scripts": {
|
|
"lint": "./scripts/lint",
|
|
"fmt": "./scripts/fmt"
|
|
},
|
|
"devDependencies": {
|
|
"@github/copilot": "^1.0.12",
|
|
"@types/node": "^20.12.7",
|
|
"esbuild": "^0.25.9",
|
|
"opencode-ai": "^1.3.7"
|
|
}
|
|
}
|