Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
5d7d4a3
mv useTeamMembersWithSegment
hbjORbj Jan 10, 2026
4d6ec0e
remove
hbjORbj Jan 10, 2026
f3fe6a1
fix ts error
hbjORbj Jan 11, 2026
9650398
remove
hbjORbj Jan 11, 2026
6aa695f
remove
hbjORbj Jan 11, 2026
d3d7935
Merge remote-tracking branch 'origin/main' into refactor/move-trpc-de…
hbjORbj Jan 11, 2026
1d9c10d
remove
hbjORbj Jan 11, 2026
47f9518
biome rule
hbjORbj Jan 11, 2026
e5c524c
wip
hbjORbj Jan 11, 2026
b1180b2
refactor: remove remaining @calcom/trpc/server imports from atoms
devin-ai-integration[bot] Jan 11, 2026
cec974e
Merge remote-tracking branch 'origin/main' into refactor/move-trpc-de…
hbjORbj Jan 11, 2026
e89867c
Merge remote-tracking branch 'origin/refactor/move-trpc-dependency-fr…
hbjORbj Jan 11, 2026
2ac36ed
fix
hbjORbj Jan 11, 2026
18f35a2
fix: add userId to Schedule type and create ScheduleForList type
devin-ai-integration[bot] Jan 11, 2026
140f868
Merge branch 'refactor/move-trpc-dependency-from-atoms-2' of https://…
devin-ai-integration[bot] Jan 11, 2026
8b206b3
fix
hbjORbj Jan 11, 2026
435f6a4
fix
hbjORbj Jan 11, 2026
f0ba531
fix
hbjORbj Jan 11, 2026
66b6762
fix
hbjORbj Jan 11, 2026
2ce6798
Merge remote-tracking branch 'origin/main' into refactor/move-trpc-de…
hbjORbj Jan 11, 2026
47255e1
fix: correct fromUser/toUser types in GetAvailableSlotsResponse
devin-ai-integration[bot] Jan 12, 2026
1eaa663
Merge branch 'refactor/move-trpc-dependency-from-atoms-2' of https://…
devin-ai-integration[bot] Jan 12, 2026
c1d3bbb
fix: correct TypeScript operator precedence in GetAvailabilityListHan…
devin-ai-integration[bot] Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/web/test/lib/getSchedule/expects.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { diff } from "jest-diff";
import { expect } from "vitest";

import type { Slot } from "@calcom/trpc/server/routers/viewer/slots/types";
import type { Slot } from "@calcom/atoms/booker/types";

export const expectedSlotsForSchedule = {
IstWorkHours: {
Expand Down
12 changes: 6 additions & 6 deletions biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -337,17 +337,17 @@
"patterns": [
{
"group": [
"@calcom/trpc/react",
"@calcom/trpc/react/**"
"@calcom/trpc",
"@calcom/trpc/**"
],
"message": "atoms package should not import from @calcom/trpc/react."
"message": "atoms package should not import from @calcom/trpc."
},
{
"group": [
"../../trpc/react",
"../../trpc/react/**"
"../../trpc",
"../../trpc/**"
],
"message": "atoms package should not import from trpc/react."
"message": "atoms package should not import from trpc."
}
]
}
Expand Down
32 changes: 31 additions & 1 deletion packages/platform/atoms/booker/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,17 @@ import type {
ApiSuccessResponseWithoutData,
RoutingFormSearchParams,
} from "@calcom/platform-types";
import type { Slot } from "@calcom/trpc/server/routers/viewer/slots/types";

import type { UseCreateBookingInput } from "../hooks/bookings/useCreateBooking";

export type Slot = {
time: string;
userIds?: number[];
attendees?: number;
bookingUid?: string;
users?: string[];
};

// Type that includes only the data values from BookerStore (excluding functions)
export type BookerStoreValues = Omit<
BookerStore,
Expand Down Expand Up @@ -104,3 +111,26 @@ export type BookerPlatformWrapperAtomPropsForTeam = BookerPlatformWrapperAtomPro
routingFormSearchParams?: RoutingFormSearchParams;
rrHostSubsetIds?: number[];
};

type SlotInfo = {
time: string;
attendees?: number;
bookingUid?: string;
away?: boolean;
fromUser?: {
id: number;
displayName: string | null;
};
toUser?: {
id: number;
username: string | null;
displayName: string | null;
};
reason?: string;
emoji?: string;
showNotePublicly?: boolean;
};

export type GetAvailableSlotsResponse = {
slots: Record<string, SlotInfo[]>;
};
36 changes: 36 additions & 0 deletions packages/platform/atoms/hooks/schedules/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
type Schedule = {
id: number;
userId: number;
name: string;
timeZone: string | null;
};

export type CreateScheduleHandlerReturn = {
schedule: Schedule;
};

export type DuplicateScheduleHandlerReturn = {
schedule: Schedule;
};

export type GetAvailabilityListHandlerReturn = {
schedules: (Omit<Schedule, "userId"> & {
availability: {
id: number;
userId: number | null;
eventTypeId: number | null;
days: number[];
startTime: Date;
endTime: Date;
date: Date | null;
scheduleId: number | null;
}[];
isDefault: boolean;
})[];
};

export type CreateScheduleInput = {
name: string;
schedule?: { start: Date; end: Date }[][];
eventTypeId?: number;
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@ import { useMutation, useQueryClient } from "@tanstack/react-query";

import { SUCCESS_STATUS } from "@calcom/platform-constants";
import type { ApiResponse, ApiErrorResponse, ApiSuccessResponse } from "@calcom/platform-types";
import type { CreateScheduleHandlerReturn } from "@calcom/trpc/server/routers/viewer/availability/schedule/create.handler";
import { TCreateInputSchema as CreateScheduleSchema } from "@calcom/trpc/server/routers/viewer/availability/schedule/create.schema";

import http from "../../lib/http";
import type { CreateScheduleHandlerReturn, CreateScheduleInput as CreateScheduleSchema } from "./types";
import { QUERY_KEY as SchedulesQueryKey } from "./useAtomGetAllSchedules";
import { QUERY_KEY as ScheduleQueryKey } from "./useAtomSchedule";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { useMutation, useQueryClient } from "@tanstack/react-query";

import { SUCCESS_STATUS } from "@calcom/platform-constants";
import type { ApiResponse, ApiErrorResponse } from "@calcom/platform-types";
import type { DuplicateScheduleHandlerReturn } from "@calcom/trpc/server/routers/viewer/availability/schedule/duplicate.handler";

import http from "../../lib/http";
import type { DuplicateScheduleHandlerReturn } from "./types";
import { QUERY_KEY as ScheduleQueryKey } from "./useAtomSchedule";

interface useAtomDuplicateScheduleOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { useQuery } from "@tanstack/react-query";

import { SUCCESS_STATUS } from "@calcom/platform-constants";
import type { ApiResponse } from "@calcom/platform-types";
import type { GetAvailabilityListHandlerReturn } from "@calcom/trpc/server/routers/viewer/availability/list.handler";

import http from "../../lib/http";
import type { GetAvailabilityListHandlerReturn } from "./types";
import { useAtomsContext } from "../useAtomsContext";

export const QUERY_KEY = "use-atom-user-schedules";
Expand Down
2 changes: 1 addition & 1 deletion packages/platform/atoms/hooks/useAvailableSlots.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import type {
ApiResponse,
ApiSuccessResponse,
} from "@calcom/platform-types";
import type { GetAvailableSlotsResponse } from "@calcom/trpc/server/routers/viewer/slots/util";

import http from "../lib/http";
import type { GetAvailableSlotsResponse } from "../booker/types";

export const QUERY_KEY = "get-available-slots";

Expand Down
2 changes: 1 addition & 1 deletion packages/platform/atoms/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
},
"./add-members-switch/AddMembersWithSwitchPlatformWrapper": "./add-members-switch/AddMembersWithSwitchPlatformWrapper.tsx",
"./availability/AvailabilitySettings": "./availability/AvailabilitySettings.tsx",
"./booker": "./booker/index.ts",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

index.ts file doesn't exist in /booker directory

"./booker/types": "./booker/types.ts",
"./selected-calendars/SelectedCalendarsSettings": "./selected-calendars/SelectedCalendarsSettings.tsx",
"./components/ui/shell": "./src/components/ui/shell.tsx",
"./dist/index.ts": "./index.ts",
Expand Down
2 changes: 0 additions & 2 deletions packages/platform/atoms/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@
"../../dayjs",
"../../prisma/zod-utils.ts",
"../../prisma/zod",
"../../trpc/server/routers/viewer/slots",
"../../trpc/server/types",
"../../features/eventtypes",
"../../features/schedules",
"../../features/bookings/Booker",
Expand Down
8 changes: 0 additions & 8 deletions packages/trpc/server/routers/viewer/slots/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,6 @@ export const reserveSlotSchema = z
"Either slotUtcStartDate, slotUtcEndDate or eventTypeId should be filled in."
);

export type Slot = {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to atoms/booker/types

time: string;
userIds?: number[];
attendees?: number;
bookingUid?: string;
users?: string[];
};

export const removeSelectedSlotSchema = z.object({
uid: z.string().nullable(),
});
Expand Down
Loading