From 021acb9cf74b99849cc49b5acfcf3e4f30be2e53 Mon Sep 17 00:00:00 2001 From: Twyco Date: Sat, 18 Jul 2026 20:00:37 +0200 Subject: [PATCH] Add styled ticket user dropdowns --- .../projects/UserSelectDropdown.vue | 142 ++++++++++++++ resources/js/pages/projects/Ticket.vue | 183 +++--------------- resources/js/types/index.ts | 1 + resources/js/types/user-select-dropdown.ts | 16 ++ 4 files changed, 181 insertions(+), 161 deletions(-) create mode 100644 resources/js/components/projects/UserSelectDropdown.vue create mode 100644 resources/js/types/user-select-dropdown.ts diff --git a/resources/js/components/projects/UserSelectDropdown.vue b/resources/js/components/projects/UserSelectDropdown.vue new file mode 100644 index 0000000..79d7d8d --- /dev/null +++ b/resources/js/components/projects/UserSelectDropdown.vue @@ -0,0 +1,142 @@ + + + diff --git a/resources/js/pages/projects/Ticket.vue b/resources/js/pages/projects/Ticket.vue index 4d3010c..f18333a 100644 --- a/resources/js/pages/projects/Ticket.vue +++ b/resources/js/pages/projects/Ticket.vue @@ -25,8 +25,8 @@ import AcceptanceCriteriaEditor from '@/components/projects/AcceptanceCriteriaEd import InlineSaveStatus from '@/components/projects/InlineSaveStatus.vue'; import InlineTextEditor from '@/components/projects/InlineTextEditor.vue'; import ProjectTabs from '@/components/projects/ProjectTabs.vue'; +import UserSelectDropdown from '@/components/projects/UserSelectDropdown.vue'; import TicketTreeList from '@/components/TicketTreeList.vue'; -import UserAvatar from '@/components/ui/avatar/UserAvatar.vue'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; @@ -185,16 +185,6 @@ const currentTicketPriority = computed( ticketPriority.id === Number(form.ticket_priority_id), ) ?? props.ticket.ticket_priority, ); -const currentAssignee = computed( - () => - props.users.find((user) => user.id === Number(form.assignee_user_id)) ?? - null, -); -const currentAuthor = computed( - () => - props.users.find((user) => user.id === Number(form.author_user_id)) ?? - null, -); const currentParentTicketOption = computed( () => props.parentTicketOptions.find( @@ -853,57 +843,16 @@ const formatDateTime = (value: string): string => { >Assignee
- - -
- - {{ - currentAssignee?.name ?? 'Unassigned' - }} -
+ /> { >Author
- - -
- - {{ - currentAuthor?.name ?? 'No author' - }} -
+ /> { " class="min-w-0" > - - -

- {{ - users.find( - (user) => - user.id === - Number( - form.field_values[index] - .value_user_id, - ), - )?.name ?? 'Unassigned' - }} -

+ />