- Introduced SummaryStats component to standardize the display of statistics across the application. - Updated SubscriptionsList and SupportCasesView to utilize the new SummaryStats component for better UI consistency. - Refactored existing statistics display code into the new component, improving maintainability. feat: Implement OrderDetailSkeleton and OrderProgressTimeline components - Created OrderDetailSkeleton for loading states in order details view. - Developed OrderProgressTimeline to visually represent the order status progression. - Added skeleton loading states for both components to enhance user experience during data fetching. feat: Enhance orders filtering with useOrdersFilter hook - Implemented useOrdersFilter hook to manage order filtering logic, including search and status filters. - Improved filtering capabilities for orders based on various criteria, enhancing user interaction. feat: Add VpnPlansContent component for VPN service plans display - Developed VpnPlansContent component to showcase available VPN plans and features. - Integrated loading and error handling states for better user feedback. - Included FAQ and How It Works sections to provide users with essential information about the VPN service. chore: Update index files for new components - Added exports for new components in their respective index files for easier imports.
Portal Structure Overview
This app follows a feature-first architecture with a consolidated lib for shared utilities.
Structure:
src/
app/ # Next.js App Router
components/ # Design system (ui, layout, common)
features/ # Feature modules (auth, billing, subscriptions, ...)
lib/ # Core utils and services (api, query, env, utils, types)
providers/ # App-wide providers (e.g., QueryProvider)
styles/ # Global styles
Key changes:
- Merged former
core/andshared/intolib/. - Moved
components/providers/query-provider.tsxtoproviders/query-provider.tsx. - Introduced path aliases:
@/lib/*,@/providers/*.
Migration tips:
- Prefer importing from
@/lib/...going forward. - All
@/shared/*or@/core/*imports have been removed; use@/lib/*.