review tab
This commit is contained in:
Vendored
+13
-5
@@ -7,7 +7,7 @@ import { mountLead } from "./lead.js";
|
||||
import { findTask, focusedProject, focusTab, on, onEach, state, tabs } from "./state.js";
|
||||
import { previewLinks } from "./preview.js";
|
||||
import { mountProject } from "./project.js";
|
||||
import { isReviewEvent, latestFindingCount, mountReviews } from "./reviews.js";
|
||||
import { findingCount, isReviewEvent, latestReview, mountReviews } from "./reviews.js";
|
||||
import { mountSettings } from "./settings.js";
|
||||
import { mountStatus } from "./status.js";
|
||||
import { openSwitcher } from "./switcher.js";
|
||||
@@ -109,8 +109,14 @@ export function taskPane() {
|
||||
let drawn = "";
|
||||
let waiting = 0;
|
||||
let findings = 0;
|
||||
const count = (t) => (t === "inbox" ? waiting : t === "reviews" ? findings : 0);
|
||||
const badge = (t) => count(t) > 0 && h("span", { class: "badge", title: t === "inbox" ? "inbox items" : "findings in the latest review" }, count(t));
|
||||
let reviewing = false;
|
||||
const count = (t) => (t === "inbox" ? waiting : t === "reviews" && !reviewing ? findings : 0);
|
||||
const badge = (t) => {
|
||||
if (t === "reviews" && reviewing) {
|
||||
return h("span", { class: "spinner", title: "review in progress" });
|
||||
}
|
||||
return count(t) > 0 && h("span", { class: "badge", title: t === "inbox" ? "inbox items" : "findings in the latest review" }, count(t));
|
||||
};
|
||||
const layout = () => {
|
||||
for (const { button } of buttons) {
|
||||
button.hidden = false;
|
||||
@@ -168,9 +174,11 @@ export function taskPane() {
|
||||
const first = state.focus.tabs.filter((t, i, all) => tabs.includes(t) && all.indexOf(t) === i);
|
||||
const tab = state.focus.tab;
|
||||
waiting = state.inbox.filter((item) => item.task_id === state.selectedTaskId).length;
|
||||
findings = latestFindingCount(state.transcript);
|
||||
const latest = latestReview(state.transcript);
|
||||
reviewing = latest?.state === "running";
|
||||
findings = latest ? findingCount(latest) : 0;
|
||||
const order = [...first, ...tabs.filter((t) => !first.includes(t))].filter(available);
|
||||
const key = JSON.stringify([order, tab, waiting, findings]);
|
||||
const key = JSON.stringify([order, tab, waiting, findings, reviewing]);
|
||||
if (key !== drawn) {
|
||||
drawn = key;
|
||||
buttons = order.map((t) => {
|
||||
|
||||
Reference in New Issue
Block a user