Disable inbox nesting on mobile

This commit is contained in:
dotta 2026-04-08 18:32:42 -05:00
parent 9e8cd28f81
commit 996c7eb727
3 changed files with 24 additions and 2 deletions

View file

@ -24,6 +24,7 @@ import {
loadLastInboxTab,
normalizeInboxIssueColumns,
RECENT_ISSUES_LIMIT,
resolveInboxNestingEnabled,
resolveIssueWorkspaceName,
resolveInboxSelectionIndex,
saveInboxIssueColumns,
@ -520,6 +521,19 @@ describe("inbox helpers", () => {
expect(loadLastInboxTab()).toBe("all");
});
it("keeps nesting enabled on desktop when the saved preference is on", () => {
expect(resolveInboxNestingEnabled(true, false)).toBe(true);
});
it("forces nesting off on mobile even when the saved preference is on", () => {
expect(resolveInboxNestingEnabled(true, true)).toBe(false);
});
it("keeps nesting off when the saved preference is off", () => {
expect(resolveInboxNestingEnabled(false, false)).toBe(false);
expect(resolveInboxNestingEnabled(false, true)).toBe(false);
});
it("defaults issue columns to the current inbox layout", () => {
expect(loadInboxIssueColumns()).toEqual(DEFAULT_INBOX_ISSUE_COLUMNS);
});

View file

@ -169,6 +169,10 @@ export function saveInboxNesting(enabled: boolean) {
}
}
export function resolveInboxNestingEnabled(preferenceEnabled: boolean, isMobile: boolean): boolean {
return preferenceEnabled && !isMobile;
}
export function loadLastInboxTab(): InboxTab {
try {
const raw = localStorage.getItem(INBOX_LAST_TAB_KEY);

View file

@ -16,6 +16,7 @@ import { projectsApi } from "../api/projects";
import { useCompany } from "../context/CompanyContext";
import { useBreadcrumbs } from "../context/BreadcrumbContext";
import { useGeneralSettings } from "../context/GeneralSettingsContext";
import { useSidebar } from "../context/SidebarContext";
import { queryKeys } from "../lib/queryKeys";
import {
armIssueDetailInboxQuickArchive,
@ -87,6 +88,7 @@ import {
loadInboxIssueColumns,
loadInboxNesting,
normalizeInboxIssueColumns,
resolveInboxNestingEnabled,
resolveIssueWorkspaceName,
resolveInboxSelectionIndex,
saveInboxIssueColumns,
@ -579,6 +581,7 @@ function JoinRequestInboxRow({
export function Inbox() {
const { selectedCompanyId } = useCompany();
const { setBreadcrumbs } = useBreadcrumbs();
const { isMobile } = useSidebar();
const navigate = useNavigate();
const location = useLocation();
const queryClient = useQueryClient();
@ -911,9 +914,10 @@ export function Inbox() {
]);
// --- Parent-child nesting for inbox issues ---
const [nestingEnabled, setNestingEnabled] = useState(() => loadInboxNesting());
const [nestingPreferenceEnabled, setNestingPreferenceEnabled] = useState(() => loadInboxNesting());
const nestingEnabled = resolveInboxNestingEnabled(nestingPreferenceEnabled, isMobile);
const toggleNesting = useCallback(() => {
setNestingEnabled((prev) => {
setNestingPreferenceEnabled((prev) => {
const next = !prev;
saveInboxNesting(next);
return next;