From 5e13deecf06ceca769d80bf20a48c7d3dcf79e7c Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Fri, 23 May 2025 16:29:42 +0300 Subject: [PATCH] finally organized stores & context --- apps/web/app/(main)/contacts/page.tsx | 2 +- apps/web/app/(main)/profile/schedule/layout.tsx | 2 +- apps/web/components/contacts/dropdown-filter.tsx | 2 +- apps/web/components/orders/components/back-button.tsx | 2 +- apps/web/components/orders/components/contacts-grid.tsx | 4 ++-- apps/web/components/orders/components/datetime-select.tsx | 2 +- apps/web/components/orders/components/next-button.tsx | 2 +- apps/web/components/orders/components/result.tsx | 2 +- apps/web/components/orders/components/service-select.tsx | 2 +- apps/web/components/orders/components/submit-button.tsx | 2 +- apps/web/components/orders/order-form.tsx | 2 +- apps/web/components/schedule/calendar.tsx | 2 +- apps/web/components/schedule/components/slot-time.tsx | 2 +- apps/web/components/schedule/components/time-range.tsx | 2 +- apps/web/components/schedule/day-slot-add-form.tsx | 2 +- apps/web/components/schedule/day-slots-list.tsx | 2 +- apps/web/components/schedule/slot-datetime.tsx | 2 +- apps/web/context/{contacts-context.tsx => contacts.tsx} | 0 apps/web/context/{date-context.tsx => date.tsx} | 0 apps/web/hooks/api/contacts/use-customer-contacts.ts | 2 +- apps/web/stores/{orders/order-store => order}/context.ts | 0 apps/web/stores/{orders/order-store => order}/hooks.tsx | 0 apps/web/stores/{orders/order-store => order}/index.tsx | 0 apps/web/stores/{orders/order-store => order}/store.ts | 2 +- apps/web/stores/{orders/order-store => order}/types.ts | 4 ++-- apps/web/stores/schedule/{schedule-store => }/context.ts | 0 apps/web/stores/schedule/{schedule-store => }/index.ts | 0 apps/web/stores/schedule/{schedule-store => }/store.ts | 0 apps/web/stores/schedule/{schedule-store => }/types.ts | 0 29 files changed, 22 insertions(+), 22 deletions(-) rename apps/web/context/{contacts-context.tsx => contacts.tsx} (100%) rename apps/web/context/{date-context.tsx => date.tsx} (100%) rename apps/web/stores/{orders/order-store => order}/context.ts (100%) rename apps/web/stores/{orders/order-store => order}/hooks.tsx (100%) rename apps/web/stores/{orders/order-store => order}/index.tsx (100%) rename apps/web/stores/{orders/order-store => order}/store.ts (95%) rename apps/web/stores/{orders/order-store => order}/types.ts (77%) rename apps/web/stores/schedule/{schedule-store => }/context.ts (100%) rename apps/web/stores/schedule/{schedule-store => }/index.ts (100%) rename apps/web/stores/schedule/{schedule-store => }/store.ts (100%) rename apps/web/stores/schedule/{schedule-store => }/types.ts (100%) diff --git a/apps/web/app/(main)/contacts/page.tsx b/apps/web/app/(main)/contacts/page.tsx index 514d9ec..e2c4500 100644 --- a/apps/web/app/(main)/contacts/page.tsx +++ b/apps/web/app/(main)/contacts/page.tsx @@ -1,5 +1,5 @@ import { ContactsFilter, ContactsList } from '@/components/contacts'; -import { ContactsContextProvider } from '@/context/contacts-context'; +import { ContactsContextProvider } from '@/context/contacts'; import { Card } from '@repo/ui/components/ui/card'; export default function ContactsPage() { diff --git a/apps/web/app/(main)/profile/schedule/layout.tsx b/apps/web/app/(main)/profile/schedule/layout.tsx index 79708aa..122fb0f 100644 --- a/apps/web/app/(main)/profile/schedule/layout.tsx +++ b/apps/web/app/(main)/profile/schedule/layout.tsx @@ -1,4 +1,4 @@ -import { DateContextProvider } from '@/context/date-context'; +import { DateContextProvider } from '@/context/date'; import { type PropsWithChildren } from 'react'; export default async function Layout({ children }: Readonly) { diff --git a/apps/web/components/contacts/dropdown-filter.tsx b/apps/web/components/contacts/dropdown-filter.tsx index 2d3a18a..b6e9bbc 100644 --- a/apps/web/components/contacts/dropdown-filter.tsx +++ b/apps/web/components/contacts/dropdown-filter.tsx @@ -1,6 +1,6 @@ 'use client'; -import { ContactsContext, type FilterType } from '@/context/contacts-context'; +import { ContactsContext, type FilterType } from '@/context/contacts'; import { Button } from '@repo/ui/components/ui/button'; import { DropdownMenu, diff --git a/apps/web/components/orders/components/back-button.tsx b/apps/web/components/orders/components/back-button.tsx index 7e849ff..f2bb01d 100644 --- a/apps/web/components/orders/components/back-button.tsx +++ b/apps/web/components/orders/components/back-button.tsx @@ -1,7 +1,7 @@ 'use client'; import { useOrderCreate } from '@/hooks/api/orders'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { Button } from '@repo/ui/components/ui/button'; export function BackButton() { diff --git a/apps/web/components/orders/components/contacts-grid.tsx b/apps/web/components/orders/components/contacts-grid.tsx index c524dfa..903f308 100644 --- a/apps/web/components/orders/components/contacts-grid.tsx +++ b/apps/web/components/orders/components/contacts-grid.tsx @@ -2,11 +2,11 @@ import { LoadingSpinner } from '@/components/common/spinner'; import { CardSectionHeader } from '@/components/ui'; -import { ContactsContextProvider } from '@/context/contacts-context'; +import { ContactsContextProvider } from '@/context/contacts'; import { useCustomerContacts } from '@/hooks/api/contacts'; // eslint-disable-next-line import/extensions import AvatarPlaceholder from '@/public/avatar/avatar_placeholder.png'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { withContext } from '@/utils/context'; import { type CustomerFieldsFragment } from '@repo/graphql/types'; import { Card } from '@repo/ui/components/ui/card'; diff --git a/apps/web/components/orders/components/datetime-select.tsx b/apps/web/components/orders/components/datetime-select.tsx index 727ae4e..8e2befb 100644 --- a/apps/web/components/orders/components/datetime-select.tsx +++ b/apps/web/components/orders/components/datetime-select.tsx @@ -1,7 +1,7 @@ 'use client'; import { useAvailableTimeSlotsQuery } from '@/hooks/api/slots'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { Button } from '@repo/ui/components/ui/button'; import { Calendar } from '@repo/ui/components/ui/calendar'; import dayjs from 'dayjs'; diff --git a/apps/web/components/orders/components/next-button.tsx b/apps/web/components/orders/components/next-button.tsx index 535b39d..53bec02 100644 --- a/apps/web/components/orders/components/next-button.tsx +++ b/apps/web/components/orders/components/next-button.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { Button } from '@repo/ui/components/ui/button'; export function NextButton() { diff --git a/apps/web/components/orders/components/result.tsx b/apps/web/components/orders/components/result.tsx index 86afd9a..9f09837 100644 --- a/apps/web/components/orders/components/result.tsx +++ b/apps/web/components/orders/components/result.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { Button } from '@repo/ui/components/ui/button'; import { Card, CardContent } from '@repo/ui/components/ui/card'; import { AlertCircle, CheckCircle2, Home, RefreshCw } from 'lucide-react'; diff --git a/apps/web/components/orders/components/service-select.tsx b/apps/web/components/orders/components/service-select.tsx index 326c2be..a3f0ceb 100644 --- a/apps/web/components/orders/components/service-select.tsx +++ b/apps/web/components/orders/components/service-select.tsx @@ -1,7 +1,7 @@ 'use client'; import { useServicesQuery } from '@/hooks/api/services'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { type ServiceFieldsFragment } from '@repo/graphql/types'; import { cn } from '@repo/ui/lib/utils'; diff --git a/apps/web/components/orders/components/submit-button.tsx b/apps/web/components/orders/components/submit-button.tsx index b1a84f7..464fafb 100644 --- a/apps/web/components/orders/components/submit-button.tsx +++ b/apps/web/components/orders/components/submit-button.tsx @@ -1,7 +1,7 @@ 'use client'; import { useOrderCreate } from '@/hooks/api/orders'; -import { useOrderStore } from '@/stores/orders/order-store'; +import { useOrderStore } from '@/stores/order'; import { Button } from '@repo/ui/components/ui/button'; import { LoadingSpinner } from '@repo/ui/components/ui/spinner'; import { useEffect } from 'react'; diff --git a/apps/web/components/orders/order-form.tsx b/apps/web/components/orders/order-form.tsx index 956fcf8..0a613bf 100644 --- a/apps/web/components/orders/order-form.tsx +++ b/apps/web/components/orders/order-form.tsx @@ -12,7 +12,7 @@ import { SuccessPage, } from './components'; import { SubmitButton } from './components/submit-button'; -import { OrderStoreProvider, useInitOrderStore, useOrderStore } from '@/stores/orders/order-store'; +import { OrderStoreProvider, useInitOrderStore, useOrderStore } from '@/stores/order'; import { withContext } from '@/utils/context'; import { type JSX } from 'react'; diff --git a/apps/web/components/schedule/calendar.tsx b/apps/web/components/schedule/calendar.tsx index 915cc0b..e958cde 100644 --- a/apps/web/components/schedule/calendar.tsx +++ b/apps/web/components/schedule/calendar.tsx @@ -1,6 +1,6 @@ 'use client'; -import { DateContext } from '@/context/date-context'; +import { DateContext } from '@/context/date'; import { Calendar } from '@repo/ui/components/ui/calendar'; import dayjs from 'dayjs'; import { use } from 'react'; diff --git a/apps/web/components/schedule/components/slot-time.tsx b/apps/web/components/schedule/components/slot-time.tsx index e5d10dc..42ef831 100644 --- a/apps/web/components/schedule/components/slot-time.tsx +++ b/apps/web/components/schedule/components/slot-time.tsx @@ -4,7 +4,7 @@ import { type SlotComponentProps } from '../types'; import { EditableTimeRangeForm, ReadonlyTimeRange } from './time-range'; import { useSlotMutation, useSlotQuery } from '@/hooks/api/slots'; -import { useZustandStore } from '@/stores/schedule/schedule-store'; +import { useZustandStore } from '@/stores/schedule'; import { Button } from '@repo/ui/components/ui/button'; import { PencilLine } from 'lucide-react'; import { useEffect } from 'react'; diff --git a/apps/web/components/schedule/components/time-range.tsx b/apps/web/components/schedule/components/time-range.tsx index 252fe7b..5bc6699 100644 --- a/apps/web/components/schedule/components/time-range.tsx +++ b/apps/web/components/schedule/components/time-range.tsx @@ -1,7 +1,7 @@ 'use client'; import { type OrderTimeRange } from '../types'; -import { useScheduleStore } from '@/stores/schedule/schedule-store'; +import { useScheduleStore } from '@/stores/schedule'; import { formatTime } from '@repo/graphql/utils/datetime-format'; import { Input } from '@repo/ui/components/ui/input'; import { cn } from '@repo/ui/lib/utils'; diff --git a/apps/web/components/schedule/day-slot-add-form.tsx b/apps/web/components/schedule/day-slot-add-form.tsx index f15549b..f8990e8 100644 --- a/apps/web/components/schedule/day-slot-add-form.tsx +++ b/apps/web/components/schedule/day-slot-add-form.tsx @@ -3,7 +3,7 @@ import { EditableTimeRangeForm } from './components/time-range'; import { useSlotCreate } from '@/hooks/api/slots'; -import { ScheduleStoreProvider, useScheduleStore } from '@/stores/schedule/schedule-store'; +import { ScheduleStoreProvider, useScheduleStore } from '@/stores/schedule'; import { withContext } from '@/utils/context'; import { Enum_Slot_State } from '@repo/graphql/types'; import { Button } from '@repo/ui/components/ui/button'; diff --git a/apps/web/components/schedule/day-slots-list.tsx b/apps/web/components/schedule/day-slots-list.tsx index 34dccd4..40007c5 100644 --- a/apps/web/components/schedule/day-slots-list.tsx +++ b/apps/web/components/schedule/day-slots-list.tsx @@ -3,7 +3,7 @@ import { SlotCard } from './components/slot-card'; import { DaySlotAddForm } from './day-slot-add-form'; import { LoadingSpinner } from '@/components/common/spinner'; -import { DateContext } from '@/context/date-context'; +import { DateContext } from '@/context/date'; import { useSlotsQuery } from '@/hooks/api/slots'; import { use } from 'react'; diff --git a/apps/web/components/schedule/slot-datetime.tsx b/apps/web/components/schedule/slot-datetime.tsx index d229b4d..dd213b3 100644 --- a/apps/web/components/schedule/slot-datetime.tsx +++ b/apps/web/components/schedule/slot-datetime.tsx @@ -3,7 +3,7 @@ import { SlotDate } from './components/slot-date'; import { SlotTime } from './components/slot-time'; import { type SlotComponentProps } from './types'; -import { ScheduleStoreProvider } from '@/stores/schedule/schedule-store'; +import { ScheduleStoreProvider } from '@/stores/schedule'; import { withContext } from '@/utils/context'; export const SlotDateTime = withContext(ScheduleStoreProvider)(function ( diff --git a/apps/web/context/contacts-context.tsx b/apps/web/context/contacts.tsx similarity index 100% rename from apps/web/context/contacts-context.tsx rename to apps/web/context/contacts.tsx diff --git a/apps/web/context/date-context.tsx b/apps/web/context/date.tsx similarity index 100% rename from apps/web/context/date-context.tsx rename to apps/web/context/date.tsx diff --git a/apps/web/hooks/api/contacts/use-customer-contacts.ts b/apps/web/hooks/api/contacts/use-customer-contacts.ts index dfd7040..47a43d8 100644 --- a/apps/web/hooks/api/contacts/use-customer-contacts.ts +++ b/apps/web/hooks/api/contacts/use-customer-contacts.ts @@ -1,7 +1,7 @@ 'use client'; import { useClientsQuery, useMastersQuery } from './query'; -import { ContactsContext } from '@/context/contacts-context'; +import { ContactsContext } from '@/context/contacts'; import { sift } from 'radash'; import { use, useEffect, useMemo } from 'react'; diff --git a/apps/web/stores/orders/order-store/context.ts b/apps/web/stores/order/context.ts similarity index 100% rename from apps/web/stores/orders/order-store/context.ts rename to apps/web/stores/order/context.ts diff --git a/apps/web/stores/orders/order-store/hooks.tsx b/apps/web/stores/order/hooks.tsx similarity index 100% rename from apps/web/stores/orders/order-store/hooks.tsx rename to apps/web/stores/order/hooks.tsx diff --git a/apps/web/stores/orders/order-store/index.tsx b/apps/web/stores/order/index.tsx similarity index 100% rename from apps/web/stores/orders/order-store/index.tsx rename to apps/web/stores/order/index.tsx diff --git a/apps/web/stores/orders/order-store/store.ts b/apps/web/stores/order/store.ts similarity index 95% rename from apps/web/stores/orders/order-store/store.ts rename to apps/web/stores/order/store.ts index 5afd05b..974e8d7 100644 --- a/apps/web/stores/orders/order-store/store.ts +++ b/apps/web/stores/order/store.ts @@ -5,7 +5,7 @@ import { createServiceSlice, createSlotSlice, createStepsSlice, -} from '../../lib/slices'; +} from '../lib/slices'; import { type OrderStore } from './types'; import { createStore } from 'zustand'; diff --git a/apps/web/stores/orders/order-store/types.ts b/apps/web/stores/order/types.ts similarity index 77% rename from apps/web/stores/orders/order-store/types.ts rename to apps/web/stores/order/types.ts index a815b65..06a0382 100644 --- a/apps/web/stores/orders/order-store/types.ts +++ b/apps/web/stores/order/types.ts @@ -5,7 +5,7 @@ import { type ServiceSlice, type SlotSlice, type StepsSlice, -} from '../../lib/slices'; +} from '../lib/slices'; export type OrderStore = ClientSlice & DateTimeSlice & @@ -14,4 +14,4 @@ export type OrderStore = ClientSlice & SlotSlice & StepsSlice; -export { type Steps } from '../../lib/slices'; +export { type Steps } from '../lib/slices'; diff --git a/apps/web/stores/schedule/schedule-store/context.ts b/apps/web/stores/schedule/context.ts similarity index 100% rename from apps/web/stores/schedule/schedule-store/context.ts rename to apps/web/stores/schedule/context.ts diff --git a/apps/web/stores/schedule/schedule-store/index.ts b/apps/web/stores/schedule/index.ts similarity index 100% rename from apps/web/stores/schedule/schedule-store/index.ts rename to apps/web/stores/schedule/index.ts diff --git a/apps/web/stores/schedule/schedule-store/store.ts b/apps/web/stores/schedule/store.ts similarity index 100% rename from apps/web/stores/schedule/schedule-store/store.ts rename to apps/web/stores/schedule/store.ts diff --git a/apps/web/stores/schedule/schedule-store/types.ts b/apps/web/stores/schedule/types.ts similarity index 100% rename from apps/web/stores/schedule/schedule-store/types.ts rename to apps/web/stores/schedule/types.ts