refactor: centralize git and pr store refresh

This commit is contained in:
Bohdan Triapitsyn
2026-04-03 19:47:01 +03:00
parent 2c56cb021f
commit d982171689
16 changed files with 822 additions and 1157 deletions
+15
View File
@@ -17,10 +17,13 @@ export type SessionCreateRequest = {
type DeleteListener = (request: SessionDeleteRequest) => void;
type CreateListener = (request: SessionCreateRequest) => void;
type DirectoryListener = () => void;
type GitRefreshHint = { directory: string };
type GitRefreshListener = (hint: GitRefreshHint) => void;
const deleteListeners = new Set<DeleteListener>();
const createListeners = new Set<CreateListener>();
const directoryListeners = new Set<DirectoryListener>();
const gitRefreshListeners = new Set<GitRefreshListener>();
export const sessionEvents = {
onDeleteRequest(listener: DeleteListener) {
@@ -54,4 +57,16 @@ export const sessionEvents = {
requestDirectoryDialog() {
directoryListeners.forEach((listener) => listener());
},
onGitRefreshHint(listener: GitRefreshListener) {
gitRefreshListeners.add(listener);
return () => {
gitRefreshListeners.delete(listener);
};
},
requestGitRefresh(hint: GitRefreshHint) {
if (!hint.directory.trim()) {
return;
}
gitRefreshListeners.forEach((listener) => listener(hint));
},
};