+1

![Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)






![devin-ai-integration[bot]](/assets/img/avatar_default.png)
devin-ai-integration[bot]
GitHub
peer@cal.com <peer@cal.com>
peer@cal.com <peer@cal.com>
peer@cal.com <peer@cal.com>
peer@cal.com <peer@cal.com>
peer@cal.com <peer@cal.com>
Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
peer@cal.com <peer@cal.com>
amrit
Ryukemeister
70d29ab6fa
* feat: conditionally show contact us or report issue based on plan Co-Authored-By: peer@cal.com <peer@cal.com> * fix: update icon name to triangle-alert to fix type error Co-Authored-By: peer@cal.com <peer@cal.com> * fix: check specific plan type instead of isPaidUser flag Co-Authored-By: peer@cal.com <peer@cal.com> * fix: check userBillingData.valid to ensure billing plan is active Co-Authored-By: peer@cal.com <peer@cal.com> * fix: convert plan to lowercase before comparison Co-Authored-By: peer@cal.com <peer@cal.com> * fixup: dont show contact card for free platform users --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: peer@cal.com <peer@cal.com> Co-authored-by: amrit <iamamrit27@gmail.com> Co-authored-by: Ryukemeister <sahalrajiv6900@gmail.com>
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
|
import { Card } from "@calcom/ui/components/card";
|
|
import { Icon } from "@calcom/ui/components/icon";
|
|
|
|
import { helpCards } from "@lib/settings/platform/utils";
|
|
|
|
import { useGetUserAttributes } from "@components/settings/platform/hooks/useGetUserAttributes";
|
|
|
|
export const HelpCards = () => {
|
|
const { t } = useLocale();
|
|
const { userBillingData } = useGetUserAttributes();
|
|
const isPaidUser = userBillingData?.valid && userBillingData?.plan?.toLowerCase() !== "free";
|
|
|
|
return (
|
|
<>
|
|
<div className="grid-col-1 mb-4 grid gap-2 md:grid-cols-3">
|
|
{helpCards.map((card) => {
|
|
if (card.title === "Contact us" && !isPaidUser) return null;
|
|
|
|
if (card.title === "Report issue" && isPaidUser) return null;
|
|
|
|
const title = card.title === "Report issue" ? t("report_issue") : card.title;
|
|
const description =
|
|
card.title === "Report issue" ? t("report_issue_description") : card.description;
|
|
const actionButtonChild = card.title === "Report issue" ? t("open_issue") : card.actionButton.child;
|
|
|
|
return (
|
|
<div key={card.title}>
|
|
<Card
|
|
icon={<Icon name={card.icon} className="h-5 w-5 text-green-700" />}
|
|
variant={card.variant}
|
|
title={title}
|
|
description={description}
|
|
actionButton={{
|
|
href: `${card.actionButton.href}`,
|
|
child: actionButtonChild,
|
|
}}
|
|
/>
|
|
</div>
|
|
);
|
|
})}
|
|
</div>
|
|
</>
|
|
);
|
|
};
|