(filePath)
| 885 | let pendingThumbnails = new Set(); // Track files currently being rendered |
| 886 | /** Soft cap so fast scrolling cannot enqueue thousands of 3MF extract/WebGL jobs. */ |
| 887 | const RENDER_QUEUE_SOFT_CAP = 120; |
| 888 | |
| 889 | function enqueueRenderTask(task) { |
| 890 | if (!task || !task.filePath) return false; |
| 891 | pruneDisconnectedRenderTasks(); |
| 892 | if (renderQueue.length >= RENDER_QUEUE_SOFT_CAP) { |
| 893 | // Drop lowest-priority (usually off-screen) tasks first. |
| 894 | renderQueue.sort((a, b) => (a.thumbPriority ?? 1e9) - (b.thumbPriority ?? 1e9)); |
| 895 | while (renderQueue.length >= RENDER_QUEUE_SOFT_CAP) { |
| 896 | const dropped = renderQueue.pop(); |
no outgoing calls
no test coverage detected