Skip to content

Commit d272d83

Browse files
committed
fix: aggregate templates by organization id
1 parent 1c009dd commit d272d83

File tree

2 files changed

+13
-20
lines changed

2 files changed

+13
-20
lines changed

site/src/pages/TemplatesPage/MultiOrgTemplatePage/TemplatesPageView.tsx

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,6 @@ export interface TemplatesPageViewProps {
5757
error?: unknown;
5858
}
5959

60-
const sortOrgs = (templatesByOrg: TemplatesByOrg) => {
61-
return templatesByOrg
62-
? Object.keys(templatesByOrg).sort((a, b) => a.localeCompare(b))
63-
: undefined;
64-
};
65-
6660
export const TemplatesPageView: FC<TemplatesPageViewProps> = ({
6761
templatesByOrg,
6862
examples,
@@ -72,7 +66,6 @@ export const TemplatesPageView: FC<TemplatesPageViewProps> = ({
7266
const navigate = useNavigate();
7367
const [urlParams] = useSearchParams();
7468
const isEmpty = templatesByOrg && templatesByOrg["all"].length === 0;
75-
const orgs = templatesByOrg ? sortOrgs(templatesByOrg) : undefined;
7669
const activeOrg = urlParams.get("org") ?? "all";
7770
const visibleTemplates = templatesByOrg
7871
? templatesByOrg[activeOrg]
@@ -110,19 +103,17 @@ export const TemplatesPageView: FC<TemplatesPageViewProps> = ({
110103
css={{ width: 208, flexShrink: 0, position: "sticky", top: 48 }}
111104
>
112105
<span css={styles.filterCaption}>ORGANIZATION</span>
113-
{orgs.map((org) => (
106+
{Object.entries(templatesByOrg).map((org) => (
114107
<Link
115-
key={org}
116-
to={`?org=${org}`}
108+
key={org[0]}
109+
to={`?org=${org[0]}`}
117110
css={[
118111
styles.tagLink,
119-
org === activeOrg && styles.tagLinkActive,
112+
org[0] === activeOrg && styles.tagLinkActive,
120113
]}
121114
>
122-
{org === "all"
123-
? org
124-
: templatesByOrg[org][0].organization_display_name}
125-
({templatesByOrg[org].length})
115+
{org[0] === "all" ? "all" : org[1][0].organization_display_name}{" "}
116+
({org[1].length})
126117
</Link>
127118
))}
128119
</Stack>

site/src/utils/templateAggregators.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,20 @@ export const getTemplatesByTag = (
2525
};
2626

2727
export const getTemplatesByOrg = (templates: Template[]): TemplatesByOrg => {
28-
const orgs: TemplatesByOrg = {
29-
all: templates,
30-
};
28+
const orgs: TemplatesByOrg = {};
3129

3230
for (const template of templates) {
33-
const org = template.organization_name;
31+
const org = template.organization_id;
3432
if (orgs[org]) {
3533
orgs[org].push(template);
3634
} else {
3735
orgs[org] = [template];
3836
}
3937
}
4038

41-
return orgs;
39+
const sortedOrgs = Object.fromEntries(
40+
Object.entries(orgs).sort(([, a], [, b]) => a[0].organization_name.localeCompare(b[0].organization_name))
41+
);
42+
43+
return { all: templates, ...sortedOrgs };
4244
};

0 commit comments

Comments
 (0)