* Icon and IconName * Button and ButtonGroup * UserAvatar * AvatarGroup * Avatar * WizardLayout * Dialogs * EmptyScreen * showToast and TextField * Editor * Skeleton * Skeleton * TopBanner and showToast * Button again * more * perf: Remove app-store reference from @calcom/ui * more * Fixing types * Icon * Fixed casing * dropdown * more * Select * more * Badge * List * more * Divider * more * fix * fix type check * refactor * fix * fix * fix * fix * fix * fix * fix * fix type check * fix * fix * fix * fix * more * more * more * more * add index file to components/command * fix * fix * fix * fix imports * fix * fix * fix * fix * fix * fix * fix * fix build errors * fix build errors * fix --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com>
26 lines
697 B
TypeScript
26 lines
697 B
TypeScript
"use client";
|
|
|
|
import dynamic from "next/dynamic";
|
|
import { useMemo } from "react";
|
|
|
|
import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform";
|
|
import type { AppListCardProps } from "@calcom/ui/components/app-list-card";
|
|
|
|
export default function AppListCard(props: AppListCardProps) {
|
|
const isPlatform = useIsPlatform();
|
|
|
|
// Dynamically import the correct wrapper
|
|
const AppListCardWrapper = useMemo(
|
|
() =>
|
|
dynamic(
|
|
() => (isPlatform ? import("./AppListCardPlatformWrapper") : import("./AppListCardWebWrapper")),
|
|
{
|
|
ssr: false, // Prevents SSR issues if needed
|
|
}
|
|
),
|
|
[isPlatform]
|
|
);
|
|
|
|
return <AppListCardWrapper {...props} />;
|
|
}
|