Skip to content

Commit c826e9c

Browse files
authored
refactor: Remove trpc/react dependency from @calcom/atoms (calcom#26694)
* mv useTeamMembersWithSegment * remove * fix ts error * remove * remove * remove * biome rule
1 parent 784db75 commit c826e9c

7 files changed

Lines changed: 79 additions & 44 deletions

File tree

apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ import {
2626
import { showToast } from "@calcom/ui/components/toast";
2727

2828
import {
29-
useTeamMembersWithSegment,
3029
useTeamMembersWithSegmentPlatform,
31-
} from "../../../../../packages/platform/atoms/event-types/hooks/useTeamMembersWithSegment";
30+
} from "@calcom/atoms/event-types/hooks/useTeamMembersWithSegmentPlatform";
31+
import { useTeamMembersWithSegment } from "@calcom/web/modules/event-types/hooks/useTeamMembersWithSegment";
3232

3333
type TeamMemberItemProps = {
3434
member: Omit<TeamMember, "defaultScheduleId"> & { weight?: number };
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { useQuery } from "@tanstack/react-query";
2+
import type { AttributesQueryValue } from "@calcom/lib/raqb/types";
3+
import { trpc } from "@calcom/trpc/react";
4+
import { type UseTeamMembersWithSegmentProps, useProcessTeamMembersData } from "@calcom/atoms/event-types/hooks/useTeamMembersWithSegmentPlatform";
5+
6+
export const useTeamMembersWithSegment = ({
7+
initialTeamMembers,
8+
assignRRMembersUsingSegment,
9+
teamId,
10+
queryValue,
11+
value,
12+
}: UseTeamMembersWithSegmentProps) => {
13+
const { data: matchingTeamMembersWithResult, isPending } =
14+
trpc.viewer.attributes.findTeamMembersMatchingAttributeLogic.useQuery(
15+
{
16+
teamId: teamId || 0,
17+
attributesQueryValue: queryValue as AttributesQueryValue,
18+
_enablePerf: true,
19+
},
20+
{
21+
enabled: assignRRMembersUsingSegment && !!queryValue && !!teamId,
22+
}
23+
);
24+
25+
const { teamMembers, localWeightsInitialValues } = useProcessTeamMembersData({
26+
initialTeamMembers,
27+
assignRRMembersUsingSegment,
28+
matchingTeamMembersWithResult,
29+
value,
30+
});
31+
32+
return {
33+
teamMembers,
34+
localWeightsInitialValues,
35+
isPending,
36+
};
37+
};

biome.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,38 @@
323323
}
324324
}
325325
}
326+
},
327+
{
328+
"includes": [
329+
"packages/platform/atoms/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"
330+
],
331+
"linter": {
332+
"rules": {
333+
"style": {
334+
"noRestrictedImports": {
335+
"level": "error",
336+
"options": {
337+
"patterns": [
338+
{
339+
"group": [
340+
"@calcom/trpc/react",
341+
"@calcom/trpc/react/**"
342+
],
343+
"message": "atoms package should not import from @calcom/trpc/react."
344+
},
345+
{
346+
"group": [
347+
"../../trpc/react",
348+
"../../trpc/react/**"
349+
],
350+
"message": "atoms package should not import from trpc/react."
351+
}
352+
]
353+
}
354+
}
355+
}
356+
}
357+
}
326358
}
327359
]
328360
}

packages/platform/atoms/availability/AvailabilitySettings.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import WebSchedule, {
2929
import { availabilityAsString } from "@calcom/lib/availability";
3030
import { useLocale } from "@calcom/lib/hooks/useLocale";
3131
import { sortAvailabilityStrings } from "@calcom/lib/weekstart";
32-
import type { RouterOutputs } from "@calcom/trpc/react";
32+
import type { TravelScheduleRepository } from "@calcom/features/travelSchedule/repositories/TravelScheduleRepository";
3333
import type { TimeRange, WorkingHours } from "@calcom/types/schedule";
3434
import classNames from "@calcom/ui/classNames";
3535
import { Button } from "@calcom/ui/components/button";
@@ -99,7 +99,7 @@ export type AvailabilitySettingsScheduleType = {
9999
type AvailabilitySettingsProps = {
100100
skeletonLabel?: string;
101101
schedule: AvailabilitySettingsScheduleType;
102-
travelSchedules?: RouterOutputs["viewer"]["travelSchedules"]["get"];
102+
travelSchedules?: Awaited<ReturnType<typeof TravelScheduleRepository.findTravelSchedulesByUserId>>;
103103
handleDelete: () => void;
104104
allowDelete?: boolean;
105105
allowSetToDefault?: boolean;
@@ -195,7 +195,7 @@ const DateOverride = ({
195195
}: {
196196
workingHours: WorkingHours[];
197197
userTimeFormat: number | null;
198-
travelSchedules?: RouterOutputs["viewer"]["travelSchedules"]["get"];
198+
travelSchedules?: Awaited<ReturnType<typeof TravelScheduleRepository.findTravelSchedulesByUserId>>;
199199
weekStart: 0 | 1 | 2 | 3 | 4 | 5 | 6;
200200
overridesModalClassNames?: string;
201201
classNames?: {
@@ -642,7 +642,7 @@ export const AvailabilitySettings = forwardRef<AvailabilitySettingsFormRef, Avai
642642
form="availability-form"
643643
loading={isSaving}
644644
disabled={isLoading || !formHasChanges}
645-
>
645+
>
646646
{t("save")}
647647
</Button>
648648
<Button

packages/platform/atoms/event-types/hooks/useTeamMembersWithSegment.tsx renamed to packages/platform/atoms/event-types/hooks/useTeamMembersWithSegmentPlatform.tsx

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import type {
1010
TeamMemberDto,
1111
FindTeamMembersMatchingAttributeOutputDto,
1212
} from "@calcom/platform-types";
13-
import { trpc } from "@calcom/trpc/react";
1413

1514
import { useAtomsContext } from "../../hooks/useAtomsContext";
1615
import http from "../../lib/http";
1716

18-
interface UseTeamMembersWithSegmentProps {
17+
export interface UseTeamMembersWithSegmentProps {
1918
initialTeamMembers: TeamMember[];
2019
assignRRMembersUsingSegment: boolean;
2120
teamId?: number;
@@ -24,7 +23,7 @@ interface UseTeamMembersWithSegmentProps {
2423
value: Host[];
2524
}
2625

27-
const useProcessTeamMembersData = ({
26+
export const useProcessTeamMembersData = ({
2827
initialTeamMembers,
2928
assignRRMembersUsingSegment,
3029
matchingTeamMembersWithResult,
@@ -105,37 +104,4 @@ export const useTeamMembersWithSegmentPlatform = ({
105104
localWeightsInitialValues,
106105
isPending,
107106
};
108-
};
109-
110-
export const useTeamMembersWithSegment = ({
111-
initialTeamMembers,
112-
assignRRMembersUsingSegment,
113-
teamId,
114-
queryValue,
115-
value,
116-
}: UseTeamMembersWithSegmentProps) => {
117-
const { data: matchingTeamMembersWithResult, isPending } =
118-
trpc.viewer.attributes.findTeamMembersMatchingAttributeLogic.useQuery(
119-
{
120-
teamId: teamId || 0,
121-
attributesQueryValue: queryValue as AttributesQueryValue,
122-
_enablePerf: true,
123-
},
124-
{
125-
enabled: assignRRMembersUsingSegment && !!queryValue && !!teamId,
126-
}
127-
);
128-
129-
const { teamMembers, localWeightsInitialValues } = useProcessTeamMembersData({
130-
initialTeamMembers,
131-
assignRRMembersUsingSegment,
132-
matchingTeamMembersWithResult,
133-
value,
134-
});
135-
136-
return {
137-
teamMembers,
138-
localWeightsInitialValues,
139-
isPending,
140-
};
141-
};
107+
};

packages/platform/atoms/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"./event-types/hooks/useEventTypeForm": "./event-types/hooks/useEventTypeForm.ts",
7373
"./event-types/hooks/useHandleRouteChange": "./event-types/hooks/useHandleRouteChange.ts",
7474
"./event-types/hooks/useTabsNavigations": "./event-types/hooks/useTabsNavigations.tsx",
75+
"./event-types/hooks/useTeamMembersWithSegmentPlatform": "./event-types/hooks/useTeamMembersWithSegmentPlatform.tsx",
7576
"./timezone": "./timezone/index.tsx"
7677
},
7778
"types": "./dist/index.d.ts",

packages/platform/atoms/tsconfig.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
"../../dayjs",
3939
"../../prisma/zod-utils.ts",
4040
"../../prisma/zod",
41-
"../../trpc/react",
4241
"../../trpc/server/routers/viewer/slots",
4342
"../../trpc/server/types",
4443
"../../features/eventtypes",

0 commit comments

Comments
 (0)