diff --git a/apps/web/app/(main)/profile/schedule/page.tsx b/apps/web/app/(main)/profile/schedule/page.tsx
index e5c85af..c909810 100644
--- a/apps/web/app/(main)/profile/schedule/page.tsx
+++ b/apps/web/app/(main)/profile/schedule/page.tsx
@@ -1,19 +1,19 @@
import { HorizontalDivider } from '@/components/common/divider';
import { Container } from '@/components/layout';
import { PageHeader } from '@/components/navigation';
-import { AddSlotForm, SlotsCalendar, SlotsList } from '@/components/schedule';
-import { ScheduleSlotsProvider } from '@/context/schedule-slots';
+import { DaySlotAddForm, DaySlotsList, ScheduleCalendar } from '@/components/schedule';
+import { ScheduleContextProvider } from '@/context/schedule';
export default function SchedulePage() {
return (
-
+
-
-
+
+
-
+
-
+
);
}
diff --git a/apps/web/app/(main)/slots/[documentId]/page.tsx b/apps/web/app/(main)/slots/[documentId]/page.tsx
index 208108b..817a0f3 100644
--- a/apps/web/app/(main)/slots/[documentId]/page.tsx
+++ b/apps/web/app/(main)/slots/[documentId]/page.tsx
@@ -1,7 +1,6 @@
import { Container } from '@/components/layout';
import { PageHeader } from '@/components/navigation';
-import { SlotButtons, SlotDateTime } from '@/components/schedule';
-import { OrdersList } from '@/components/schedule/orders-list';
+import { SlotButtons, SlotDateTime, SlotOrdersList } from '@/components/schedule';
import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query';
type Props = { params: Promise<{ documentId: string }> };
@@ -18,7 +17,7 @@ export default async function ProfilePage(props: Readonly) {
-
+
);
}
diff --git a/apps/web/components/schedule/calendar.tsx b/apps/web/components/schedule/calendar.tsx
index 8f8dbc7..4a024b8 100644
--- a/apps/web/components/schedule/calendar.tsx
+++ b/apps/web/components/schedule/calendar.tsx
@@ -1,11 +1,11 @@
'use client';
-import { ScheduleSlotsContext } from '@/context/schedule-slots';
+import { ScheduleContext } from '@/context/schedule';
import { Calendar } from '@repo/ui/components/ui/calendar';
import dayjs from 'dayjs';
import { use } from 'react';
-export function SlotsCalendar() {
- const { selectedDate, setSelectedDate } = use(ScheduleSlotsContext);
+export function ScheduleCalendar() {
+ const { selectedDate, setSelectedDate } = use(ScheduleContext);
return (
= {
+const MAP_BADGE_TEXT: Record = {
closed: 'Закрыто',
open: 'Открыто',
reserved: 'Зарезервировано',
@@ -22,7 +22,7 @@ function getBadgeText(state: Enum_Slot_State) {
return MAP_BADGE_TEXT[state];
}
-export const SlotCard = withContext(ContextProvider)(function (
+export const SlotCard = withContext(ScheduleTimeContextProvider)(function (
props: Readonly,
) {
const { documentId } = props;
diff --git a/apps/web/components/schedule/components/time-range.tsx b/apps/web/components/schedule/components/time-range.tsx
index d704345..c55c6b4 100644
--- a/apps/web/components/schedule/components/time-range.tsx
+++ b/apps/web/components/schedule/components/time-range.tsx
@@ -1,5 +1,5 @@
'use client';
-import { Context } from '../context';
+import { ScheduleTimeContext } from '../context';
import { useSlotAdd } from '@/hooks/slots';
import { formatTime } from '@/utils/date';
import { Input } from '@repo/ui/components/ui/input';
@@ -14,7 +14,7 @@ type TimeRangeProps = {
};
export function AddTimeRange() {
- const { endTime, setEndTime, setStartTime, startTime } = use(Context);
+ const { endTime, setEndTime, setStartTime, startTime } = use(ScheduleTimeContext);
const { isPending } = useSlotAdd();
return (
diff --git a/apps/web/components/schedule/context/index.tsx b/apps/web/components/schedule/context/index.tsx
index 470af0a..e352214 100644
--- a/apps/web/components/schedule/context/index.tsx
+++ b/apps/web/components/schedule/context/index.tsx
@@ -9,9 +9,9 @@ export type ContextType = {
setStartTime: (value: string) => void;
startTime: string;
};
-export const Context = createContext({} as ContextType);
+export const ScheduleTimeContext = createContext({} as ContextType);
-export function ContextProvider({ children }: Readonly) {
+export function ScheduleTimeContextProvider({ children }: Readonly) {
const [editMode, setEditMode] = useState(false);
const [startTime, setStartTime] = useState('');
const [endTime, setEndTime] = useState('');
@@ -27,5 +27,5 @@ export function ContextProvider({ children }: Readonly) {
};
}, [editMode, endTime, setEditMode, startTime]);
- return {children};
+ return {children};
}
diff --git a/apps/web/components/schedule/add-slot-form.tsx b/apps/web/components/schedule/day-slot-add-form.tsx
similarity index 75%
rename from apps/web/components/schedule/add-slot-form.tsx
rename to apps/web/components/schedule/day-slot-add-form.tsx
index 2df55e0..401fa84 100644
--- a/apps/web/components/schedule/add-slot-form.tsx
+++ b/apps/web/components/schedule/day-slot-add-form.tsx
@@ -1,8 +1,8 @@
/* eslint-disable canonical/id-match */
'use client';
import { AddTimeRange } from './components/time-range';
-import { Context, ContextProvider } from './context';
-import { ScheduleSlotsContext } from '@/context/schedule-slots';
+import { ScheduleTimeContext, ScheduleTimeContextProvider } from './context';
+import { ScheduleContext } from '@/context/schedule';
import { useSlotAdd } from '@/hooks/slots';
import { withContext } from '@/utils/context';
import { Enum_Slot_State } from '@repo/graphql/types';
@@ -10,10 +10,10 @@ import { Button } from '@repo/ui/components/ui/button';
import { PlusSquare } from 'lucide-react';
import { type FormEvent, use } from 'react';
-export const AddSlotForm = withContext(ContextProvider)(function () {
- const { endTime, setEndTime, setStartTime, startTime } = use(Context);
+export const DaySlotAddForm = withContext(ScheduleTimeContextProvider)(function () {
+ const { endTime, setEndTime, setStartTime, startTime } = use(ScheduleTimeContext);
- const { selectedDate } = use(ScheduleSlotsContext);
+ const { selectedDate } = use(ScheduleContext);
const { mutate: addSlot } = useSlotAdd();
diff --git a/apps/web/components/schedule/slots-list.tsx b/apps/web/components/schedule/day-slots-list.tsx
similarity index 93%
rename from apps/web/components/schedule/slots-list.tsx
rename to apps/web/components/schedule/day-slots-list.tsx
index b99631d..c1ff49f 100644
--- a/apps/web/components/schedule/slots-list.tsx
+++ b/apps/web/components/schedule/day-slots-list.tsx
@@ -3,7 +3,7 @@ import { SlotCard } from './components/slot-card';
import { LoadingSpinner } from '@/components/common/spinner';
import { useSlots } from '@/hooks/slots';
-export function SlotsList() {
+export function DaySlotsList() {
const { data, isLoading } = useSlots();
const slots = data?.data.slots;
diff --git a/apps/web/components/schedule/index.ts b/apps/web/components/schedule/index.ts
index ce1e18d..0251181 100644
--- a/apps/web/components/schedule/index.ts
+++ b/apps/web/components/schedule/index.ts
@@ -1,5 +1,6 @@
-export * from './add-slot-form';
export * from './calendar';
+export * from './day-slot-add-form';
+export * from './day-slots-list';
export * from './slot-buttons';
export * from './slot-datetime';
-export * from './slots-list';
+export * from './slot-orders-list';
diff --git a/apps/web/components/schedule/orders-list.tsx b/apps/web/components/schedule/slot-orders-list.tsx
similarity index 95%
rename from apps/web/components/schedule/orders-list.tsx
rename to apps/web/components/schedule/slot-orders-list.tsx
index 4a49ebe..08941d0 100644
--- a/apps/web/components/schedule/orders-list.tsx
+++ b/apps/web/components/schedule/slot-orders-list.tsx
@@ -4,7 +4,7 @@ import { type SlotComponentProps } from './types';
import { useSlotQuery } from '@/hooks/slots';
import { cn } from '@repo/ui/lib/utils';
-export function OrdersList({
+export function SlotOrdersList({
className,
documentId,
}: Readonly & { readonly className?: string }) {
diff --git a/apps/web/context/schedule-slots.tsx b/apps/web/context/schedule.tsx
similarity index 54%
rename from apps/web/context/schedule-slots.tsx
rename to apps/web/context/schedule.tsx
index 123b9be..97e747a 100644
--- a/apps/web/context/schedule-slots.tsx
+++ b/apps/web/context/schedule.tsx
@@ -6,12 +6,12 @@ type ContextType = {
setSelectedDate: (date: Date) => void;
};
-export const ScheduleSlotsContext = createContext({} as ContextType);
+export const ScheduleContext = createContext({} as ContextType);
-export function ScheduleSlotsProvider({ children }: { readonly children: React.ReactNode }) {
+export function ScheduleContextProvider({ children }: { readonly children: React.ReactNode }) {
const [selectedDate, setSelectedDate] = useState(new Date());
const value = useMemo(() => ({ selectedDate, setSelectedDate }), [selectedDate]);
- return {children};
+ return {children};
}
diff --git a/apps/web/hooks/slots/index.ts b/apps/web/hooks/slots/index.ts
index 1373c76..068fa99 100644
--- a/apps/web/hooks/slots/index.ts
+++ b/apps/web/hooks/slots/index.ts
@@ -1,6 +1,6 @@
'use client';
import { addSlot, deleteSlot, getSlot, getSlots, updateSlot } from '@/actions/slots';
-import { ScheduleSlotsContext } from '@/context/schedule-slots';
+import { ScheduleContext } from '@/context/schedule';
import { formatDate } from '@/utils/date';
// eslint-disable-next-line sonarjs/no-internal-api-use
import type * as ApolloTypes from '@repo/graphql/node_modules/@apollo/client/core';
@@ -11,7 +11,7 @@ import { use } from 'react';
type FixTypescriptCringe = ApolloTypes.FetchResult;
export const useSlots = () => {
- const { selectedDate } = use(ScheduleSlotsContext);
+ const { selectedDate } = use(ScheduleContext);
return useQuery({
queryFn: () =>