Fix inbox workspace grouping refresh persistence

This commit is contained in:
Dotta committed 2026-04-14 11:52:02 -05:00
1 parent 93df2d7e69
commit 2083888738
3 files changed
+23 -2

No files matched your search

+11
View File
@@ -43,6 +43,7 @@ import {
saveInboxIssueColumns,
saveInboxWorkItemGroupBy,
saveLastInboxTab,
shouldResetInboxWorkspaceGrouping,
shouldShowInboxSection,
type InboxWorkItem,
} from "./inbox";
@@ -1079,4 +1080,14 @@ describe("inbox helpers", () => {
saveInboxWorkItemGroupBy("workspace");
expect(loadInboxWorkItemGroupBy()).toBe("workspace");
});
it("does not reset workspace grouping before experimental settings have loaded", () => {
expect(shouldResetInboxWorkspaceGrouping("workspace", false, false)).toBe(false);
});
it("resets workspace grouping only when settings are loaded and workspace grouping is unavailable", () => {
expect(shouldResetInboxWorkspaceGrouping("workspace", false, true)).toBe(true);
expect(shouldResetInboxWorkspaceGrouping("workspace", true, true)).toBe(false);
expect(shouldResetInboxWorkspaceGrouping("none", false, true)).toBe(false);
});
});
+8
View File
@@ -321,6 +321,14 @@ export function saveInboxWorkItemGroupBy(groupBy: InboxWorkItemGroupBy) {
}
}
export function shouldResetInboxWorkspaceGrouping(
groupBy: InboxWorkItemGroupBy,
isolatedWorkspacesEnabled: boolean,
experimentalSettingsLoaded: boolean,
): boolean {
return experimentalSettingsLoaded && groupBy === "workspace" && !isolatedWorkspacesEnabled;
}
export function shouldIncludeRoutineExecutionIssue(
issue: Pick<Issue, "originKind">,
showRoutineExecutions: boolean,
+4 -2
View File
@@ -116,6 +116,7 @@ import {
loadInboxWorkItemGroupBy,
normalizeInboxIssueColumns,
resolveInboxNestingEnabled,
shouldResetInboxWorkspaceGrouping,
resolveIssueWorkspaceName,
resolveInboxSelectionIndex,
saveInboxFilterPreferences,
@@ -649,6 +650,7 @@ export function Inbox() {
queryFn: () => instanceSettingsApi.getExperimental(),
retry: false,
});
const experimentalSettingsLoaded = experimentalSettings !== undefined;
const [searchQuery, setSearchQuery] = useState("");
const normalizedSearchQuery = searchQuery.trim();
const [filterPreferences, setFilterPreferences] = useState<InboxFilterPreferences>(
@@ -1093,10 +1095,10 @@ export function Inbox() {
const [nestingPreferenceEnabled, setNestingPreferenceEnabled] = useState(() => loadInboxNesting());
const nestingEnabled = resolveInboxNestingEnabled(nestingPreferenceEnabled, isMobile);
useEffect(() => {
if (isolatedWorkspacesEnabled || groupBy !== "workspace") return;
if (!shouldResetInboxWorkspaceGrouping(groupBy, isolatedWorkspacesEnabled, experimentalSettingsLoaded)) return;
setGroupBy("none");
saveInboxWorkItemGroupBy("none");
}, [groupBy, isolatedWorkspacesEnabled]);
}, [experimentalSettingsLoaded, groupBy, isolatedWorkspacesEnabled]);
const toggleNesting = useCallback(() => {
setNestingPreferenceEnabled((prev) => {
const next = !prev;