Lock the right pane while focused, add project focus, quiet lead

This commit is contained in:
Ian Gulliver
2026-10-15 09:59:13 -07:00
parent bdd1ae48f0
commit fdd005b591
32 changed files with 576 additions and 227 deletions
+11 -1
View File
@@ -94,24 +94,34 @@ export async function loadFocus() {
}
export function applyFocus(f) {
state.focus = f;
const hash = f.task_id ? `#/task/${f.task_id}` : "#/";
const hash = f.task_id ? `#/task/${f.task_id}` : f.project_id ? `#/project/${f.project_id}` : "#/";
if (location.hash !== hash && !(hash === "#/" && location.hash === "")) {
location.hash = hash;
}
notify("focus");
}
export function focusedProject() {
return state.projects.find((p) => p.id === state.focus.project_id);
}
export async function setFocus(change) {
const taskId = change.task_id === undefined ? state.focus.task_id : (change.task_id ?? undefined);
const projectId = taskId ? findTask(taskId)?.project_id : change.project_id === undefined ? state.focus.project_id : (change.project_id ?? undefined);
const next = { tabs: state.focus.tabs, tab: change.tab ?? state.focus.tab };
if (taskId) {
next.task_id = taskId;
}
if (projectId) {
next.project_id = projectId;
}
applyFocus(next);
applyFocus(await put("/api/me/focus", { body: next }));
}
export function focusTask(taskId, tab = "transcript") {
setFocus({ task_id: taskId, tab }).catch((err) => console.error("set focus", err));
}
export function focusProject(projectId) {
setFocus({ task_id: null, project_id: projectId, tab: "todo" }).catch((err) => console.error("set focus", err));
}
export function focusTab(tab) {
setFocus({ tab }).catch((err) => console.error("set focus", err));
}