refactor: remove redundant archived project filters (#10177)
This commit is contained in:
parent
965a827ee7
commit
2002c4fff3
|
|
@ -132,7 +132,7 @@ export function CommandPalette() {
|
|||
enabled: !!selectedCompanyId && open,
|
||||
});
|
||||
const projects = useMemo(
|
||||
() => allProjects.filter((p) => !p.archivedAt),
|
||||
() => allProjects,
|
||||
[allProjects],
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ export function NewIssueDialog() {
|
|||
});
|
||||
const currentUserId = session?.user?.id ?? session?.session?.userId ?? null;
|
||||
const activeProjects = useMemo(
|
||||
() => (projects ?? []).filter((p) => !p.archivedAt),
|
||||
() => projects ?? [],
|
||||
[projects],
|
||||
);
|
||||
const { orderedProjects } = useProjectOrder({
|
||||
|
|
|
|||
|
|
@ -291,7 +291,6 @@ export function SidebarProjects() {
|
|||
|
||||
const visibleProjects = useMemo(
|
||||
() => (projects ?? []).filter((project: Project) => {
|
||||
if (project.archivedAt) return false;
|
||||
if (!membershipsQuery.isSuccess) return true;
|
||||
return resourceMembershipState(membershipsQuery.data, "project", project.id) !== "left";
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -165,17 +165,16 @@ describe("SidebarStarredProjects", () => {
|
|||
await flushReact();
|
||||
}
|
||||
|
||||
it("renders only starred, non-archived projects with a quiet unstar control", async () => {
|
||||
it("renders only starred projects returned by the default active project list", async () => {
|
||||
mockProjectsApi.list.mockResolvedValue([
|
||||
makeProject({ id: "project-a", name: "Alpha", urlKey: "alpha" }),
|
||||
makeProject({ id: "project-b", name: "Bravo", urlKey: "bravo" }),
|
||||
makeProject({ id: "project-c", name: "Ghost", urlKey: "ghost", archivedAt: new Date() }),
|
||||
]);
|
||||
memberships = { ...memberships, starredProjectIds: ["project-b", "project-c"] };
|
||||
|
||||
await render();
|
||||
|
||||
// Only the starred, non-archived project renders (archived "Ghost" is filtered out).
|
||||
// project-c is starred but absent because the default project list is server-filtered.
|
||||
expect(projectLinkLabels(container)).toEqual(["Bravo"]);
|
||||
expect(document.body.querySelector('button[aria-label="Unstar Bravo"]')).not.toBeNull();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ export function SidebarStarredProjects() {
|
|||
const byId = new Map((projects ?? []).map((project: Project) => [project.id, project]));
|
||||
return Array.from(starredIds)
|
||||
.map((id) => byId.get(id))
|
||||
.filter((project): project is Project => !!project && !project.archivedAt)
|
||||
.filter((project): project is Project => !!project)
|
||||
.sort((left, right) =>
|
||||
left.name.localeCompare(right.name, undefined, { sensitivity: "base" }),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -614,7 +614,7 @@ export function CompanyExport() {
|
|||
[agents],
|
||||
);
|
||||
const visibleProjects = useMemo(
|
||||
() => projects.filter((project: Project) => !project.archivedAt),
|
||||
() => projects,
|
||||
[projects],
|
||||
);
|
||||
const { orderedAgents } = useAgentOrder({
|
||||
|
|
|
|||
|
|
@ -1372,7 +1372,7 @@ export function PipelineSettings() {
|
|||
});
|
||||
const currentUserId = sessionQuery.data?.user?.id ?? sessionQuery.data?.session?.userId ?? null;
|
||||
const activeProjects = useMemo(
|
||||
() => (projectsQuery.data ?? []).filter((project) => !project.archivedAt),
|
||||
() => projectsQuery.data ?? [],
|
||||
[projectsQuery.data],
|
||||
);
|
||||
const { orderedProjects } = useProjectOrder({
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ export function Projects() {
|
|||
const membershipsQuery = useResourceMemberships(selectedCompanyId);
|
||||
const membershipMutation = useResourceMembershipMutation(selectedCompanyId);
|
||||
const projects = useMemo(
|
||||
() => (allProjects ?? []).filter((p) => !p.archivedAt),
|
||||
() => allProjects ?? [],
|
||||
[allProjects],
|
||||
);
|
||||
const sortedProjects = useMemo(
|
||||
|
|
|
|||
Loading…
Reference in New Issue