diff --git a/apps/web/app/(main)/profile/schedule/page.tsx b/apps/web/app/(main)/profile/schedule/page.tsx index e132f56..98a518c 100644 --- a/apps/web/app/(main)/profile/schedule/page.tsx +++ b/apps/web/app/(main)/profile/schedule/page.tsx @@ -1,5 +1,6 @@ +import { HorizontalDivider } from '@/components/common/divider'; import { PageHeader } from '@/components/navigation'; -import { SlotsCalendar, TimeSlots } from '@/components/schedule'; +import { AddSlotForm, SlotsCalendar, SlotsList } from '@/components/schedule'; import { ScheduleSlotsProvider } from '@/context/schedule-slots'; export default function SchedulePage() { @@ -7,7 +8,9 @@ export default function SchedulePage() { - + + + ); } diff --git a/apps/web/components/common/divider.tsx b/apps/web/components/common/divider.tsx new file mode 100644 index 0000000..569f7b1 --- /dev/null +++ b/apps/web/components/common/divider.tsx @@ -0,0 +1,13 @@ +import { cn } from '@repo/ui/lib/utils'; + +type Props = { + readonly className?: string; +}; + +export function HorizontalDivider({ className }: Props) { + return ( +
+
+
+ ); +} diff --git a/apps/web/components/schedule/calendar.tsx b/apps/web/components/schedule/calendar.tsx index dcc160a..8f8dbc7 100644 --- a/apps/web/components/schedule/calendar.tsx +++ b/apps/web/components/schedule/calendar.tsx @@ -8,18 +8,16 @@ export function SlotsCalendar() { const { selectedDate, setSelectedDate } = use(ScheduleSlotsContext); return ( -
- { - return dayjs().isAfter(dayjs(date), 'day'); - }} - mode="single" - onSelect={(date) => { - if (date) setSelectedDate(date); - }} - selected={selectedDate} - /> -
+ { + return dayjs().isAfter(dayjs(date), 'day'); + }} + mode="single" + onSelect={(date) => { + if (date) setSelectedDate(date); + }} + selected={selectedDate} + /> ); } diff --git a/apps/web/components/schedule/time-slots/components/add-slot-form.tsx b/apps/web/components/schedule/time-slots/components/add-slot-form.tsx index 1c81e9b..41b2193 100644 --- a/apps/web/components/schedule/time-slots/components/add-slot-form.tsx +++ b/apps/web/components/schedule/time-slots/components/add-slot-form.tsx @@ -33,11 +33,14 @@ export const AddSlotForm = withContext(ContextProvider)(function () { }; return ( -
- - - +
+
+ + + +
); }); diff --git a/apps/web/components/schedule/time-slots/components/slot-card.tsx b/apps/web/components/schedule/time-slots/components/slot-card.tsx index 9668160..d84976b 100644 --- a/apps/web/components/schedule/time-slots/components/slot-card.tsx +++ b/apps/web/components/schedule/time-slots/components/slot-card.tsx @@ -1,7 +1,7 @@ 'use client'; import { ContextProvider } from '../context'; import { type SlotProps } from '../types'; -import { ReadonlyTimePair } from './time-pair'; +import { ReadonlyTimeRange } from './time-pair'; import { useSlotQuery } from '@/hooks/slots'; import { withContext } from '@/utils/context'; import { Badge } from '@repo/ui/components/ui/badge'; @@ -19,7 +19,7 @@ export const SlotCard = withContext(ContextProvider)(function (props: Readonly
- +
{hasOrders ? ( Есть записи diff --git a/apps/web/components/schedule/time-slots/index.tsx b/apps/web/components/schedule/time-slots/components/slots-list.tsx similarity index 76% rename from apps/web/components/schedule/time-slots/index.tsx rename to apps/web/components/schedule/time-slots/components/slots-list.tsx index 264568f..20fb0d9 100644 --- a/apps/web/components/schedule/time-slots/index.tsx +++ b/apps/web/components/schedule/time-slots/components/slots-list.tsx @@ -1,10 +1,9 @@ 'use client'; -import { AddSlotForm } from './components/add-slot-form'; -import { SlotCard } from './components/slot-card'; +import { SlotCard } from './slot-card'; import { useSlots } from '@/hooks/slots'; import { Loader } from 'lucide-react'; -export function TimeSlots() { +export function SlotsList() { const { data: slots, isLoading } = useSlots(); if (isLoading) @@ -21,7 +20,6 @@ export function TimeSlots() { return ; })} -
); } diff --git a/apps/web/components/schedule/time-slots/components/time-pair.tsx b/apps/web/components/schedule/time-slots/components/time-pair.tsx index d4a118f..0c2da38 100644 --- a/apps/web/components/schedule/time-slots/components/time-pair.tsx +++ b/apps/web/components/schedule/time-slots/components/time-pair.tsx @@ -25,7 +25,7 @@ export function AddTimePair() { ); } -export function ReadonlyTimePair({ dateend, datestart }: Readonly) { +export function ReadonlyTimeRange({ dateend, datestart }: Readonly) { return (
{getTimeString(datestart)} @@ -46,6 +46,7 @@ function TimeInputPair({ <>
setStartTime?.(event.target.value)} @@ -56,6 +57,7 @@ function TimeInputPair({
setEndTime?.(event.target.value)} diff --git a/apps/web/components/schedule/time-slots/index.ts b/apps/web/components/schedule/time-slots/index.ts new file mode 100644 index 0000000..3ebfa3d --- /dev/null +++ b/apps/web/components/schedule/time-slots/index.ts @@ -0,0 +1,2 @@ +export * from './components/add-slot-form'; +export * from './components/slots-list';