stack/apps/dashboard
BilalG1 6ef0cac761
offers-page-list-view-switch (#906)
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->

<!-- RECURSEML_SUMMARY:START -->
## High-level PR Summary
This PR adds a toggle switch feature for the payments offers page,
allowing users to switch between two different view modes: a catalog
view (card-based layout) and a list view. The original code from
`page-client.tsx` has been split into two separate files -
`page-client-catalogs-view.tsx` for the existing card-based catalog view
and `page-client-list-view.tsx` for the new list-based view. The main
`page-client.tsx` file now acts as a simple router between these two
views, maintaining a view state and rendering the appropriate component
based on the selected view. Both view components include a toggle switch
in their header to allow users to switch between views.

⏱️ Estimated Review Time: 15-30 minutes

<details>
<summary>💡 Review Order Suggestion</summary>

| Order | File Path |
|-------|-----------|
| 1 |
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments/offers/page-client.tsx`
|
| 2 |
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments/offers/page-client-catalogs-view.tsx`
|
| 3 |
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments/offers/page-client-list-view.tsx`
|
</details>



<!-- RECURSEML_SUMMARY:END -->

<!-- RECURSEML_ANALYSIS:START -->
## Review by RecurseML

_🔍 Review performed on
[872174d..a5ad8d9](872174d5b7...a5ad8d9fd1)_

 No bugs found, your code is sparkling clean

<details>
<summary> Files analyzed, no issues (3)</summary>

•
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments/offers/page-client-catalogs-view.tsx`
•
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments/offers/page-client-list-view.tsx`
•
`apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/payments/offers/page-client.tsx`
</details>

[![Need help? Join our
Discord](https://img.shields.io/badge/Need%20help%3F%20Join%20our%20Discord-5865F2?style=plastic&logo=discord&logoColor=white)](https://discord.gg/n3SsVDAW6U)
<!-- RECURSEML_ANALYSIS:END -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Added revamped Payments Offers management with two views: List and
Catalogs.
  - Grouping and sorting of offers by customer type, addons, and price.
- Inline create/edit/duplicate/delete for offers, prices, and items with
dialogs and validations.
- Search, filters, and hover-based highlighting with visual connections
between offers and items.
- Responsive layout (desktop and mobile), tooltips, and helpful
empty-state onboarding.

- Refactor
- Simplified page into dedicated List and Catalogs views with seamless
switching for a clearer, faster experience.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-20 11:20:25 -07:00
..
public Better dashboard onboarding process (#604) 2025-06-06 10:51:08 +02:00
src offers-page-list-view-switch (#906) 2025-09-20 11:20:25 -07:00
.env Payment tests, account status, smartRoutes (#828) 2025-08-08 18:13:22 -07:00
.env.development Featurebase integration 2025-07-30 09:32:44 -07:00
.eslintrc.cjs tsup for stack-shared (#647) 2025-04-28 21:26:52 -07:00
.gitignore Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
.npmrc Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
CHANGELOG.md chore: update package versions 2025-09-20 10:31:35 -07:00
components.json Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
LICENSE Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
next.config.mjs Payment dogfooding (#847) 2025-08-19 15:47:10 -07:00
package.json chore: update package versions 2025-09-20 10:31:35 -07:00
postcss.config.js Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
sentry.client.config.ts JS lib docs (#444) 2025-02-20 00:48:05 +01:00
tailwind.config.ts Offer catalog UI (#904) 2025-09-20 10:26:39 -07:00
tsconfig.json In-source unit tests (#429) 2025-02-14 11:47:52 -08:00
vitest.config.ts In-source unit tests (#429) 2025-02-14 11:47:52 -08:00