Skip to content

Development/services#19

Open
vugarsafarzada wants to merge 56 commits into
mainfrom
development/services
Open

Development/services#19
vugarsafarzada wants to merge 56 commits into
mainfrom
development/services

Conversation

@vugarsafarzada
Copy link
Copy Markdown
Member

@vugarsafarzada vugarsafarzada commented May 5, 2026

Summary

This PR turns the frontend service/discovery branch into a full product surface for service authoring, marketplace browsing, service detail, favorites, moderation, richer brand/profile data, and the supporting shared UI/API infrastructure.

Linked Issues

Closes #9
Closes #10

References #13, which is already closed and implemented here.

Partially addresses #7 and #12.

What Changed

USO service workspace

  • Replaced the placeholder service strategy surface with a real USO service management workspace.
  • Added service create/edit flows for direct personal services and branch-linked services.
  • Added support for service category, description, images, duration, price, price type, address, branch context, and lifecycle status.
  • Added service list/detail behavior with status-aware actions for draft, pending, active, rejected, paused, and archived services.
  • Added resubmission, pause/resume, archive/unarchive, delete, and rating-aware service display paths.
  • Added reusable status badges and status banners so lifecycle states render consistently across service UI.

Marketplace, discovery, and UCR views

  • Added marketplace API integration and a UCR marketplace home experience with scrollable rails and richer entity cards.
  • Added dedicated UCR search page with API-backed search, request handling, and localized empty/loading/error states.
  • Added UCR services browsing with infinite scrolling, category filtering, counts, and service/provider context.
  • Added public service detail scaffolding and richer brand detail rendering for discovery flows.
  • Added marketplace search box, owner card, and shared page header components for discovery surfaces.

Favorites

  • Added favorites API client integration for brands and services.
  • Added UCR favorites page with localized empty/loading/error states.
  • Integrated favorite state with marketplace/search/service views where applicable.

Admin moderation workspace

  • Replaced the moderation placeholder route with a real admin-only moderation workspace.
  • Added moderation queue, brand/service detail review, approve/reject flows, rejection reason UX, and checklist-aware request handling.
  • Added URL-synced moderation state so selected entity/review context is preserved in navigation.
  • Added moderation API client and typed moderation contracts for queue items, brand detail, service detail, and review actions.

Brand, branch, and social profile updates

  • Added social and website link support for users and brands.
  • Added social link editor and social icon components.
  • Updated account/profile, brand form, brand detail, and profile panels to display or edit the new social fields.
  • Updated brand category handling from name to key to match backend category i18n contracts.
  • Refined brand/branch forms with custom time input, better delete confirmation flows, and richer detail rendering.

Rich text and shared UI infrastructure

  • Added TipTap-based rich text editor and rich text display components.
  • Added calendar/popover/date picker dependencies and UI for birthday/calendar-related surfaces.
  • Added reusable FormActions, PageSurfaceHeader, OwnerCard, StatusBadge, and StatusBanner components.
  • Reworked button usage and shared form actions to make workflows more consistent.
  • Removed the old image crop modal in favor of the existing avatar crop dialog path.

Navigation, layout, and visual polish

  • Expanded app sidebar navigation with nested brand/service entries, status dots, mobile shell support, and event-driven data refreshes.
  • Added account services section and updated dashboard/protected page shells for the new service/discovery surfaces.
  • Updated theme tokens, typography base size, header/sidebar styling, auth layout visuals, and responsive shell behavior.
  • Added dynamic page metadata coverage for more routes.

Internationalization

  • Migrated local copy into the i18n system for the new service, marketplace, moderation, favorites, calendar, notification, branch, and team surfaces.
  • Kept active locale support focused on az, en, ru, and tr.
  • Updated locale type definitions to cover the expanded translation surface.

API and type contracts

  • Added API clients for services, marketplace, search, favorites, and moderation.
  • Updated brand/user API contracts for social links and category keys.
  • Added typed frontend models for services, moderation, and expanded user/brand profile data.
  • Added social URL helpers and rich text helpers for validation/display behavior.

Dependencies Added

  • TipTap packages for rich text editing/display.
  • date-fns and react-day-picker for date/calendar UI.

Review Notes

  • This PR is intentionally large because the service authoring, marketplace discovery, moderation, favorites, and shared contracts depend on the backend service PR landing together.
  • #7 is only partially addressed: this PR improves brand/branch metadata, social links, forms, and moderation visibility, but it does not fully complete slot-based brand creation/payment rules.
  • #12 is only partially addressed: this PR touches notification/reservation placeholders and service ratings, but full reservation management and post-completion review workflows remain separate.
  • Please review route access and role-specific navigation carefully because this branch adds substantial UCR, USO, and admin surfaces.

Suggested Verification

  • Run pnpm lint.
  • Run pnpm build.
  • Smoke test USO service create/edit/lifecycle flows.
  • Smoke test UCR marketplace/search/service/favorites flows.
  • Smoke test admin moderation queue and approve/reject actions against a backend branch with matching service/moderation APIs.

vugarsafarzada and others added 30 commits April 25, 2026 06:09
- Add Service types and services-api.ts with full CRUD + lifecycle
- Replace ServicesStrategyPage with functional ServicesUsoPage
- Service create/edit form with context selector (individual/branch)
- Lifecycle actions: submit, pause, resume, archive, delete
- Rejection reason display with resubmit capability

Closes #9
…BrandForm pattern

Replace AlertDialog modal with a full-page ServiceFormPage that follows the
established BrandForm layout: sticky header with back button and mode badge,
two-column desktop shell (sidebar for photos + desktop aside actions, main
stack for form sections with step badges), mobile footer for actions.

Upgrade atoms: Combobox replaces native <select> for brand/branch selection,
Switch replaces radio buttons for the branch context toggle, ImageCropModal
(16:9) handles photo uploads instead of raw file input.
…ncements

- Add services section to BrandDetail with lazy-loaded branch services
- Service detail modal in BrandDetail with full info and photo gallery
- Add Featured Services section to BrandsUcrPage discovery page
- Service detail modal in BrandsUcrPage with price/duration/address
- Pass featuredServices from brands/page.tsx server component

Closes #10
…ents, and implement birthday validation logic
…sidebar and improve user-avatar loading performance
feat(moderation): build admin moderation workspace UI
…to normalize queue items and return void on actions
…orkspaces and add social links editor component
Removed per-component locale copy objects (type XxxCopy, EN/TR/AZ/RU
constants, getCopy functions) from 10 components and replaced with the
centralised useLocale() messages system.

Files migrated:
- rich-text-editor: toolbar tooltips
- theme-switcher: ThemeCopy (all 18 locales)
- brand-detail: BranchStudioCopy + ServicesCopy
- branch-modal: StudioCopy
- branch-page: StudioCopy
- brand-team-workspace: WorkspaceCopy
- brands-ucr-page: ServiceDiscoveryCopy
- notification-transfer-page: TeamInvitationCopy + NotificationCenterCopy
- services-strategy-page: StrategyCopy
- services-uso-page: PageCopy

Added theme and services namespaces to Messages type. Added ~250 new
keys across brands, theme and services namespaces. Updated all 18
locale files. Zero TypeScript errors.
Deleted 14 locale files (de, ar, es, fr, zh, ja, hi, la, fa, it, uk, pt, he, uz).
Updated i18n/config.ts to reflect the four supported locales.
Removed getLocaleDirection RTL logic as no RTL locales remain.
…d labels

fieldDuration/fieldPrice/fieldAddress were used as detail panel labels
causing verbose Russian translations like 'Длительность (минуты)'.
Added labelDuration/labelPrice/labelAddress keys with short translations
to all 4 locale files and wired them into the detail view.
…tegrate rating metadata in marketplace and service pages
…g service data models with branch context, and improving marketplace UI counts and search request handling.
@vugarsafarzada vugarsafarzada self-assigned this May 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant