reviewflow 3.25.0 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/dashboard/index.html +36 -5
- package/dist/dashboard/modules/constants.d.ts +1 -0
- package/dist/dashboard/modules/constants.d.ts.map +1 -1
- package/dist/dashboard/modules/constants.js +1 -0
- package/dist/dashboard/modules/constants.js.map +1 -1
- package/dist/dashboard/styles.css +27 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.26.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.25.0...reviewflow-v3.26.0) (2026-05-27)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
* **dashboard:** make now lane collapsible ([#225](https://github.com/DGouron/review-flow/issues/225)) ([7c895ba](https://github.com/DGouron/review-flow/commit/7c895bacb79637b0116198a2fdc74d6cf75f9fe5))
|
|
14
|
+
|
|
8
15
|
## [3.25.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.24.2...reviewflow-v3.25.0) (2026-05-27)
|
|
9
16
|
|
|
10
17
|
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
} from './modules/animations.js';
|
|
373
373
|
import { escapeHtml, markdownToHtml, sanitizeHttpUrl } from './modules/html.js';
|
|
374
374
|
import { getAgentIcon, icon, refreshIcons } from './modules/icons.js';
|
|
375
|
-
import { MAX_RECONNECT_ATTEMPTS, RECONNECT_DELAY, STORAGE_KEY_CURRENT, STORAGE_KEY_FOCUS_STRIP_MODE, QUALITY_TARGET_SCORE } from './modules/constants.js';
|
|
375
|
+
import { MAX_RECONNECT_ATTEMPTS, RECONNECT_DELAY, STORAGE_KEY_CURRENT, STORAGE_KEY_FOCUS_STRIP_MODE, STORAGE_KEY_NOW_LANE_COLLAPSED, QUALITY_TARGET_SCORE } from './modules/constants.js';
|
|
376
376
|
import { buildTabBarModel, renderTabBarHtml, readActiveTab, writeActiveTab } from './modules/tabBar.js';
|
|
377
377
|
import { buildManagePanelModel, renderManagePanelHtml, buildOptimisticAddedRow, validateLocalPathInput } from './modules/managePanel.js';
|
|
378
378
|
import { renderOverviewHtml } from './modules/overview.js';
|
|
@@ -439,6 +439,7 @@
|
|
|
439
439
|
let hasLoadedStatusOnce = false;
|
|
440
440
|
const secondarySections = ['active-followups-section', 'pending-approval-section', 'completed-reviews-section'];
|
|
441
441
|
const sectionExpandedState = Object.fromEntries(secondarySections.map((sectionIdentifier) => [sectionIdentifier, false]));
|
|
442
|
+
let nowLaneCollapsed = false;
|
|
442
443
|
const quietRefreshSections = [
|
|
443
444
|
'active-reviews-section',
|
|
444
445
|
'active-followups-section',
|
|
@@ -507,6 +508,30 @@
|
|
|
507
508
|
refreshIcons();
|
|
508
509
|
}
|
|
509
510
|
|
|
511
|
+
function applyNowLaneCollapsed() {
|
|
512
|
+
const lane = document.getElementById('queue-lane-now');
|
|
513
|
+
if (!lane) return;
|
|
514
|
+
const body = document.getElementById('queue-lane-now-body');
|
|
515
|
+
const header = lane.querySelector('.queue-lane-header');
|
|
516
|
+
const toggle = lane.querySelector('.queue-lane-toggle');
|
|
517
|
+
if (body) body.classList.toggle('hidden', nowLaneCollapsed);
|
|
518
|
+
if (toggle) toggle.classList.toggle('collapsed', nowLaneCollapsed);
|
|
519
|
+
if (header) header.setAttribute('aria-expanded', nowLaneCollapsed ? 'false' : 'true');
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
function loadNowLaneCollapsed() {
|
|
523
|
+
const value = localStorage.getItem(STORAGE_KEY_NOW_LANE_COLLAPSED);
|
|
524
|
+
nowLaneCollapsed = value === 'collapsed';
|
|
525
|
+
applyNowLaneCollapsed();
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
function toggleNowLane() {
|
|
529
|
+
nowLaneCollapsed = !nowLaneCollapsed;
|
|
530
|
+
localStorage.setItem(STORAGE_KEY_NOW_LANE_COLLAPSED, nowLaneCollapsed ? 'collapsed' : 'expanded');
|
|
531
|
+
applyNowLaneCollapsed();
|
|
532
|
+
refreshIcons();
|
|
533
|
+
}
|
|
534
|
+
|
|
510
535
|
function setLoadingFlag(source, isLoading) {
|
|
511
536
|
if (!(source in loadingState)) return;
|
|
512
537
|
const nextValue = isLoading
|
|
@@ -1841,14 +1866,18 @@
|
|
|
1841
1866
|
)
|
|
1842
1867
|
: `<div class="empty-state">${t('queueLane.emptyReadyToApprove')}</div>`;
|
|
1843
1868
|
|
|
1869
|
+
const nowLaneCollapsedClass = nowLaneCollapsed ? 'collapsed' : '';
|
|
1844
1870
|
return `
|
|
1845
1871
|
<div class="queue-lanes-grid">
|
|
1846
|
-
<div class="queue-lane">
|
|
1847
|
-
<div class="queue-lane-header">
|
|
1872
|
+
<div class="queue-lane" id="queue-lane-now">
|
|
1873
|
+
<div class="queue-lane-header clickable" onclick="toggleNowLane()" role="button" tabindex="0" aria-expanded="${nowLaneCollapsed ? 'false' : 'true'}" aria-controls="queue-lane-now-body" onkeydown="activateOnKeydown(event)">
|
|
1848
1874
|
<span class="queue-lane-title">${t('queueLane.now')}</span>
|
|
1849
|
-
<span class="queue-lane-
|
|
1875
|
+
<span class="queue-lane-header-right">
|
|
1876
|
+
<span class="queue-lane-count">${queueLanesModel.nowLaneCount}</span>
|
|
1877
|
+
<span class="queue-lane-toggle ${nowLaneCollapsedClass}"><i data-lucide="chevron-down"></i></span>
|
|
1878
|
+
</span>
|
|
1850
1879
|
</div>
|
|
1851
|
-
<div class="queue-lane-body">${nowLaneContent}</div>
|
|
1880
|
+
<div class="queue-lane-body ${nowLaneCollapsed ? 'hidden' : ''}" id="queue-lane-now-body">${nowLaneContent}</div>
|
|
1852
1881
|
</div>
|
|
1853
1882
|
<div class="queue-lane">
|
|
1854
1883
|
<div class="queue-lane-header">
|
|
@@ -3389,6 +3418,7 @@
|
|
|
3389
3418
|
window.confirmMarkAsMerged = confirmMarkAsMerged;
|
|
3390
3419
|
window.toggleFocusStripMode = toggleFocusStripMode;
|
|
3391
3420
|
window.toggleSection = toggleSection;
|
|
3421
|
+
window.toggleNowLane = toggleNowLane;
|
|
3392
3422
|
window.onUsefulLinkAction = onUsefulLinkAction;
|
|
3393
3423
|
window.activateOnKeydown = activateOnKeydown;
|
|
3394
3424
|
window.handleCleanupClick = handleCleanupClick;
|
|
@@ -3417,6 +3447,7 @@
|
|
|
3417
3447
|
Notification.requestPermission().catch(() => {});
|
|
3418
3448
|
}
|
|
3419
3449
|
loadFocusStripMode();
|
|
3450
|
+
loadNowLaneCollapsed();
|
|
3420
3451
|
renderStaticLabels();
|
|
3421
3452
|
updateSessionMetricsUI();
|
|
3422
3453
|
connectWebSocket();
|
|
@@ -3,6 +3,7 @@ export const RECONNECT_DELAY: 3000;
|
|
|
3
3
|
export const STORAGE_KEY_PROJECTS: "review-flow-projects";
|
|
4
4
|
export const STORAGE_KEY_CURRENT: "review-flow-current-project";
|
|
5
5
|
export const STORAGE_KEY_FOCUS_STRIP_MODE: "review-flow-focus-strip-mode";
|
|
6
|
+
export const STORAGE_KEY_NOW_LANE_COLLAPSED: "review-flow-now-lane-collapsed";
|
|
6
7
|
export const STORAGE_KEY_ACTIVE_TAB: "review-flow-active-tab";
|
|
7
8
|
export const QUALITY_TARGET_SCORE: 8;
|
|
8
9
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dashboard/modules/constants.js"],"names":[],"mappings":"AAAA,qCAAsC,EAAE,CAAC;AACzC,8BAA+B,IAAI,CAAC;AACpC,mCAAoC,sBAAsB,CAAC;AAC3D,kCAAmC,6BAA6B,CAAC;AACjE,2CAA4C,8BAA8B,CAAC;AAC3E,qCAAsC,wBAAwB,CAAC;AAC/D,mCAAoC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dashboard/modules/constants.js"],"names":[],"mappings":"AAAA,qCAAsC,EAAE,CAAC;AACzC,8BAA+B,IAAI,CAAC;AACpC,mCAAoC,sBAAsB,CAAC;AAC3D,kCAAmC,6BAA6B,CAAC;AACjE,2CAA4C,8BAA8B,CAAC;AAC3E,6CAA8C,gCAAgC,CAAC;AAC/E,qCAAsC,wBAAwB,CAAC;AAC/D,mCAAoC,CAAC,CAAC"}
|
|
@@ -3,5 +3,6 @@ export const RECONNECT_DELAY = 3000;
|
|
|
3
3
|
export const STORAGE_KEY_PROJECTS = 'review-flow-projects';
|
|
4
4
|
export const STORAGE_KEY_CURRENT = 'review-flow-current-project';
|
|
5
5
|
export const STORAGE_KEY_FOCUS_STRIP_MODE = 'review-flow-focus-strip-mode';
|
|
6
|
+
export const STORAGE_KEY_NOW_LANE_COLLAPSED = 'review-flow-now-lane-collapsed';
|
|
6
7
|
export const STORAGE_KEY_ACTIVE_TAB = 'review-flow-active-tab';
|
|
7
8
|
export const QUALITY_TARGET_SCORE = 8;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dashboard/modules/constants.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,6BAA6B,CAAC;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dashboard/modules/constants.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,6BAA6B,CAAC;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
|
|
@@ -1877,6 +1877,33 @@ body.compact-density .log-entry {
|
|
|
1877
1877
|
padding: 0.55rem 0.65rem 0.2rem;
|
|
1878
1878
|
}
|
|
1879
1879
|
|
|
1880
|
+
.queue-lane-header.clickable {
|
|
1881
|
+
cursor: pointer;
|
|
1882
|
+
user-select: none;
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
.queue-lane-header-right {
|
|
1886
|
+
display: inline-flex;
|
|
1887
|
+
align-items: center;
|
|
1888
|
+
gap: 0.5rem;
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1891
|
+
.queue-lane-toggle {
|
|
1892
|
+
display: inline-flex;
|
|
1893
|
+
align-items: center;
|
|
1894
|
+
color: #7d8aa4;
|
|
1895
|
+
}
|
|
1896
|
+
|
|
1897
|
+
.queue-lane-toggle [data-lucide] {
|
|
1898
|
+
width: 15px;
|
|
1899
|
+
height: 15px;
|
|
1900
|
+
transition: transform 0.2s;
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
.queue-lane-toggle.collapsed [data-lucide] {
|
|
1904
|
+
transform: rotate(-90deg);
|
|
1905
|
+
}
|
|
1906
|
+
|
|
1880
1907
|
.now-lane-copy {
|
|
1881
1908
|
flex: 1;
|
|
1882
1909
|
min-width: 0;
|