Mirror of https://github.com/improsocial/impro An extensible Bluesky client for web impro.social
5

Configure Feed

Select the types of activity you want to include in your feed.

Improve long context menu behavior

Grace Kind (Jul 15, 2026, 4:06 PM -0500) 1ab63e29 dd047ef7

+11 -3
+1 -1
package.json
··· 1 1 { 2 2 "name": "impro", 3 - "version": "0.17.163", 3 + "version": "0.17.164", 4 4 "type": "module", 5 5 "scripts": { 6 6 "start": "rm -rf \"${BUILD_DIR:-build}\" && NODE_ENV=development eleventy --serve",
+3
src/css/style.css
··· 6260 6260 padding-right: 16px; 6261 6261 padding-bottom: calc(var(--safe-area-inset-bottom) + 16px); 6262 6262 touch-action: pan-y; 6263 + max-height: 90dvh; 6264 + overflow-y: auto; 6265 + overscroll-behavior: contain; 6263 6266 } 6264 6267 6265 6268 .context-menu::backdrop {
+1
src/js/components/context-menu.js
··· 119 119 onClose: () => this.close(), 120 120 allowUpwardStretch: true, 121 121 ignoreTouchTarget: (el) => el.closest("button, a") !== null, 122 + scrollContainer: this.querySelector(".context-menu"), 122 123 }); 123 124 } 124 125
+6 -2
src/js/utils.js
··· 405 405 // Only allow a downward drag to dismiss when the scrollable body is already 406 406 // at the top; otherwise this gesture belongs to the scroll area. 407 407 dragState.canDismiss = !scrollContainer || scrollContainer.scrollTop <= 0; 408 + dragState.canStretch = 409 + allowUpwardStretch && 410 + (!scrollContainer || 411 + scrollContainer.scrollHeight <= scrollContainer.clientHeight); 408 412 409 413 target.style.transition = "none"; 410 414 }; ··· 419 423 e.preventDefault(); 420 424 const adjustedDelta = deltaY * RESISTANCE_FACTOR; 421 425 target.style.transform = `translateY(${adjustedDelta}px)`; 422 - } else if (deltaY < 0 && allowUpwardStretch) { 426 + } else if (deltaY < 0 && dragState.canStretch) { 423 427 e.preventDefault(); 424 428 const adjustedDelta = Math.abs(deltaY) * (RESISTANCE_FACTOR * 0.5); 425 429 target.style.height = `${dragState.initialHeight + adjustedDelta}px`; ··· 444 448 onClose(); 445 449 } else { 446 450 target.style.transform = ""; 447 - if (allowUpwardStretch) target.style.height = ""; 451 + if (dragState.canStretch) target.style.height = ""; 448 452 } 449 453 450 454 dragState.isDragging = false;