diff --git a/src/components/admin/MemberSearchSelect.vue b/src/components/admin/MemberSearchSelect.vue index 50efd6f..c56b0ef 100644 --- a/src/components/admin/MemberSearchSelect.vue +++ b/src/components/admin/MemberSearchSelect.vue @@ -1,10 +1,11 @@ @@ -67,7 +71,7 @@ import { TransitionRoot, } from "@headlessui/vue"; import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid"; -import { TrashIcon } from "@heroicons/vue/24/outline"; +import { ArchiveBoxIcon, ExclamationTriangleIcon, TrashIcon, UserPlusIcon } from "@heroicons/vue/24/outline"; import { useMemberStore } from "@/stores/admin/club/member/member"; import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models"; import { useNewsletterStore } from "@/stores/admin/club/newsletter/newsletter"; @@ -93,6 +97,7 @@ export default defineComponent({ return { query: "" as String, members: [] as Array, + showMemberSelect: false as boolean, }; }, computed: { @@ -125,6 +130,17 @@ export default defineComponent({ .some((d) => (d.memberId ?? d.id) == m.id) ); }, + showRecipientsByMode() { + return (this.showMemberSelect ? this.selected : this.queried).sort((a, b) => { + const aHasConfig = a.sendNewsletter != null; + const bHasConfig = b.sendNewsletter != null; + if (aHasConfig === bHasConfig) return 0; + return aHasConfig ? -1 : 1; + }); + }, + countOfNoConfig() { + return this.showRecipientsByMode.filter((member) => member.sendNewsletter == null).length; + }, recipientsByQueryId: { get() { return this.activeNewsletterObj?.recipientsByQueryId ?? "def";