import { computed } from 'vue';
import { twMerge } from 'tailwind-merge';
+import BillableIcon from '@/Components/Common/Icons/BillableIcon.vue';
const active = defineModel({ default: false });
const emit = defineEmits(['changed']);
function toggleBillable() {
@@ -19,7 +20,7 @@ const props = withDefaults(
const iconColorClasses = computed(() => {
if (active.value) {
- return 'text-accent-200/80 focus:text-accent-200 hover:text-accent-200';
+ return 'text-accent-300 focus:text-accent-200 hover:text-accent-200';
} else {
return 'text-icon-default focus:text-icon-active hover:text-icon-active';
}
@@ -49,18 +50,7 @@ const iconSizeWrapperClasses =
'flex-shrink-0 ring-0 focus:outline-none focus:ring-0 transition focus:bg-card-background-separator hover:bg-card-background-separator rounded-full flex items-center justify-center'
)
">
-
+
diff --git a/resources/js/Components/Common/GroupedItemsCountButton.vue b/resources/js/Components/Common/GroupedItemsCountButton.vue
new file mode 100644
index 00000000..1a8d66e9
--- /dev/null
+++ b/resources/js/Components/Common/GroupedItemsCountButton.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/Common/Icons/BillableIcon.vue b/resources/js/Components/Common/Icons/BillableIcon.vue
new file mode 100644
index 00000000..e2a32170
--- /dev/null
+++ b/resources/js/Components/Common/Icons/BillableIcon.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/resources/js/Components/Common/Member/MemberCombobox.vue b/resources/js/Components/Common/Member/MemberCombobox.vue
index 83714877..8a40ed54 100644
--- a/resources/js/Components/Common/Member/MemberCombobox.vue
+++ b/resources/js/Components/Common/Member/MemberCombobox.vue
@@ -37,7 +37,7 @@ const filteredMembers = computed(() => {
.toLowerCase()
.includes(searchValue.value?.toLowerCase()?.trim() || '') &&
!props.hiddenMembers.some(
- (hiddenMember) => hiddenMember.user_id === member.user_id
+ (hiddenMember) => hiddenMember.id === member.id
) &&
member.is_placeholder === false
);
@@ -54,7 +54,7 @@ onMounted(() => {
function resetHighlightedItem() {
if (filteredMembers.value.length > 0) {
- highlightedItemId.value = filteredMembers.value[0].user_id;
+ highlightedItemId.value = filteredMembers.value[0].id;
}
}
@@ -65,10 +65,10 @@ function updateSearchValue(event: Event) {
const highlightedClientId = highlightedItemId.value;
if (highlightedClientId) {
const highlightedClient = members.value.find(
- (member) => member.user_id === highlightedClientId
+ (member) => member.id === highlightedClientId
);
if (highlightedClient) {
- model.value = highlightedClient.user_id;
+ model.value = highlightedClient.id;
}
}
} else {
@@ -94,10 +94,10 @@ function moveHighlightUp() {
);
if (currentHightlightedIndex === 0) {
highlightedItemId.value =
- filteredMembers.value[filteredMembers.value.length - 1].user_id;
+ filteredMembers.value[filteredMembers.value.length - 1].id;
} else {
highlightedItemId.value =
- filteredMembers.value[currentHightlightedIndex - 1].user_id;
+ filteredMembers.value[currentHightlightedIndex - 1].id;
}
}
}
@@ -108,10 +108,10 @@ function moveHighlightDown() {
highlightedItem.value
);
if (currentHightlightedIndex === filteredMembers.value.length - 1) {
- highlightedItemId.value = filteredMembers.value[0].user_id;
+ highlightedItemId.value = filteredMembers.value[0].id;
} else {
highlightedItemId.value =
- filteredMembers.value[currentHightlightedIndex + 1].user_id;
+ filteredMembers.value[currentHightlightedIndex + 1].id;
}
}
}
@@ -119,14 +119,13 @@ function moveHighlightDown() {
const highlightedItemId = ref
(null);
const highlightedItem = computed(() => {
return members.value.find(
- (member) => member.user_id === highlightedItemId.value
+ (member) => member.id === highlightedItemId.value
);
});
const currentValue = computed(() => {
if (model.value) {
- return members.value.find((member) => member.user_id === model.value)
- ?.name;
+ return members.value.find((member) => member.id === model.value)?.name;
}
return searchValue.value;
});
@@ -186,18 +185,18 @@ function onUnfocus() {