diff --git a/frontend/src/views/apps/CityMarktApp.vue b/frontend/src/views/apps/CityMarktApp.vue index 2550195..c2fac3d 100644 --- a/frontend/src/views/apps/CityMarktApp.vue +++ b/frontend/src/views/apps/CityMarktApp.vue @@ -136,6 +136,7 @@ const offerAmount = ref('') const offerPanelOpen = ref(false) const offerSubmitting = ref(false) const feedback = ref('') +const pagesSharePendingId = ref(null) const sellStep = ref(1) const submitting = ref(false) const selectedPhotoIds = ref([]) @@ -359,9 +360,12 @@ function setFeedback(key: string): void { }, 2600) } -async function shareToLocalPages(): Promise { - if (!selectedListing.value) return - const response = await pages.shareCityMarkt(selectedListing.value.id) +async function shareToLocalPages(listingId?: string): Promise { + const id = listingId ?? selectedListing.value?.id + if (!id || pagesSharePendingId.value) return + pagesSharePendingId.value = id + const response = await pages.shareCityMarkt(id) + pagesSharePendingId.value = null setFeedback( response.success ? 'Apps.localPages.cityMarktShared' @@ -1028,6 +1032,13 @@ onMounted(async () => { {{ label('status', item.status) }} @@ -1131,7 +1142,8 @@ onMounted(async () => { " class="citymarkt__pages-share" type="button" - @click="shareToLocalPages" + :disabled="pagesSharePendingId !== null" + @click="shareToLocalPages()" > {{ phone.t('Apps.localPages.cityMarktShare') }} { min-height: 76px; padding: 8px !important; } +.citymarkt-profile-listing > .citymarkt-profile-listing__share { + min-height: 36px; + padding: 8px 10px !important; + border-top: 1px solid #ffc92826; + justify-content: center; + color: var(--yellow); + font-size: 11px; + font-weight: 800; +} +.citymarkt-profile-listing__share:disabled { opacity: .45 } .citymarkt-profile-listing > button > span { width: 60px !important; height: 60px !important;