diff --git a/src/main/github/project-view.ts b/src/main/github/project-view.ts index 305f5152f01..549bc989741 100644 --- a/src/main/github/project-view.ts +++ b/src/main/github/project-view.ts @@ -1157,7 +1157,7 @@ type RawViewerDiscovery = { login?: string projectsV2?: { pageInfo?: { hasNextPage?: boolean; endCursor?: string | null } - nodes?: Array<{ id?: string; number?: number; title?: string; url?: string } | null> + nodes?: ({ id?: string; number?: number; title?: string; url?: string } | null)[] } } | null)[] } diff --git a/src/renderer/src/components/github-project/ProjectCell.tsx b/src/renderer/src/components/github-project/ProjectCell.tsx index 32db218290d..2cab83986bd 100644 --- a/src/renderer/src/components/github-project/ProjectCell.tsx +++ b/src/renderer/src/components/github-project/ProjectCell.tsx @@ -1,3 +1,4 @@ +/* eslint-disable max-lines -- Why: ProjectCell dispatches on field.dataType for every supported ProjectV2 field type; keeping the dispatch table and renderers colocated keeps the type-to-renderer mapping easy to audit. */ // Why: one cell per visible column. Dispatch on `field.dataType` first (so // built-in ASSIGNEES/LABELS cells render their dedicated content) and fall // through to `fieldValuesByFieldId[field.id].kind` as a safety net so a diff --git a/src/renderer/src/components/github-project/ProjectPicker.tsx b/src/renderer/src/components/github-project/ProjectPicker.tsx index 81afe8fdbcf..33b3171d4d7 100644 --- a/src/renderer/src/components/github-project/ProjectPicker.tsx +++ b/src/renderer/src/components/github-project/ProjectPicker.tsx @@ -1,3 +1,4 @@ +/* eslint-disable max-lines -- Why: project picker handles pinned, recent, browse-all listing, paste-to-add, view selection, and accessibility-related orchestration in one place to keep the entry-point flow coherent. */ // Why: the picker is the only v1 entry point for switching projects (no // header tab strip). Pinned + Recent come from settings; Browse all lazy-loads // from `listAccessibleProjects` and is cached for 5 minutes. Paste-to-add @@ -222,7 +223,6 @@ export default function ProjectPicker({ activeProject, onSelect }: Props): React }, selection.title ?? null ) - return } } } else { diff --git a/src/renderer/src/components/github-project/ProjectViewWrapper.tsx b/src/renderer/src/components/github-project/ProjectViewWrapper.tsx index 08ce243a67f..0a67d8ec4df 100644 --- a/src/renderer/src/components/github-project/ProjectViewWrapper.tsx +++ b/src/renderer/src/components/github-project/ProjectViewWrapper.tsx @@ -1,3 +1,4 @@ +/* eslint-disable max-lines -- Why: top-level Project-mode container coordinates picker, view selection, query overrides, fetch lifecycle, and toolbar interactions; splitting these would fragment shared state. */ // Why: top-level container for Project mode. Handles the picker, header, // filter label, count pill, Open-in-GitHub, and all Interaction States // documented in the design doc. diff --git a/src/shared/github-project-types.ts b/src/shared/github-project-types.ts index c1837f274d0..f5d2f0eef16 100644 --- a/src/shared/github-project-types.ts +++ b/src/shared/github-project-types.ts @@ -1,3 +1,4 @@ +/* eslint-disable max-lines -- Why: this module is the single source of truth for ProjectV2 shapes (settings, IPC payloads, view/field/value types) shared across main, preload, and renderer; splitting risks circular type imports. */ // Why: ProjectV2 shapes are distinct enough from the issue/PR work-item types // that we keep them in a dedicated module. Preload and main-process callers // import from here directly — do not re-export through `./types.ts` just to