How patriciasegantine/redirect-lab-client works
Redirect Lab is a React client for managing short links. Users create or edit a link, manage the collection, copy/open short URLs, and export links; visitors can resolve a short URL and redirect to its destination. The README also documents access-count updates across tabs and theme switching. The sampled source confirms routing and API-service behavior; UI-to-hook wiring is represented at the feature level, while backend persistence and export delivery remain external.
Main entry points: api-client.ts HTTP client · App.tsx Route table · links-service.ts Service facade · use-links.ts Link state hook
Components 27
Application shell
- App entry
src/main.tsx - Route table
src/App.tsx
Link workflows
- Home page
src/components/pages/home.tsx - Redirect page
src/components/pages/redirecting.tsx - Not found
src/components/pages/not-found.tsx - Create link
src/components/layout/create-link/create-link.tsx - My links
src/components/layout/my-links/my-links.tsx - Links list
src/components/layout/links-list/links-list.tsx - Edit dialog
src/components/edit-link-dialog/edit-link-dialog.tsx - Delete dialog
src/components/delete-link-dialog/delete-link-dialog.tsx
Client data layer
- Link validation
src/schema/create-link.ts - Link state hook
src/hooks/use-links.ts - Service facade
src/services/links-service.ts - List links
src/services/get-links/get-links.service.ts - Create link API
src/services/create-link/create-link.service.ts - Update link API
src/services/update-link/update-link.service.ts - Delete link API
src/services/delete-link/delete-link.service.ts - Resolve short URL
src/services/get-link-by-short-url/get-link-by-short-url.service.ts - CSV export API
src/services/export-links-csv/export-links-csv.service.ts - HTTP client
src/services/api-client.ts - Tab sync channel
src/lib/links-channel.ts
Shared presentation
- Header
src/components/layout/header/header.tsx - Page layout
src/components/layout/layout.tsx - Theme provider
src/components/theme-provider.tsx
Other components
- Visitor
- Dashboard user
- Redirect Lab API
Connections 35
- Dashboard user → App entry: uses
- App entry → Route table: renders
- Route table → Home page: routes
- Route table → Redirect page: routes
- Route table → Not found: routes
- Route table → Header: renders
- Route table → Page layout: wraps
- Home page → Create link: presents
- Home page → My links: presents
- My links → Links list: displays
- Create link → Link validation: validates
- Create link → Link state hook: submits
- Links list → Link state hook: manages
- Links list → Edit dialog: opens
- Links list → Delete dialog: opens
- Link state hook → Service facade: dispatches
- Service facade → List links: delegates
- Service facade → Create link API: delegates
- Service facade → Update link API: delegates
- Service facade → Delete link API: delegates
- Service facade → CSV export API: delegates
- List links → HTTP client: requests
- Create link API → HTTP client: requests
- Update link API → HTTP client: requests
- Delete link API → HTTP client: requests
- Resolve short URL → HTTP client: requests
- CSV export API → HTTP client: requests
- HTTP client → Redirect Lab API: calls
- Visitor → Redirect page: opens short URL
- Redirect page → Resolve short URL: resolves
- Redirect page → Visitor: redirects
- Tab sync channel → Link state hook: notifies updates
- Link state hook → Tab sync channel: broadcasts access
- Link state hook → Redirect Lab API: refreshes counts
- App entry → Theme provider: provides theme