fix: schedule.get unneccsary called from avaiablity view (#20094)

This commit is contained in:
Anik Dhabal Babu
2025-03-14 18:31:35 +00:00
committed by GitHub
parent 587af33179
commit df6ee73e05
@@ -5,7 +5,6 @@ import { availabilityAsString } from "@calcom/lib/availability";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { sortAvailabilityStrings } from "@calcom/lib/weekstart";
import type { RouterOutputs } from "@calcom/trpc/react";
import { trpc } from "@calcom/trpc/react";
import {
Badge,
Button,
@@ -39,8 +38,6 @@ export function ScheduleListItem({
}) {
const { t, i18n } = useLocale();
const { data, isPending } = trpc.viewer.availability.schedule.get.useQuery({ scheduleId: schedule.id });
return (
<li key={schedule.id}>
<div className="hover:bg-muted flex items-center justify-between px-3 py-5 transition sm:px-4">
@@ -93,56 +90,54 @@ export function ScheduleListItem({
StartIcon="ellipsis"
/>
</DropdownMenuTrigger>
{!isPending && data && (
<DropdownMenuContent>
{!schedule.isDefault && (
<DropdownMenuItem className="min-w-40 focus:ring-muted">
<DropdownItem
type="button"
StartIcon="star"
onClick={() => {
updateDefault({
scheduleId: schedule.id,
isDefault: true,
});
}}>
{t("set_as_default")}
</DropdownItem>
</DropdownMenuItem>
)}
<DropdownMenuItem className="outline-none">
<DropdownItem
type="button"
data-testid={`schedule-duplicate${schedule.id}`}
StartIcon="copy"
onClick={() => {
duplicateFunction({
scheduleId: schedule.id,
});
}}>
{t("duplicate")}
</DropdownItem>
</DropdownMenuItem>
<DropdownMenuContent>
{!schedule.isDefault && (
<DropdownMenuItem className="min-w-40 focus:ring-muted">
<DropdownItem
type="button"
color="destructive"
StartIcon="trash"
data-testid="delete-schedule"
StartIcon="star"
onClick={() => {
if (!isDeletable) {
showToast(t("requires_at_least_one_schedule"), "error");
} else {
deleteFunction({
scheduleId: schedule.id,
});
}
updateDefault({
scheduleId: schedule.id,
isDefault: true,
});
}}>
{t("delete")}
{t("set_as_default")}
</DropdownItem>
</DropdownMenuItem>
</DropdownMenuContent>
)}
)}
<DropdownMenuItem className="outline-none">
<DropdownItem
type="button"
data-testid={`schedule-duplicate${schedule.id}`}
StartIcon="copy"
onClick={() => {
duplicateFunction({
scheduleId: schedule.id,
});
}}>
{t("duplicate")}
</DropdownItem>
</DropdownMenuItem>
<DropdownMenuItem className="min-w-40 focus:ring-muted">
<DropdownItem
type="button"
color="destructive"
StartIcon="trash"
data-testid="delete-schedule"
onClick={() => {
if (!isDeletable) {
showToast(t("requires_at_least_one_schedule"), "error");
} else {
deleteFunction({
scheduleId: schedule.id,
});
}
}}>
{t("delete")}
</DropdownItem>
</DropdownMenuItem>
</DropdownMenuContent>
</Dropdown>
</div>
</li>