Compare commits
2 Commits
version-bu
...
main
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
aa68573a6e |
fix: remove broken throttle from VirtualGrid scroll tracking (#12781)
## Summary Every `VirtualGrid` consumer (assets sidebar, manager dialog, widget select dropdown) is blind to discrete mouse-wheel scrolling: `useScroll`'s `throttle: 64` never reports scroll position, so the virtualization window stays frozen — users see blank space below the first viewport of items and `approach-end` (infinite scroll) never fires. Trackpad scrolling masks the bug by emitting events faster than the throttle window. ## Changes - **What**: drop the `throttle` option from `useScroll` in `VirtualGrid` and remove the `scrollThrottle` prop (no consumer passes it). Scroll events are frame-aligned and the handler is cheap, so the throttle bought nothing even when it worked. - **Root cause**: VueUse ≥14 `throttleFilter` with `leading=false` (what `useScroll` uses) marks spaced-out events as executed without executing them — each event re-arms an `isLeading` restore timer that makes the next event skip its invoke, and the trailing branch is unreachable when `elapsed > duration`. Regression of vueuse#2390; still present on vueuse `main`. ## Review Focus - Verified live against staging: with the throttle, sidebar scrolled to `scrollTop` 1250 while `scrollY` stayed 0 and the render window stayed at `[0..3)` of 27 (blank viewport); with this fix, `scrollY` tracks 1:1 and the window advances. Bare-vs-throttled `useScroll` compared side-by-side on the same element to isolate the cause. - Unblocks wheel-scroll for #12780's dropdown infinite scroll with no changes there. - Fixes FE-990 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
79acf7be5e |
fix: re-encode favicon.ico with PNG frames to fix white corner artifacts (#12753)
## Summary The rebranded `favicon.ico` renders with **opaque white corners** in browsers — the rounded mark shows white slivers around its corners on any background. This is a decode bug, not a design issue: the ICO contains **BMP-format frames** whose alpha channel Chrome (and other consumers) mishandle. Verified by loading the raw `.ico` in headless Chrome on a dark page: corners render white instead of transparent. Every surface that consumes the `.ico` directly shows the artifact — Google search results, connector icon scraping, raw image views — while browser tabs look fine because they prefer the SVG favicon. ## Changes - **What**: Re-encode `apps/website/public/favicon.ico` and `public/assets/favicon.ico` with **PNG-format ICO frames** (16/32/48). PNG frames carry unambiguous alpha and decode correctly in all modern browsers. - **No design change**: identical rounded artwork, same transparency, same sizes and filenames. SVG, PNGs, apple-touch-icon, and manifest icons are untouched. - **Breaking**: none. ## Review Focus - Headless-Chrome verified: the old ico renders white corners on a dark page; the re-encoded one renders transparent corners. (Comparison in PR comments.) - PNG-in-ICO is supported by all modern browsers and Google's favicon pipeline. - After merge, please add `needs-backport` + `cloud/1.45` so cloud.comfy.org's copy gets the same fix. ## Screenshots (if applicable) --------- Co-authored-by: GitHub Action <action@github.com> |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 56 KiB |
|
|
@@ -1,23 +1,23 @@
|
|||
{
|
||||
"name": "Comfy",
|
||||
"short_name": "Comfy",
|
||||
"id": "/",
|
||||
"start_url": "/",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "/web-app-manifest-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
"purpose": "any maskable"
|
||||
}
|
||||
],
|
||||
"theme_color": "#211927",
|
||||
"background_color": "#211927",
|
||||
"display": "standalone"
|
||||
"display": "standalone",
|
||||
"id": "/",
|
||||
"start_url": "/"
|
||||
}
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 8.8 KiB |
|
|
@@ -73,7 +73,7 @@ const websiteJsonLd = {
|
|||
|
||||
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<link rel="shortcut icon" href="/favicon.ico" sizes="48x48" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<meta name="theme-color" content="#211927" />
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
|
@@ -33,7 +33,6 @@ const {
|
|||
items,
|
||||
gridStyle,
|
||||
bufferRows = 1,
|
||||
scrollThrottle = 64,
|
||||
resizeDebounce = 64,
|
||||
defaultItemHeight = 200,
|
||||
defaultItemWidth = 200,
|
||||
|
|
@@ -42,7 +41,6 @@ const {
|
|||
items: (T & { key: string })[]
|
||||
gridStyle: CSSProperties
|
||||
bufferRows?: number
|
||||
scrollThrottle?: number
|
||||
resizeDebounce?: number
|
||||
defaultItemHeight?: number
|
||||
defaultItemWidth?: number
|
||||
|
|
@@ -61,7 +59,6 @@ const itemWidth = ref(defaultItemWidth)
|
|||
const container = ref<HTMLElement | null>(null)
|
||||
const { width, height } = useElementSize(container)
|
||||
const { y: scrollY } = useScroll(container, {
|
||||
throttle: scrollThrottle,
|
||||
eventListenerOptions: { passive: true }
|
||||
})
|
||||
|
||||
|
|
|
|||