@designcrowd/fe-shared-lib 1.2.2-ml-jj-5 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/public/css/tailwind-brandCrowd.css +0 -26
- package/public/css/tailwind-brandPage.css +0 -22
- package/public/css/tailwind-crazyDomains.css +0 -26
- package/public/css/tailwind-designCom.css +0 -26
- package/public/css/tailwind-designCrowd.css +0 -26
- package/src/atoms/components/Price/Price.vue +1 -1
- package/src/bundles/bundled-translations.de-DE.json +2 -49
- package/src/bundles/bundled-translations.es-ES.json +2 -49
- package/src/bundles/bundled-translations.fr-FR.json +2 -49
- package/src/bundles/bundled-translations.json +2 -49
- package/src/bundles/bundled-translations.pt-PT.json +2 -49
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageCard.vue +10 -14
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.stories.js +0 -23
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.vue +21 -50
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-modal.de-DE.json +5 -0
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-modal.es-ES.json +5 -0
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-modal.fr-FR.json +5 -0
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-modal.json +5 -0
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-modal.pt-PT.json +5 -0
- package/src/experiences/components/SellDomainNameList/SellDomainNameList.vue +7 -15
- package/src/experiences/components/SellDomainNameListModal/SellDomainNameListModal.vue +8 -12
- package/src/experiences/components/SellDomainNameModalApplication/SellDomainNameModalApplication.vue +9 -13
- package/src/experiences/components/SellDomainNameSearch/SellDomainNameSearch.vue +13 -18
- package/src/experiences/components/SellDomainNameSearchResult/SellDomainNameListSearchResult.vue +5 -16
- package/src/experiences/components/SellDomainNameWidget/SellDomainNameWidget.vue +12 -15
- package/dist/css/tailwind-brandCrowd.css +0 -2419
- package/dist/css/tailwind-brandPage.css +0 -2107
- package/dist/css/tailwind-crazyDomains.css +0 -2419
- package/dist/css/tailwind-designCom.css +0 -2419
- package/dist/css/tailwind-designCrowd.css +0 -2419
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.de-DE.json +0 -22
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.es-ES.json +0 -22
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.fr-FR.json +0 -22
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.json +0 -22
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-PT.json +0 -22
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.de-DE.json +0 -8
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.es-ES.json +0 -8
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.fr-FR.json +0 -8
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.json +0 -8
- package/src/experiences/components/SellDomainNameList/i18n/sell-domain-name-list.pt-PT.json +0 -8
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.de-DE.json +0 -6
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.es-ES.json +0 -6
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.fr-FR.json +0 -6
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.json +0 -6
- package/src/experiences/components/SellDomainNameListModal/i18n/sell-domain-name-list-modal.pt-PT.json +0 -6
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.de-DE.json +0 -6
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.es-ES.json +0 -6
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.fr-FR.json +0 -6
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.json +0 -6
- package/src/experiences/components/SellDomainNameModalApplication/i18n/sell-domain-name-modal-application.pt-PT.json +0 -6
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.de-DE.json +0 -8
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.es-ES.json +0 -8
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.fr-FR.json +0 -8
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.json +0 -8
- package/src/experiences/components/SellDomainNameSearch/i18n/sell-domain-name-search.pt-PT.json +0 -8
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.de-DE.json +0 -6
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.es-ES.json +0 -6
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.fr-FR.json +0 -6
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.json +0 -6
- package/src/experiences/components/SellDomainNameSearchResult/i18n/sell-domain-name-list-search-result.pt-PT.json +0 -6
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.de-DE.json +0 -8
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.es-ES.json +0 -8
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.fr-FR.json +0 -8
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.json +0 -8
- package/src/experiences/components/SellDomainNameWidget/i18n/sell-domain-name-widget.pt-PT.json +0 -8
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import Card from './PublishBrandPageCard.vue';
|
|
2
2
|
import PublishBrandPageModal from './PublishBrandPageModal.vue';
|
|
3
3
|
import { domains } from './__fixtures__/data';
|
|
4
|
-
import { setLocaleAsync } from '../../../useSharedLibTranslate';
|
|
5
4
|
|
|
6
5
|
export default {
|
|
7
6
|
title: 'Components/PublishBrandPageModal',
|
|
8
7
|
component: PublishBrandPageModal,
|
|
9
8
|
};
|
|
10
9
|
|
|
11
|
-
const locale = 'en-US';
|
|
12
|
-
|
|
13
|
-
const loadTranslationAsync = async () => {
|
|
14
|
-
await setLocaleAsync(locale);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
10
|
export const NotPublishedWithPurchasedDomains = () => {
|
|
18
11
|
return {
|
|
19
12
|
components: {
|
|
@@ -22,7 +15,6 @@ export const NotPublishedWithPurchasedDomains = () => {
|
|
|
22
15
|
data() {
|
|
23
16
|
return {
|
|
24
17
|
domains,
|
|
25
|
-
show: false,
|
|
26
18
|
};
|
|
27
19
|
},
|
|
28
20
|
methods: {},
|
|
@@ -42,8 +34,6 @@ export const NotPublishedWithPurchasedDomains = () => {
|
|
|
42
34
|
};
|
|
43
35
|
};
|
|
44
36
|
|
|
45
|
-
NotPublishedWithPurchasedDomains.loaders = [loadTranslationAsync];
|
|
46
|
-
|
|
47
37
|
export const PublishWithSelectedDomain = () => {
|
|
48
38
|
return {
|
|
49
39
|
components: {
|
|
@@ -85,8 +75,6 @@ export const PublishWithSelectedDomain = () => {
|
|
|
85
75
|
};
|
|
86
76
|
};
|
|
87
77
|
|
|
88
|
-
PublishWithSelectedDomain.loaders = [loadTranslationAsync];
|
|
89
|
-
|
|
90
78
|
export const SetSlug = () => {
|
|
91
79
|
return {
|
|
92
80
|
components: {
|
|
@@ -113,9 +101,6 @@ export const SetSlug = () => {
|
|
|
113
101
|
`,
|
|
114
102
|
};
|
|
115
103
|
};
|
|
116
|
-
|
|
117
|
-
SetSlug.loaders = [loadTranslationAsync];
|
|
118
|
-
|
|
119
104
|
export const Published = () => {
|
|
120
105
|
return {
|
|
121
106
|
components: {
|
|
@@ -141,9 +126,6 @@ export const Published = () => {
|
|
|
141
126
|
`,
|
|
142
127
|
};
|
|
143
128
|
};
|
|
144
|
-
|
|
145
|
-
Published.loaders = [loadTranslationAsync];
|
|
146
|
-
|
|
147
129
|
export const PublishedNoDomains = () => {
|
|
148
130
|
return {
|
|
149
131
|
components: {
|
|
@@ -171,9 +153,6 @@ export const PublishedNoDomains = () => {
|
|
|
171
153
|
`,
|
|
172
154
|
};
|
|
173
155
|
};
|
|
174
|
-
|
|
175
|
-
PublishedNoDomains.loaders = [loadTranslationAsync];
|
|
176
|
-
|
|
177
156
|
export const Free = () => {
|
|
178
157
|
return {
|
|
179
158
|
components: {
|
|
@@ -222,5 +201,3 @@ export const Free = () => {
|
|
|
222
201
|
`,
|
|
223
202
|
};
|
|
224
203
|
};
|
|
225
|
-
|
|
226
|
-
Free.loaders = [loadTranslationAsync];
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
>
|
|
12
12
|
<template #header>
|
|
13
13
|
<div v-if="isNotPublished || isSlugEditMode" class="tw-text-center tw-font-bold tw-mb-8 tw-mt-8 tw-text-4xl">
|
|
14
|
-
<span>{{
|
|
14
|
+
<span>Set the URL for your {{ brandPageDisplayName }}</span>
|
|
15
15
|
</div>
|
|
16
16
|
<div v-if="isPublished && !isSlugEditMode" class="tw-text-center tw-font-bold tw-mb-8 tw-mt-8">
|
|
17
|
-
<p class="tw-font-bold tw-text-black tw-mb-2 tw-text-4xl">
|
|
17
|
+
<p class="tw-font-bold tw-text-black tw-mb-2 tw-text-4xl">Site published!</p>
|
|
18
18
|
<p v-if="hasPurchasedDomains || isCustomDomainActive" class="tw-text-grayscale-600 tw-mb-8">
|
|
19
|
-
{{
|
|
19
|
+
Your {{ brandPageDisplayName }} is live! Start using your link:
|
|
20
20
|
</p>
|
|
21
21
|
<p v-else class="tw-text-grayscale-600 tw-mb-8 tw-font-normal">
|
|
22
|
-
{{
|
|
22
|
+
{{ headerSubtitle }}
|
|
23
23
|
</p>
|
|
24
24
|
</div>
|
|
25
25
|
</template>
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
for="domain-type"
|
|
45
45
|
class="tw-font-sans tw-w-full tw-text-grayscale-600 tw-text-sm tw-cursor-pointer tw-ml-2"
|
|
46
46
|
>
|
|
47
|
-
<span class="tw-inline-block tw-rounded-full">
|
|
47
|
+
<span class="tw-inline-block tw-rounded-full">Free domain</span>
|
|
48
48
|
</label>
|
|
49
49
|
</div>
|
|
50
50
|
<div v-if="isNotPublished || isSlugEditMode" class="tw-mt-4">
|
|
51
51
|
<PublishBrandPageCard
|
|
52
52
|
v-if="!hasPurchasedDomains"
|
|
53
53
|
:img-url="iconUrl"
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
title="Free Address"
|
|
55
|
+
description="Choose a free address to publish now. You can always edit the URL later"
|
|
56
56
|
:is-design-com="isDesignCom"
|
|
57
57
|
:has-search-button="false"
|
|
58
58
|
>
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
80
|
<Button
|
|
81
|
-
|
|
81
|
+
label="Publish"
|
|
82
82
|
:disabled="isPublishingDisabled"
|
|
83
83
|
class="tw-flex tw-items-center tw-justify-center md:tw-ml-2 tw-mt-2 md:tw-mt-0 tw-font-sans tw-font-bold tw-transition-colors tw-duration-300 tw-text-sm tw-w-full tw-rounded tw-cursor-pointer tw-w-full md:tw-w-24"
|
|
84
84
|
data-test-brand-page-publish-button
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
for="domain-type"
|
|
129
129
|
class="tw-font-sans tw-w-full tw-text-grayscale-600 tw-text-sm tw-cursor-pointer tw-ml-2"
|
|
130
130
|
>
|
|
131
|
-
<span class="tw-inline-block tw-rounded-full">
|
|
131
|
+
<span class="tw-inline-block tw-rounded-full">Purchased domain</span>
|
|
132
132
|
</label>
|
|
133
133
|
</div>
|
|
134
134
|
<div class="tw-mt-4 domain-dropdown">
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
:class="{
|
|
144
144
|
'tw-text-grayscale-600 tw-font-normal': !selectedCustomDomain,
|
|
145
145
|
}"
|
|
146
|
-
:title="(selectedCustomDomain && selectedCustomDomain.domainName) ||
|
|
146
|
+
:title="(selectedCustomDomain && selectedCustomDomain.domainName) || 'Select domain name'"
|
|
147
147
|
>
|
|
148
148
|
<DropdownItem
|
|
149
149
|
v-for="purchasedDomain of domains"
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
:style="isMobile ? 'padding-left: 1.5rem; padding-right: 1.5rem;' : ''"
|
|
168
168
|
>
|
|
169
169
|
<Button
|
|
170
|
-
:label="isSlugEditMode ?
|
|
170
|
+
:label="isSlugEditMode ? 'Set URL' : 'Publish'"
|
|
171
171
|
:variant="isDesignCom ? 'primary' : 'primary-with-icon'"
|
|
172
172
|
icon="chevron-right-wide"
|
|
173
173
|
:disabled="isPublishingDisabled"
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
@on-click="onPublish"
|
|
178
178
|
/>
|
|
179
179
|
<Button
|
|
180
|
-
|
|
180
|
+
label="No thanks, maybe later"
|
|
181
181
|
variant="no-border"
|
|
182
182
|
size="large"
|
|
183
183
|
class="tw-my-4"
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
/>
|
|
201
201
|
</div>
|
|
202
202
|
<Button
|
|
203
|
-
|
|
203
|
+
label="VIEW MORE DOMAINS"
|
|
204
204
|
variant="no-border"
|
|
205
205
|
size="small-medium"
|
|
206
206
|
class="tw-text-center"
|
|
@@ -211,13 +211,11 @@
|
|
|
211
211
|
<TextCopyField
|
|
212
212
|
button-variant="secondary"
|
|
213
213
|
:text="brandPageUrl"
|
|
214
|
-
:default-copy-button-text="copyLabel"
|
|
215
|
-
:copied-button-text="copySuccessLabel"
|
|
216
214
|
data-test-brand-page-copy-input
|
|
217
215
|
@on-click="onCopyUrlClick"
|
|
218
216
|
/>
|
|
219
217
|
<Button
|
|
220
|
-
:label="
|
|
218
|
+
:label="`View ${brandPageDisplayName}`"
|
|
221
219
|
:variant="isDesignCom ? 'primary' : 'primary-with-icon'"
|
|
222
220
|
icon="chevron-right-wide"
|
|
223
221
|
size="medium"
|
|
@@ -248,6 +246,7 @@
|
|
|
248
246
|
</div>
|
|
249
247
|
</template>
|
|
250
248
|
<script>
|
|
249
|
+
import { computed } from 'vue';
|
|
251
250
|
import Modal from '../../../atoms/components/Modal/Modal.vue';
|
|
252
251
|
import PublishBrandPageCard from './PublishBrandPageCard.vue';
|
|
253
252
|
import TextInput from '../../../atoms/components/TextInput/TextInput.vue';
|
|
@@ -263,6 +262,8 @@ import Events, { sitePublishedModal } from '../../constants/event-constants';
|
|
|
263
262
|
import mediaQueryMixin from '../../mixins/mediaQueryMixin';
|
|
264
263
|
import { tr } from '../../../useSharedLibTranslate';
|
|
265
264
|
|
|
265
|
+
const headerSubtitle = 'Buy matching domain name for your brand';
|
|
266
|
+
|
|
266
267
|
const DOMAIN_TYPES = {
|
|
267
268
|
slug: 'slug',
|
|
268
269
|
purchased: 'purchased',
|
|
@@ -401,7 +402,7 @@ export default {
|
|
|
401
402
|
brandPageType: {
|
|
402
403
|
type: String,
|
|
403
404
|
required: true,
|
|
404
|
-
default:
|
|
405
|
+
default: false,
|
|
405
406
|
},
|
|
406
407
|
},
|
|
407
408
|
emits: [
|
|
@@ -417,21 +418,7 @@ export default {
|
|
|
417
418
|
setup() {
|
|
418
419
|
return {
|
|
419
420
|
tr,
|
|
420
|
-
|
|
421
|
-
freePublishCardTitleLabel: tr('publishBrandPageModal.freePublishCardTitleLabel'),
|
|
422
|
-
freePublishCardDescriptionLabel: tr('publishBrandPageModal.freePublishCardDescriptionLabel'),
|
|
423
|
-
slugInputPlaceholderYourNameLabel: tr('publishBrandPageModal.slugInputPlaceholderYourNameLabel'),
|
|
424
|
-
slugInputPlaceholderYourBusinessNameLabel: tr('publishBrandPageModal.slugInputPlaceholderYourBusinessNameLabel'),
|
|
425
|
-
freeDomainLabel: tr('publishBrandPageModal.freeDomainLabel'),
|
|
426
|
-
purchasedDomainLabel: tr('publishBrandPageModal.purchasedDomainLabel'),
|
|
427
|
-
setUrlLabel: tr('publishBrandPageModal.setUrlLabel'),
|
|
428
|
-
publishLabel: tr('publishBrandPageModal.publishLabel'),
|
|
429
|
-
viewMoreDomainLabel: tr('publishBrandPageModal.viewMoreDomainLabel'),
|
|
430
|
-
copyLabel: tr('publishBrandPageModal.copyLabel'),
|
|
431
|
-
copySuccessLabel: tr('publishBrandPageModal.copySuccessLabel'),
|
|
432
|
-
hasAlreadyPurchasedDomainCloseButtonLabel: tr('publishBrandPageModal.hasAlreadyPurchasedDomainCloseButtonLabel'),
|
|
433
|
-
publishedSuccessDescriptionLabel: tr('publishBrandPageModal.publishedSuccessDescriptionLabel'),
|
|
434
|
-
selectDomainDropdownPlaceholder: tr('publishBrandPageModal.selectDomainDropdownPlaceholder'),
|
|
421
|
+
testMessage: computed(() => tr('publishModal.test')),
|
|
435
422
|
};
|
|
436
423
|
},
|
|
437
424
|
data() {
|
|
@@ -440,6 +427,7 @@ export default {
|
|
|
440
427
|
domainTypeValue: this.radioValue,
|
|
441
428
|
internalSlug: this.brandPageSlug,
|
|
442
429
|
selectedCustomDomain: this.customDomain,
|
|
430
|
+
headerSubtitle,
|
|
443
431
|
userCurrency: undefined,
|
|
444
432
|
isModalVisible: false,
|
|
445
433
|
isLoading: false,
|
|
@@ -450,21 +438,6 @@ export default {
|
|
|
450
438
|
};
|
|
451
439
|
},
|
|
452
440
|
computed: {
|
|
453
|
-
firstTimePublishHeaderLabel() {
|
|
454
|
-
return this.tr('publishBrandPageModal.firstTimePublishHeaderLabel', {
|
|
455
|
-
brandPageDisplayName: this.brandPageDisplayName,
|
|
456
|
-
});
|
|
457
|
-
},
|
|
458
|
-
publishSuccessLabel() {
|
|
459
|
-
return this.tr('publishBrandPageModal.publishSuccessLabel', {
|
|
460
|
-
brandPageDisplayName: this.brandPageDisplayName,
|
|
461
|
-
});
|
|
462
|
-
},
|
|
463
|
-
viewMyWebsiteLabel() {
|
|
464
|
-
return this.tr('publishBrandPageModal.viewMyWebsiteLabel', {
|
|
465
|
-
brandPageDisplayName: this.brandPageDisplayName,
|
|
466
|
-
});
|
|
467
|
-
},
|
|
468
441
|
allowPublish() {
|
|
469
442
|
if (this.domainTypeValue === DOMAIN_TYPES.slug) {
|
|
470
443
|
return this.internalSlug && !this.slugValidationError;
|
|
@@ -493,9 +466,7 @@ export default {
|
|
|
493
466
|
return !this.allowPublish || this.isPublishing;
|
|
494
467
|
},
|
|
495
468
|
getPlaceHolder() {
|
|
496
|
-
return this.brandPageType === 'brandContact'
|
|
497
|
-
? this.slugInputPlaceholderYourNameLabel
|
|
498
|
-
: this.slugInputPlaceholderYourBusinessNameLabel;
|
|
469
|
+
return this.brandPageType === 'brandContact' ? 'your-name' : 'your-business-name';
|
|
499
470
|
},
|
|
500
471
|
},
|
|
501
472
|
watch: {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
{{ item.domainName }}
|
|
23
23
|
</div>
|
|
24
24
|
<div v-if="item.costPrice" class="tw-text-xs tw-text-grayscale-600 tw-flex tw-items-center">
|
|
25
|
-
<span class="tw-mr-2">
|
|
25
|
+
<span class="tw-mr-2"> Cost Price: </span>
|
|
26
26
|
<Price
|
|
27
27
|
class="tw-font-bold"
|
|
28
28
|
:amount="getCostPrice(item)"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
:currency="currency"
|
|
31
31
|
fraction="2"
|
|
32
32
|
:show-abbreviation="false"
|
|
33
|
-
|
|
33
|
+
suffix="/yr"
|
|
34
34
|
/>
|
|
35
35
|
</div>
|
|
36
36
|
<div v-if="!isFree(item) || item.costPrice" class="tw-px-0 tw-mt-4 sm:tw-px-4 sm:tw-mt-0">
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
:currency="currency"
|
|
42
42
|
fraction="2"
|
|
43
43
|
:show-abbreviation="false"
|
|
44
|
-
|
|
44
|
+
suffix="/yr"
|
|
45
45
|
/>
|
|
46
46
|
</div>
|
|
47
47
|
</div>
|
|
@@ -63,10 +63,10 @@
|
|
|
63
63
|
</div>
|
|
64
64
|
</template>
|
|
65
65
|
<script>
|
|
66
|
-
import Button from '
|
|
67
|
-
import Price from '
|
|
66
|
+
import Button from '../../../../src/atoms/components/Button/Button.vue';
|
|
67
|
+
import Price from '../../../../src/atoms/components/Price/Price.vue';
|
|
68
|
+
|
|
68
69
|
import Events from '../../constants/event-constants';
|
|
69
|
-
import { tr } from '../../../useSharedLibTranslate';
|
|
70
70
|
|
|
71
71
|
export default {
|
|
72
72
|
components: {
|
|
@@ -108,14 +108,6 @@ export default {
|
|
|
108
108
|
},
|
|
109
109
|
},
|
|
110
110
|
emits: ['load-more-domains'],
|
|
111
|
-
setup() {
|
|
112
|
-
return {
|
|
113
|
-
freeDomainButtonLabel: tr('sellDomainNameList.freeDomainButtonLabel'),
|
|
114
|
-
buyNowButtonLabel: tr('sellDomainNameList.buyNowButtonLabel'),
|
|
115
|
-
pricePerYearLabel: tr('sellDomainNameList.pricePerYearLabel'),
|
|
116
|
-
costPriceLabel: tr('sellDomainNameList.costPriceLabel'),
|
|
117
|
-
};
|
|
118
|
-
},
|
|
119
111
|
methods: {
|
|
120
112
|
onBuyNowClick(domain) {
|
|
121
113
|
const request = domain;
|
|
@@ -142,7 +134,7 @@ export default {
|
|
|
142
134
|
return parseFloat(domain.price) === 0;
|
|
143
135
|
},
|
|
144
136
|
getPurchaseLabel(domain) {
|
|
145
|
-
return this.isFree(domain) ?
|
|
137
|
+
return this.isFree(domain) ? 'Free Domain' : 'Buy Now';
|
|
146
138
|
},
|
|
147
139
|
},
|
|
148
140
|
};
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
<SellDomainNameSearch
|
|
14
14
|
v-if="visible"
|
|
15
15
|
:is-design-com="isDesignCom"
|
|
16
|
-
:header-title="headerTitle
|
|
17
|
-
:header-subtitle="headerSubtitle
|
|
16
|
+
:header-title="headerTitle"
|
|
17
|
+
:header-subtitle="headerSubtitle"
|
|
18
18
|
:initial-search-term="modelValue"
|
|
19
19
|
@onSearch="onSearch"
|
|
20
20
|
@onSearchTextInputChange="onSearchTextInputChange"
|
|
@@ -34,12 +34,14 @@
|
|
|
34
34
|
</Modal>
|
|
35
35
|
</template>
|
|
36
36
|
<script>
|
|
37
|
-
import Modal from '
|
|
38
|
-
import { tr } from '../../../useSharedLibTranslate';
|
|
37
|
+
import Modal from '../../../../src/atoms/components/Modal/Modal.vue';
|
|
39
38
|
|
|
40
39
|
import SellDomainNameSearch from '../SellDomainNameSearch/SellDomainNameSearch.vue';
|
|
41
40
|
import SellDomainNameSearchResult from '../SellDomainNameSearchResult/SellDomainNameListSearchResult.vue';
|
|
42
41
|
|
|
42
|
+
const headerSubtitle = 'Buy matching domain name for your brand';
|
|
43
|
+
const headerTitle = 'Search a domain name';
|
|
44
|
+
|
|
43
45
|
export default {
|
|
44
46
|
components: {
|
|
45
47
|
Modal,
|
|
@@ -58,11 +60,11 @@ export default {
|
|
|
58
60
|
},
|
|
59
61
|
headerSubtitle: {
|
|
60
62
|
type: String,
|
|
61
|
-
default:
|
|
63
|
+
default: () => headerSubtitle,
|
|
62
64
|
},
|
|
63
65
|
headerTitle: {
|
|
64
66
|
type: String,
|
|
65
|
-
default:
|
|
67
|
+
default: () => headerTitle,
|
|
66
68
|
},
|
|
67
69
|
isBusy: {
|
|
68
70
|
type: Boolean,
|
|
@@ -92,12 +94,6 @@ export default {
|
|
|
92
94
|
},
|
|
93
95
|
},
|
|
94
96
|
emits: ['close-modal', 'input', 'search'],
|
|
95
|
-
setup() {
|
|
96
|
-
return {
|
|
97
|
-
domainSearchHeaderTitle: tr('sellDomainNameListModal.domainSearchHeaderTitle'),
|
|
98
|
-
domainSearchHeaderSubtitle: tr('sellDomainNameListModal.domainSearchHeaderSubtitle'),
|
|
99
|
-
};
|
|
100
|
-
},
|
|
101
97
|
methods: {
|
|
102
98
|
onSearch() {
|
|
103
99
|
this.$emit('search');
|
package/src/experiences/components/SellDomainNameModalApplication/SellDomainNameModalApplication.vue
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<template v-if="
|
|
2
|
+
<template v-if="!!this.$slots['header']">
|
|
3
3
|
<Modal
|
|
4
4
|
classes="sell-domain-name-list-modal--modal tw-text-black"
|
|
5
5
|
close-on-esc
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
<SellDomainNameSearch
|
|
50
50
|
v-if="visible"
|
|
51
51
|
:is-design-com="isDesignCom"
|
|
52
|
-
:header-title="headerTitle
|
|
53
|
-
:header-subtitle="headerSubtitle
|
|
52
|
+
:header-title="headerTitle"
|
|
53
|
+
:header-subtitle="headerSubtitle"
|
|
54
54
|
:initial-search-term="initialSearchTerm"
|
|
55
55
|
@onSearch="onSearchDomainName"
|
|
56
56
|
@onSearchTextInputChange="onSearchTextInputChange"
|
|
@@ -71,12 +71,14 @@
|
|
|
71
71
|
</template>
|
|
72
72
|
</template>
|
|
73
73
|
<script>
|
|
74
|
-
import Modal from '
|
|
74
|
+
import Modal from '../../../../src/atoms/components/Modal/Modal.vue';
|
|
75
75
|
import brandCrowdApiClient from '../../clients/brand-crowd-api.client';
|
|
76
76
|
import SellDomainNameSearch from '../SellDomainNameSearch/SellDomainNameSearch.vue';
|
|
77
77
|
import SellDomainNameSearchResult from '../SellDomainNameSearchResult/SellDomainNameListSearchResult.vue';
|
|
78
78
|
import Events from '../../constants/event-constants';
|
|
79
|
-
|
|
79
|
+
|
|
80
|
+
const headerSubtitle = 'Buy matching domain name for your brand';
|
|
81
|
+
const headerTitle = 'Search a domain name';
|
|
80
82
|
|
|
81
83
|
export default {
|
|
82
84
|
components: {
|
|
@@ -87,11 +89,11 @@ export default {
|
|
|
87
89
|
props: {
|
|
88
90
|
headerSubtitle: {
|
|
89
91
|
type: String,
|
|
90
|
-
default:
|
|
92
|
+
default: () => headerSubtitle,
|
|
91
93
|
},
|
|
92
94
|
headerTitle: {
|
|
93
95
|
type: String,
|
|
94
|
-
default:
|
|
96
|
+
default: () => headerTitle,
|
|
95
97
|
},
|
|
96
98
|
modelValue: {
|
|
97
99
|
type: String,
|
|
@@ -120,12 +122,6 @@ export default {
|
|
|
120
122
|
default: undefined,
|
|
121
123
|
},
|
|
122
124
|
},
|
|
123
|
-
setup() {
|
|
124
|
-
return {
|
|
125
|
-
domainSearchHeaderTitle: tr('sellDomainNameModalApplication.domainSearchHeaderTitle'),
|
|
126
|
-
domainSearchHeaderSubtitle: tr('sellDomainNameModalApplication.domainSearchHeaderTitle'),
|
|
127
|
-
};
|
|
128
|
-
},
|
|
129
125
|
data: () => ({
|
|
130
126
|
domainNameItems: [],
|
|
131
127
|
userCurrency: {},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<Button
|
|
33
33
|
:classes="searchButtonClasses"
|
|
34
34
|
variant="primary"
|
|
35
|
-
|
|
35
|
+
label="Search"
|
|
36
36
|
:disabled="false"
|
|
37
37
|
@on-click="onSearchBarClick"
|
|
38
38
|
/>
|
|
@@ -41,10 +41,15 @@
|
|
|
41
41
|
</div>
|
|
42
42
|
</template>
|
|
43
43
|
<script>
|
|
44
|
-
import Button from '
|
|
45
|
-
import TextInput from '
|
|
46
|
-
|
|
47
|
-
import {
|
|
44
|
+
import Button from '../../../../src/atoms/components/Button/Button.vue';
|
|
45
|
+
import TextInput from '../../../../src/atoms/components/TextInput/TextInput.vue';
|
|
46
|
+
|
|
47
|
+
import {
|
|
48
|
+
sellDomainNameMinSearchTextLength,
|
|
49
|
+
sellDomainNameSearchBarLabel,
|
|
50
|
+
sellDomainNameSearchBarPlaceholder,
|
|
51
|
+
sellDomainNameSearchBarPreText,
|
|
52
|
+
} from '../../constants/sell-domain-name-constants';
|
|
48
53
|
|
|
49
54
|
export default {
|
|
50
55
|
components: {
|
|
@@ -74,24 +79,14 @@ export default {
|
|
|
74
79
|
type: Boolean,
|
|
75
80
|
required: false,
|
|
76
81
|
},
|
|
77
|
-
contentOverride: {
|
|
78
|
-
type: Object,
|
|
79
|
-
required: false,
|
|
80
|
-
default: null,
|
|
81
|
-
},
|
|
82
82
|
},
|
|
83
83
|
emits: ['onSearch', 'onSearchTextInputChange'],
|
|
84
|
-
setup() {
|
|
85
|
-
return {
|
|
86
|
-
searchButtonLabel: tr('sellDomainNameSearch.searchButtonLabel'),
|
|
87
|
-
searchBarLabel: tr('sellDomainNameSearch.searchBarLabel'),
|
|
88
|
-
searchBarPlaceholder: tr('sellDomainNameSearch.searchBarPlaceholder'),
|
|
89
|
-
searchBarPreText: tr('sellDomainNameSearch.searchBarPreText'),
|
|
90
|
-
};
|
|
91
|
-
},
|
|
92
84
|
data() {
|
|
93
85
|
return {
|
|
86
|
+
searchBarLabel: sellDomainNameSearchBarLabel,
|
|
87
|
+
searchBarPlaceholder: sellDomainNameSearchBarPlaceholder,
|
|
94
88
|
searchText: this.initialSearchTerm ?? '',
|
|
89
|
+
searchBarPreText: sellDomainNameSearchBarPreText,
|
|
95
90
|
};
|
|
96
91
|
},
|
|
97
92
|
computed: {
|
package/src/experiences/components/SellDomainNameSearchResult/SellDomainNameListSearchResult.vue
CHANGED
|
@@ -28,20 +28,20 @@
|
|
|
28
28
|
@on-buy-now-click="onBuyNowClick"
|
|
29
29
|
/>
|
|
30
30
|
<div v-else-if="shouldShowDomainNameNotFound" class="tw-flex tw-justify-center tw-text-center">
|
|
31
|
-
{{
|
|
31
|
+
Sorry, we couldn't find any domain for "{{ previousSearchText }}".
|
|
32
32
|
<br />
|
|
33
|
-
|
|
33
|
+
Try searching with another domain name.
|
|
34
34
|
</div>
|
|
35
35
|
<div v-else></div>
|
|
36
36
|
</div>
|
|
37
37
|
</template>
|
|
38
38
|
|
|
39
39
|
<script>
|
|
40
|
-
import Loader from '
|
|
41
|
-
import Picture from '
|
|
40
|
+
import Loader from '../../../../src/atoms/components/Loader/Loader.vue';
|
|
41
|
+
import Picture from '../../../../src/atoms/components/Picture/Picture.vue';
|
|
42
|
+
|
|
42
43
|
import SellDomainNameList from '../SellDomainNameList/SellDomainNameList.vue';
|
|
43
44
|
import Events from '../../constants/event-constants';
|
|
44
|
-
import { tr } from '../../../useSharedLibTranslate';
|
|
45
45
|
|
|
46
46
|
export default {
|
|
47
47
|
components: {
|
|
@@ -101,23 +101,12 @@ export default {
|
|
|
101
101
|
default: undefined,
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
|
-
setup() {
|
|
105
|
-
return {
|
|
106
|
-
tr,
|
|
107
|
-
searchAnotherDomainMessage: tr('sellDomainNameListSearchResult.searchAnotherDomainMessage'),
|
|
108
|
-
};
|
|
109
|
-
},
|
|
110
104
|
data() {
|
|
111
105
|
return {
|
|
112
106
|
domainNameItemsInView: undefined,
|
|
113
107
|
};
|
|
114
108
|
},
|
|
115
109
|
computed: {
|
|
116
|
-
domainSearchEmptyMessageWithUserDomainName() {
|
|
117
|
-
return tr('sellDomainNameListSearchResult.domainSearchEmptyMessage', {
|
|
118
|
-
domainNameSearchTerm: this.previousSearchText,
|
|
119
|
-
});
|
|
120
|
-
},
|
|
121
110
|
shouldShowDomainNameNotFound() {
|
|
122
111
|
return (
|
|
123
112
|
!this.isBusy &&
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
|
|
3
|
+
Buy matching domain name for your brand or connect your existing domain
|
|
4
4
|
<div class="tw-flex tw-flex-col md:tw-flex-row tw-mt-4 tw-mb-4">
|
|
5
5
|
<TextInput
|
|
6
6
|
v-model="searchText"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<Button
|
|
19
19
|
classes="tw-w-full tw-mt-2 md:tw-rounded-l-none md:tw-mt-0"
|
|
20
20
|
variant="primary"
|
|
21
|
-
|
|
21
|
+
label="Search"
|
|
22
22
|
:disabled="false"
|
|
23
23
|
@on-click="onSearchBarClick"
|
|
24
24
|
/>
|
|
@@ -31,18 +31,21 @@
|
|
|
31
31
|
:domain-name-items="domainNameItems"
|
|
32
32
|
:previous-search-text="previousSearchText"
|
|
33
33
|
:visible="isSearchDomainListModalVisible"
|
|
34
|
-
:search-button-label="searchButtonLabel"
|
|
35
34
|
@close-modal="onSellDomainNameListCloseModal"
|
|
36
35
|
@search="onSearchDomainName(true)"
|
|
37
36
|
/>
|
|
38
37
|
</div>
|
|
39
38
|
</template>
|
|
40
39
|
<script>
|
|
41
|
-
import
|
|
42
|
-
import
|
|
43
|
-
|
|
40
|
+
import Button from '../../../../src/atoms/components/Button/Button.vue';
|
|
41
|
+
import TextInput from '../../../../src/atoms/components/TextInput/TextInput.vue';
|
|
42
|
+
|
|
44
43
|
import SellDomainNameListModal from '../SellDomainNameListModal/SellDomainNameListModal.vue';
|
|
45
|
-
import {
|
|
44
|
+
import {
|
|
45
|
+
sellDomainNameMinSearchTextLength,
|
|
46
|
+
sellDomainNameSearchBarLabel,
|
|
47
|
+
sellDomainNameSearchBarPlaceholder,
|
|
48
|
+
} from '../../constants/sell-domain-name-constants';
|
|
46
49
|
import Events from '../../constants/event-constants';
|
|
47
50
|
import brandCrowdApiClient from '../../clients/brand-crowd-api.client';
|
|
48
51
|
|
|
@@ -73,19 +76,13 @@ export default {
|
|
|
73
76
|
default: false,
|
|
74
77
|
},
|
|
75
78
|
},
|
|
76
|
-
setup() {
|
|
77
|
-
return {
|
|
78
|
-
searchButtonLabel: tr('sellDomainNameWidget.searchButtonLabel'),
|
|
79
|
-
searchBarLabel: tr('sellDomainNameWidget.searchBarLabel'),
|
|
80
|
-
searchBarPlaceholder: tr('sellDomainNameWidget.searchBarPlaceholder'),
|
|
81
|
-
domainSearchOrConnectHeaderSubtitle: tr('sellDomainNameWidget.domainSearchOrConnectHeaderSubtitle'),
|
|
82
|
-
};
|
|
83
|
-
},
|
|
84
79
|
data: () => ({
|
|
85
80
|
domainNameItems: undefined,
|
|
86
81
|
userCurrency: undefined,
|
|
87
82
|
isBusy: false,
|
|
88
83
|
isSearchDomainListModalVisible: false,
|
|
84
|
+
searchBarLabel: sellDomainNameSearchBarLabel,
|
|
85
|
+
searchBarPlaceholder: sellDomainNameSearchBarPlaceholder,
|
|
89
86
|
searchText: '',
|
|
90
87
|
previousSearchText: '',
|
|
91
88
|
}),
|