added categories index (#2286)
This commit is contained in:
parent
7490f07a32
commit
2d7e1ccc05
1 changed files with 44 additions and 0 deletions
44
apps/web/pages/apps/categories/index.tsx
Normal file
44
apps/web/pages/apps/categories/index.tsx
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
import { ChevronLeftIcon } from "@heroicons/react/outline";
|
||||||
|
import { InferGetStaticPropsType } from "next";
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
import { getAppRegistry } from "@calcom/app-store/_appRegistry";
|
||||||
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
|
|
||||||
|
import Shell from "@components/Shell";
|
||||||
|
import AppStoreCategories from "@components/apps/Categories";
|
||||||
|
|
||||||
|
export default function Apps({ categories }: InferGetStaticPropsType<typeof getStaticProps>) {
|
||||||
|
const { t } = useLocale();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Shell large>
|
||||||
|
<div className="-mx-4 md:-mx-8">
|
||||||
|
<div className="mb-10 bg-gray-50 px-4 pb-2">
|
||||||
|
<Link href="/apps">
|
||||||
|
<a className="mt-2 inline-flex px-1 py-2 text-sm text-gray-500 hover:bg-gray-100 hover:text-gray-800">
|
||||||
|
<ChevronLeftIcon className="h-5 w-5" /> {t("browse_apps")}
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="mb-16">
|
||||||
|
<AppStoreCategories categories={categories} />
|
||||||
|
</div>
|
||||||
|
</Shell>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getStaticProps = async () => {
|
||||||
|
const appStore = getAppRegistry();
|
||||||
|
const categories = appStore.reduce((c, app) => {
|
||||||
|
c[app.category] = c[app.category] ? c[app.category] + 1 : 1;
|
||||||
|
return c;
|
||||||
|
}, {} as Record<string, number>);
|
||||||
|
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
categories: Object.entries(categories).map(([name, count]) => ({ name, count })),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
Loading…
Reference in a new issue