-
Notifications
You must be signed in to change notification settings - Fork 70
[Apps] New accordion groups, autocomplete search to filter by existing set of all users with App permissions #172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…part 0 of breaking down the group tables into accordions
0b8cb5d to
c440947
Compare
…to roles for users (#176)
…ent when it's in an accordion element
|
Updated:
|
| const handleSearchSubmit = (_: unknown, newValue: string | null) => { | ||
| // Extract email from format "Display Name ([email protected])" | ||
| const emailMatch = newValue?.match(/\(([^)]+)\)/); | ||
| const email = emailMatch ? emailMatch[1].toLowerCase() : ''; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems widely useful and unspecific to search; might be worth tossing in helpers.tsx next to displayUserName
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors several list views to use a shared EmptyListEntry component for empty table states and introduces new components (AppsHeader, AppsAdminActionGroup, AppsAccordionListGroup) to support filterable, collapsible app groups in the Apps detail page.
- Replace manual "None" rows with
EmptyListEntryfor consistency across tables. - Add helper
extractEmailFromDisplayNameand wire up autocomplete search and expand/collapse inReadApp. - Introduce and export three new app-related components under
src/pages/apps/components/.
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pages/users/Read.tsx | Swapped manual empty rows for EmptyListEntry. |
| src/pages/tags/Read.tsx | Same replacement in multiple tag-related tables. |
| src/pages/requests/Read.tsx | Added correct cellProps to EmptyListEntry. |
| src/pages/groups/Read.tsx | Updated empty state with cellProps. |
| src/pages/apps/components/index.tsx | Export new app components. |
| src/pages/apps/components/AppsHeader.tsx | New header UI for app detail. |
| src/pages/apps/components/AppsAdminActionGroup.tsx | New action bar with search & expand controls. |
| src/pages/apps/components/AppsAccordionListGroup.tsx | New accordion list for grouping users under app groups. |
| src/pages/apps/Read.tsx | Composed the above components into ReadApp. |
| src/helpers.tsx | Added extractEmailFromDisplayName helper. |
Comments suppressed due to low confidence (1)
src/pages/apps/components/AppsAccordionListGroup.tsx:29
- [nitpick] Prop
member_listuses snake_case; consider renaming tomemberListto match camelCase conventions used elsewhere.
member_list: any[];
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
This change: