Skip to content

Commit 2c09dff

Browse files
authored
fix: Tab details not updating (#295)
1 parent 9ce2c01 commit 2c09dff

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

src/state/store/ui_state.ts

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -322,43 +322,42 @@ export const createUiState: StateCreator<AtuinUiState> = (set, get, _store): Atu
322322
}
323323
},
324324
setTabTitle: (id: string, title: string) => {
325-
const tabs = get().tabs;
326-
const tab = tabs.find((tab) => tab.id === id);
327-
if (tab) {
328-
tab.title = title;
329-
set(() => ({ tabs: tabs }));
330-
}
325+
set((state) => ({
326+
tabs: state.tabs.map((tab) =>
327+
tab.id === id ? { ...tab, title } : tab
328+
),
329+
}));
331330
},
332331

333332
setTabPtyCount: (id: string, ptyCount: number) => {
334-
const tabs = get().tabs;
335-
const tab = tabs.find((tab) => tab.id === id);
336-
if (tab) {
337-
console.log("setTabPtyCount", id, ptyCount);
338-
tab.ptyCount = ptyCount;
339-
tab.badge = tab.badgeCount + tab.ptyCount > 0 ? String(tab.badgeCount + tab.ptyCount) : null;
340-
console.log("setTabPtyCount", tab.badge);
341-
set(() => ({ tabs: tabs }));
342-
}
333+
set((state) => ({
334+
tabs: state.tabs.map((tab) => {
335+
if (tab.id !== id) return tab;
336+
const badge = tab.badgeCount + ptyCount > 0 ? String(tab.badgeCount + ptyCount) : null;
337+
return { ...tab, ptyCount, badge };
338+
}),
339+
}));
343340
},
344341

345342
incrementTabBadgeCount: (id: string, count: number) => {
346-
const tabs = get().tabs;
347-
const tab = tabs.find((tab) => tab.id === id);
348-
if (tab) {
349-
tab.badgeCount = tab.badgeCount + count;
350-
tab.badge = tab.badgeCount + tab.ptyCount > 0 ? String(tab.badgeCount + tab.ptyCount) : null;
351-
set(() => ({ tabs: tabs }));
352-
}
343+
set((state) => ({
344+
tabs: state.tabs.map((tab) => {
345+
if (tab.id !== id) return tab;
346+
const badgeCount = tab.badgeCount + count;
347+
const badge = badgeCount + tab.ptyCount > 0 ? String(badgeCount + tab.ptyCount) : null;
348+
return { ...tab, badgeCount, badge };
349+
}),
350+
}));
353351
},
354352
decrementTabBadgeCount: (id: string, count: number) => {
355-
const tabs = get().tabs;
356-
const tab = tabs.find((tab) => tab.id === id);
357-
if (tab) {
358-
tab.badgeCount = tab.badgeCount - count;
359-
tab.badge = tab.badgeCount + tab.ptyCount > 0 ? String(tab.badgeCount + tab.ptyCount) : null;
360-
set(() => ({ tabs: tabs }));
361-
}
353+
set((state) => ({
354+
tabs: state.tabs.map((tab) => {
355+
if (tab.id !== id) return tab;
356+
const badgeCount = tab.badgeCount - count;
357+
const badge = badgeCount + tab.ptyCount > 0 ? String(badgeCount + tab.ptyCount) : null;
358+
return { ...tab, badgeCount, badge };
359+
}),
360+
}));
362361
},
363362
advanceActiveTab: (amount: number) => {
364363
const tabs = get().tabs;

0 commit comments

Comments
 (0)