Skip to content

Conversation

@kastov
Copy link
Contributor

@kastov kastov commented Dec 28, 2025

No description provided.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Dec 28, 2025

Greptile Summary

This release bumps the frontend to version 2.5.0 and introduces a new user subscription request history feature alongside significant UI improvements to drawer components.

Key Changes:

  • Added new user subscription request history drawer that displays IP addresses, user agents, and timestamps for subscription requests with external IP lookup integration
  • Refactored multiple drawer widgets (config-profiles-drawer, hosts-config-profiles-drawer, internal-squads-drawer-with-store) to use Virtuoso for virtualized scrolling instead of ScrollArea, improving performance with large datasets
  • Changed accordion architecture from single parent Accordion to individual Accordion components per item for better control and virtualization compatibility
  • Added proper flexbox layouts and height management to drawer bodies across multiple components
  • Updated Persian (Farsi) translations for import config and base settings features
  • Removed unused selection UI box from internal squads drawer and improved tab styling
  • Updated @remnawave/backend-contract dependency from 2.4.1 to 2.5.1

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The changes are well-structured and follow consistent patterns across similar components. The refactoring from ScrollArea to Virtuoso with individual Accordion components is architecturally sound and improves performance. The new subscription request history feature is properly integrated with the modal store system. All changes maintain existing functionality while adding new capabilities. No security issues, logical errors, or breaking changes detected.
  • No files require special attention

Important Files Changed

Filename Overview
package.json Version bump to 2.5.0 and backend-contract update to 2.5.1
src/entities/dashboard/modal-store/modal-states.ts Added USER_SUBSCRIPTION_REQUESTS_DRAWER modal state and interface
src/widgets/dashboard/users/user-subscription-requests-drawer/user-subscription-requests-drawer.widget.tsx New drawer widget to display user subscription request history with refresh capability
src/widgets/dashboard/users/user-subscription-requests-drawer/user-subscription-request-item.tsx Component displaying individual subscription request with IP, user agent, and timestamp
src/widgets/dashboard/hosts/hosts-config-profiles-drawer/hosts-config-profiles.drawer.widget.tsx Refactored to use Virtuoso with individual Accordion components for better scrolling
src/widgets/dashboard/nodes/config-profiles-drawer/config-profiles.drawer.widget.tsx Refactored from ScrollArea to Virtuoso with individual Accordion components
src/widgets/dashboard/users/internal-squads-drawer-with-store/internal-squads-with-store.drawer.widget.tsx Refactored with tabs, removed selection UI box, individual Accordion per item with Virtuoso

Sequence Diagram

sequenceDiagram
    participant User
    participant MenuFeature as Get User Subscription<br/>Request History Feature
    participant ModalStore as Modal Store
    participant Drawer as User Subscription<br/>Requests Drawer
    participant API as useGetUserSubscription<br/>RequestHistory Hook
    participant Backend as Backend API
    participant Item as Subscription<br/>Request Item

    User->>MenuFeature: Click "Request History" menu item
    MenuFeature->>ModalStore: openModalWithData(USER_SUBSCRIPTION_REQUESTS_DRAWER, {userUuid})
    ModalStore->>Drawer: isOpen = true, internalState = {userUuid}
    
    Drawer->>API: Fetch subscription request history
    API->>Backend: GET /users/{uuid}/subscription-request-history
    Backend-->>API: Return {total, records[]}
    API-->>Drawer: subscriptionRequestHistory
    
    Drawer->>Drawer: Render total count card
    
    loop For each record
        Drawer->>Item: Render UserSubscriptionRequestItem
        Item->>Item: Display IP address, user agent, timestamp
        Item->>Item: Add link to ipinfo.io for IP lookup
    end
    
    User->>Drawer: Click refresh button
    Drawer->>API: refetch()
    API->>Backend: GET /users/{uuid}/subscription-request-history
    Backend-->>API: Return updated data
    API-->>Drawer: Updated subscriptionRequestHistory
    
    User->>Drawer: Click close
    Drawer->>ModalStore: close(USER_SUBSCRIPTION_REQUESTS_DRAWER)
    ModalStore->>Drawer: isOpen = false
Loading

kastov and others added 23 commits December 29, 2025 00:01
…or improved UI in NodesHeaderActionButtonsFeature
… emptyInternalSquads remarks from ExternalSquadsCustomRemarksTabWidget and SubscriptionUserRemarksCardWidget
New link to Happ Routing Builder
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants