diff --git a/apps/web/pages/apps/index.tsx b/apps/web/pages/apps/index.tsx index 677ff7963f..c5e7c03fba 100644 --- a/apps/web/pages/apps/index.tsx +++ b/apps/web/pages/apps/index.tsx @@ -12,7 +12,14 @@ import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { AppCategories } from "@calcom/prisma/enums"; import type { inferSSRProps } from "@calcom/types/inferSSRProps"; import type { HorizontalTabItemProps } from "@calcom/ui"; -import { AllApps, AppStoreCategories, HorizontalTabs, TextField, PopularAppsSlider } from "@calcom/ui"; +import { + AllApps, + AppStoreCategories, + HorizontalTabs, + TextField, + PopularAppsSlider, + RecentAppsSlider, +} from "@calcom/ui"; import { Search } from "@calcom/ui/components/icon"; import PageWrapper from "@components/PageWrapper"; @@ -81,6 +88,7 @@ export default function Apps({ <> + )} & { diff --git a/packages/ui/components/apps/RecentAppsSlider.tsx b/packages/ui/components/apps/RecentAppsSlider.tsx new file mode 100644 index 0000000000..10df8ddf61 --- /dev/null +++ b/packages/ui/components/apps/RecentAppsSlider.tsx @@ -0,0 +1,28 @@ +import { useLocale } from "@calcom/lib/hooks/useLocale"; +import type { AppFrontendPayload as App } from "@calcom/types/App"; + +import { AppCard } from "./AppCard"; +import { Slider } from "./Slider"; + +export const RecentAppsSlider = ({ items }: { items: T[] }) => { + const { t } = useLocale(); + + return ( + + title={t("recently_added")} + items={items.sort( + (a, b) => new Date(b?.createdAt || 0).valueOf() - new Date(a?.createdAt || 0).valueOf() + )} + itemKey={(app) => app.name} + options={{ + perView: 3, + breakpoints: { + 768 /* and below */: { + perView: 1, + }, + }, + }} + renderItem={(app) => } + /> + ); +}; diff --git a/packages/ui/components/apps/index.ts b/packages/ui/components/apps/index.ts index 359e1503fe..dd595fdb9c 100644 --- a/packages/ui/components/apps/index.ts +++ b/packages/ui/components/apps/index.ts @@ -4,4 +4,5 @@ export { Slider } from "./Slider"; export { SkeletonLoader as AppSkeletonLoader } from "./SkeletonLoader"; export { SkeletonLoader } from "./SkeletonLoader"; export { PopularAppsSlider } from "./PopularAppsSlider"; +export { RecentAppsSlider } from "./RecentAppsSlider"; export { AppStoreCategories } from "./Categories"; diff --git a/packages/ui/index.tsx b/packages/ui/index.tsx index a6fe5d2626..c0922cb2aa 100644 --- a/packages/ui/index.tsx +++ b/packages/ui/index.tsx @@ -69,6 +69,7 @@ export { SkeletonLoader, Slider, PopularAppsSlider, + RecentAppsSlider, useShouldShowArrows, AppStoreCategories, } from "./components/apps";