diff --git a/apps/web/src/components/ContextMenuOwnCollection.vue b/apps/web/src/components/ContextMenuOwnCollection.vue index 4e6be1390..9d1c34e96 100644 --- a/apps/web/src/components/ContextMenuOwnCollection.vue +++ b/apps/web/src/components/ContextMenuOwnCollection.vue @@ -140,14 +140,6 @@ let { publicationcode, selectedIssueIdsByIssuenumber } = defineProps<{ }>(); const emit = defineEmits<{ (e: "clear-selection"): void; - ( - e: "launch-modal", - options: { - contactMethod: string; - sellerId: number; - }, - ): void; - (e: "close"): void; }>(); const { t: $t } = useI18n(); diff --git a/apps/web/src/components/IssueList.vue b/apps/web/src/components/IssueList.vue index 58195e7cc..4602eb8c0 100644 --- a/apps/web/src/components/IssueList.vue +++ b/apps/web/src/components/IssueList.vue @@ -319,15 +319,23 @@ :publicationcode="publicationcode" :selected-issue-ids-by-issuenumber="copiesBySelectedIssuenumber" @clear-selection=" - contextmenuInstance.hide(); + contextmenuInstance!.hide(); selected = []; " @close=" contextMenuKey = `context-menu-${Math.random()}`; - contextmenuInstance.hide(); + contextmenuInstance!.hide(); " - @launch-modal=" - emit('launch-modal', { ...$event, selectedIssueIds: issueIds }) + v-on=" + contextMenuComponentName === 'context-menu-on-sale-by-others' + ? { + 'launch-modal': () => + emit( + 'launch-modal', + Object.assign({}, $event, { selectedIssueIds: issueIds }), + ), + } + : {} " /> @@ -367,7 +375,7 @@ const { customIssues?: issueWithPublicationcode[]; onSaleByOthers?: boolean; groupUserCopies?: boolean; - contextMenuComponentName?: string; + contextMenuComponentName?: "context-menu-on-sale-by-others"; readonly?: boolean; }>(); @@ -415,7 +423,13 @@ const filter = $ref({ missing: true, possessed: true, } as { missing: boolean; possessed: boolean }); -const contextmenuInstance = $ref(null as unknown | null); +const contextmenuInstance = $ref( + null as { + visible: boolean; + hide: (e?: MouseEvent) => void; + show: (e: MouseEvent) => void; + } | null, +); let issues = $shallowRef(null as issueWithPublicationCodeAndCopies[] | null); let userIssuesForPublication = $shallowRef( null as issueWithPublicationcode[] | null, @@ -519,12 +533,12 @@ const showContextMenuOnDoubleClickTouchScreen = (e: MouseEvent) => { if (clicks === 1) { timer = setTimeout(() => { clicks = 0; - contextmenuInstance.hide(e); + contextmenuInstance!.hide(e); }, doubleClickDelay); } else if (clicks === 2) { clearTimeout(timer!); clicks = 0; - contextmenuInstance.show(e); + contextmenuInstance!.show(e); } } }; @@ -542,7 +556,7 @@ const getPreselected = () => index <= preselectedIndexEnd, ); const updateSelected = () => { - if (!contextmenuInstance.visible) { + if (!contextmenuInstance?.visible) { selected = issues! .map(({ key }) => key || "") .filter( @@ -556,7 +570,7 @@ const updateSelected = () => { const deletePublicationIssues = async ( issuesToDelete: issueWithPublicationcode[], ) => { - contextmenuInstance.hide(); + contextmenuInstance!.hide(); if (!readonly) { await updateCollectionMultipleIssues({ publicationcode,