vchikalkin
5018560f29
feat(customer): implement banned customer check and enhance customer data handling
...
- Added `isCustomerBanned` function to determine if a customer is banned based on the `bannedUntil` field.
- Updated the `BaseService` to throw an error if a banned customer attempts to access certain functionalities.
- Enhanced the GraphQL operations to include the `bannedUntil` field in customer queries and mutations, improving data integrity and user experience.
- Integrated the `CheckBanned` component in the layout to manage banned customer states effectively.
2025-08-25 19:15:00 +03:00
Vlad Chikalkin
ed197143d6
Feature/tma back button ( #70 )
...
* feat(layout): integrate TelegramProvider and BackButton into main layout for enhanced navigation
* refactor(layout): remove BackButton from main layout and update navigation imports
* use ui back button for non tma mode
2025-08-02 15:42:06 +03:00
vchikalkin
cc30d0163c
fix login via telegram
2025-02-20 19:18:56 +03:00
Vlad Chikalkin
06be87f0ec
Feature/records ( #22 )
...
* components/profile: rename components files
* components/profile: organize files & folders
* split DataCard to 2 components
* [2] components/profile: organize files & folders
* data-card: fix phone field disabled
* fix card header color
* add schedule button for master
* fix navigation & profile background
* add basic schedule page
* fix bottom navbar overflows content
* header: remove bottom margin
* replace vanilla calendar with shadcn/ui one
* add slot functional
* fix forbidden error
* add slot operations
* show slots
* filter by selected day
* add hook useSlots
fix update slots list after add slot
fix initial fetch slots
* use slots hooks
* split edit-slot-form into files
* rename /time-slots -> /components
* refactor components & folders structure
* add feature: delete slot
* hooks/slot: update query keys
* add hooks/profile
* add hook useProfileMutation
* use useProfileMutation hook for update role
* rename useProfile -> useProfileQuery
* fix useProfileQuery queryKey
* add hook useContactsQuery
* remove unused ternary operator
* header: add backdrop blur
* create slot cards
* fix elements y center
* fix getSlots filters
* ui/ux improvements
* fix date time types & names
* move profile components from sub folder
* add basic slot page
* fix add slot form padding x
* add slot buttons
* extend slot card information
* fix import type
* use Container in pages
* change orange -> yellow for dark
* use Loading spinner in slots list
* refactor \components\schedule dir structure
* add orders list
* change query & mutation keys
* change url /profile/schedule/slot/ -> /slots/
* order: show services
* remove prefetchQuery
* bring the results of queries and hooks into a single form
* react query: globally show error toast
* add font inter
* fix header: center text
* orders: add sorting
* order card: add avatar
* rename records -> orders
* reduced text size
* fix slot buttons
* fix datetime card ui
* fix header: center text (finally)
* layout/container: last:mb-4
* fix type
* slot-datetime: use ReadonlyTimeRange
* rename files & components
* remove unnecessary context using
* feature: edit slot time
* fix: selected day reset after go back to /schedule
* rename AddTimeRange -> EditableTimeRangeForm & refactor
* fix some elements on page before data loaded
* fix text size
* slot-card: remove gap
* slot-date: remove margin
* fix slots & orders layout
* toast: show error text in ui
2025-02-20 18:11:28 +03:00
Vlad Chikalkin
427cc6b5d8
Feature/back button ( #17 )
...
* prepare for header back button: fix pages layout
add header with back button
* set header title
* optimize layout
* remove navigation context
* make profile photo bigger
* remove page-header from main pages
* fix profile layout
* profile: use ui/Card
* fix app background
* contacts: use ui/Card component
2025-01-27 17:28:28 +03:00
Vlad Chikalkin
10b36978fe
Feature/10 contacts ( #16 )
...
* apps/bot: add feature add contact
* apps/bot: check role 'master' before add contact
* apps/bot: rename createCustomer -> createUser
* remove ';'
* app/bot: add contact define name & phone
* apps/bot: check user already exists w/o telegramId (invited)
* Чтобы добавить контакт, сначала поделитесь своим номером телефона.
* apps/bot: create or update functions
* apps/bot: remove api.ts -> move getCustomer to packages/graphql/api
* packages/graphql: add api/customer tests
* tests for createOrUpdateClient
* fix(apps/web): user is undefined
* fix(apps/web): actions getCustomer
* feat(apps/web): update user photo on app launch
* rename page 'masters' -> 'contacts'
* feat(apps/web): add basic /contacts page
* fix app layout
* refactor customer queries
* add action getProfile
* get customer contacts
* use zustand for contacts
* add loading spinner
* rename filteredContacts -> contacts
* replace zustand with @tanstack/react-query
* profile: use react-query
* refactor updateRole function
* move updateRole closer to profile-card
* beautify actions
* add page 'profile/[telegramId]'
* profile: add button "message to telegram"
* profile: add call feature
* app/bot: normalize phone before register
* do not open keyboard on page load
* contacts: loading spinner
* telegram login: customer.active=true
* update name on telegram first login
2025-01-20 18:11:33 +03:00
Vlad Chikalkin
b936a79c2b
feature/profile-page ( #8 )
...
* add basic profile page
* apps/web: detect telegram/browser
support browser (dev only)
* apps/web: add dark mode
* apps/web: support dark theme in tma
* apps/web: add loading spinner
remove dev info from page
* apps\web\app\(auth)\page.tsx: remove useState
* app/web: handle update profile name
* move debounce functional to hook
* add role checkbox
2025-01-10 11:51:14 +03:00
vchikalkin
c05c77c578
add header
2024-12-16 21:34:02 +03:00
vchikalkin
8169685d6a
add navigation
...
add pages structure
temp disable telegram provider
2024-12-16 18:53:55 +03:00