Ajoute le port et l'adaptateur workState (+ mock) côté frontend, le type domaine associé, et la feature `workstate` (panneau ProjectWorkStatePanel + hook useProjectWorkState) consommant le read-model live exposé par le backend. Intègre le panneau dans ProjectsView. Tests verts (workstate + projects). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
18 lines
564 B
TypeScript
18 lines
564 B
TypeScript
/**
|
|
* Tauri adapter for {@link WorkStateGateway}.
|
|
*
|
|
* This is the only frontend place that knows the `get_project_work_state`
|
|
* command name; features consume the gateway port through DI.
|
|
*/
|
|
|
|
import { invoke } from "@tauri-apps/api/core";
|
|
|
|
import type { ProjectWorkState } from "@/domain";
|
|
import type { WorkStateGateway } from "@/ports";
|
|
|
|
export class TauriWorkStateGateway implements WorkStateGateway {
|
|
getProjectWorkState(projectId: string): Promise<ProjectWorkState> {
|
|
return invoke<ProjectWorkState>("get_project_work_state", { projectId });
|
|
}
|
|
}
|