@designcrowd/fe-shared-lib 1.2.25 → 1.2.26-ast-upsell
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/dist/css/tailwind-brandCrowd.css +6 -0
- package/dist/css/tailwind-brandPage.css +6 -0
- package/dist/css/tailwind-crazyDomains.css +6 -0
- package/dist/css/tailwind-designCom.css +6 -0
- package/dist/css/tailwind-designCrowd.css +6 -0
- package/package.json +1 -1
- package/public/css/tailwind-brandCrowd.css +2414 -0
- package/public/css/tailwind-brandPage.css +2098 -0
- package/public/css/tailwind-crazyDomains.css +2414 -0
- package/public/css/tailwind-designCom.css +2414 -0
- package/public/css/tailwind-designCrowd.css +2414 -0
- package/src/atoms/components/Icon/Icon.stories.js +1 -0
- package/src/atoms/components/Icon/Icon.vue +2 -0
- package/src/atoms/components/Icon/icons/eye-open.vue +11 -0
- package/src/atoms/components/Modal/Modal.vue +6 -1
- package/src/bundles/bundled-translations.pt-BR.json +24 -1
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageCard.vue +2 -2
- package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.vue +42 -16
- package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-BR.json +24 -0
- package/src/experiences/components/SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.vue +25 -0
|
@@ -117,6 +117,7 @@ import IconError from './icons/error.vue';
|
|
|
117
117
|
import IconEllipsis from './icons/ellipsis.vue';
|
|
118
118
|
import IconEnvelopeEmail from './icons/envelope-email.vue';
|
|
119
119
|
import IconEyeCrossed from './icons/eye-crossed.vue';
|
|
120
|
+
import IconEyeOpen from './icons/eye-open.vue';
|
|
120
121
|
import IconFees from './icons/fees.vue';
|
|
121
122
|
import IconFilter from './icons/filter.vue';
|
|
122
123
|
import IconFilterCrazyDomains from './icons/crazy-domains/filter.vue';
|
|
@@ -473,6 +474,7 @@ export default {
|
|
|
473
474
|
IconError,
|
|
474
475
|
IconEnvelopeEmail,
|
|
475
476
|
IconEyeCrossed,
|
|
477
|
+
IconEyeOpen,
|
|
476
478
|
IconFees,
|
|
477
479
|
IconFilter,
|
|
478
480
|
IconFilterCrazyDomains,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path
|
|
4
|
+
opacity="0.9"
|
|
5
|
+
fill-rule="evenodd"
|
|
6
|
+
clip-rule="evenodd"
|
|
7
|
+
d="M11.4181 4.32617C10.3175 3.62909 9.18444 3.34961 8.00013 3.34961C6.8155 3.34961 5.68265 3.62903 4.57728 4.3252C3.48286 5.01447 2.44779 6.09218 1.41615 7.63965C1.27079 7.85788 1.27079 8.14212 1.41615 8.36035C2.44917 9.90989 3.49435 10.9873 4.5929 11.6758C5.70138 12.3705 6.83403 12.6504 8.00013 12.6504C10.3963 12.6502 12.9746 10.971 14.5568 8.33398C14.6687 8.14732 14.6792 7.91929 14.589 7.72559L14.5441 7.64453C13.533 6.09549 12.5081 5.01658 11.4181 4.32617ZM5.26966 5.4248C6.14901 4.87098 7.03773 4.65039 8.00013 4.65039C8.9627 4.65039 9.85008 4.87112 10.7228 5.42383C11.5338 5.93754 12.3581 6.75756 13.2208 8.01074C11.802 10.1554 9.72686 11.3494 8.00013 11.3496C7.05919 11.3496 6.16934 11.1295 5.28333 10.5742C4.4643 10.0609 3.62437 9.24441 2.7472 8C3.62417 6.75384 4.45564 5.93751 5.26966 5.4248ZM10 8C10 9.10457 9.10457 10 8 10C6.89543 10 6 9.10457 6 8C6 6.89543 6.89543 6 8 6C9.10457 6 10 6.89543 10 8Z"
|
|
8
|
+
fill="black"
|
|
9
|
+
/>
|
|
10
|
+
</svg>
|
|
11
|
+
</template>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
:class="[
|
|
16
16
|
{
|
|
17
17
|
'tw-w-full': !isImageMode,
|
|
18
|
-
'tw-p-4': !simple,
|
|
18
|
+
'tw-p-4': !removeHorizontalPadding && !simple,
|
|
19
19
|
'tw-max-w-md': size === 'md',
|
|
20
20
|
'tw-max-w-xl': size === 'xl',
|
|
21
21
|
'tw-max-w-2xl': !size && !isImageMode,
|
|
@@ -91,6 +91,11 @@ export default {
|
|
|
91
91
|
required: false,
|
|
92
92
|
default: false,
|
|
93
93
|
},
|
|
94
|
+
removeHorizontalPadding: {
|
|
95
|
+
type: Boolean,
|
|
96
|
+
required: false,
|
|
97
|
+
default: false,
|
|
98
|
+
},
|
|
94
99
|
visible: {
|
|
95
100
|
type: Boolean,
|
|
96
101
|
required: false,
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"publishBrandPageModal": {
|
|
3
|
+
"firstTimePublishHeaderLabel": "Set the URL for {{brandPageDisplayName}}",
|
|
4
|
+
"sitePublishedLabel": "Site published!",
|
|
5
|
+
"publishSuccessLabel": "Your {{brandPageDisplayName}} is live! Start using your link:",
|
|
6
|
+
"freePublishCardTitleLabel": "Free Address",
|
|
7
|
+
"freePublishCardDescriptionLabel": "Choose a free address to publish now. You can always edit the URL later",
|
|
8
|
+
"slugInputPlaceholderYourNameLabel": "your-name",
|
|
9
|
+
"slugInputPlaceholderYourBusinessNameLabel": "your-business-name",
|
|
10
|
+
"freeDomainLabel": "Free domain",
|
|
11
|
+
"purchasedDomainLabel": "Purchased domain",
|
|
12
|
+
"setUrlLabel": "Set URL",
|
|
13
|
+
"publishLabel": "Publish",
|
|
14
|
+
"viewMoreDomainLabel": "VIEW MORE DOMAINS",
|
|
15
|
+
"viewMyWebsiteLabel": "View {{brandPageDisplayName}}",
|
|
16
|
+
"copyLabel": "Copy",
|
|
17
|
+
"copySuccessLabel": "Copied!",
|
|
18
|
+
"publishedSuccessDescriptionLabel": "Buy matching domain name for your brand",
|
|
19
|
+
"hasAlreadyPurchasedDomainCloseButtonLabel": "No thanks, maybe later",
|
|
20
|
+
"selectDomainDropdownPlaceholder": "Select domain name",
|
|
21
|
+
"websiteFriendlyName": "Website",
|
|
22
|
+
"digitalBusinessCardFriendlyName": "Digital Business Card"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,26 +1,38 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="publish-bp--container">
|
|
3
3
|
<Modal
|
|
4
|
-
classes="publish-bp--modal tw-
|
|
4
|
+
classes="publish-bp--modal tw-pt-4"
|
|
5
5
|
close-on-esc
|
|
6
6
|
:visible="visible"
|
|
7
7
|
:hide-scrollbar="false"
|
|
8
8
|
:show-modal-background-image="showModalBackgroundImage"
|
|
9
9
|
:content-classes="isBusy ? ['tw-overflow-y-hidden'] : []"
|
|
10
|
+
:remove-horizontal-padding="showUpsellRotationContainer && !isCustomDomainActive && !hasPurchasedDomains"
|
|
11
|
+
:class="{
|
|
12
|
+
'tw-px-2 md:tw-px-8': !showUpsellRotationContainer && isCustomDomainActive && hasPurchasedDomains,
|
|
13
|
+
}"
|
|
10
14
|
@close-modal="onCloseModal"
|
|
11
15
|
>
|
|
12
16
|
<template #header>
|
|
13
17
|
<div v-if="isNotPublished || isSlugEditMode" class="tw-text-center tw-font-bold tw-mb-8 tw-mt-8 tw-text-4xl">
|
|
14
18
|
<span>{{ firstTimePublishHeaderLabel }}</span>
|
|
15
19
|
</div>
|
|
16
|
-
<div
|
|
20
|
+
<div
|
|
21
|
+
v-if="isPublished && !isSlugEditMode"
|
|
22
|
+
class="tw-text-center tw-font-bold tw-mt-8"
|
|
23
|
+
:class="{
|
|
24
|
+
'tw-mb-8 ': !showUpsellRotationContainer,
|
|
25
|
+
}"
|
|
26
|
+
>
|
|
17
27
|
<p class="tw-font-bold tw-text-black tw-mb-2 tw-text-4xl">{{ sitePublishedLabel }}</p>
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
<div v-if="!showUpsellRotationContainer">
|
|
29
|
+
<p v-if="hasPurchasedDomains || isCustomDomainActive" class="tw-text-grayscale-600 tw-mb-8">
|
|
30
|
+
{{ publishSuccessLabel }}
|
|
31
|
+
</p>
|
|
32
|
+
<p v-else class="tw-text-grayscale-600 tw-mb-8 tw-font-normal">
|
|
33
|
+
{{ publishedSuccessDescriptionLabel }}
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
24
36
|
</div>
|
|
25
37
|
</template>
|
|
26
38
|
<template #default>
|
|
@@ -187,7 +199,7 @@
|
|
|
187
199
|
</div>
|
|
188
200
|
</div>
|
|
189
201
|
<div v-else class="tw-font-sans">
|
|
190
|
-
<div v-if="!
|
|
202
|
+
<div v-if="!showUpsellRotationContainer" class="tw-mb-6 tw-text-left">
|
|
191
203
|
<div class="tw-mb-6">
|
|
192
204
|
<SellDomainNameSearchWithResults
|
|
193
205
|
:is-design-com="isDesignCom"
|
|
@@ -195,17 +207,12 @@
|
|
|
195
207
|
:currency="userCurrency"
|
|
196
208
|
:display-result-limit="4"
|
|
197
209
|
:domain-search-location="sitePublishedModal"
|
|
210
|
+
show-view-more-button
|
|
198
211
|
@on-change-search="onSearchTextChanged"
|
|
199
212
|
@on-buy-now-click="onBuyNowClick"
|
|
213
|
+
@on-view-more="onViewMore"
|
|
200
214
|
/>
|
|
201
215
|
</div>
|
|
202
|
-
<Button
|
|
203
|
-
:label="viewMoreDomainLabel"
|
|
204
|
-
variant="no-border"
|
|
205
|
-
size="small-medium"
|
|
206
|
-
class="tw-text-center"
|
|
207
|
-
@on-click="onViewMore"
|
|
208
|
-
/>
|
|
209
216
|
</div>
|
|
210
217
|
<div class="tw-px-4 tw-text-center" :class="{ 'lg:tw-px-20': hasPurchasedDomains }">
|
|
211
218
|
<TextCopyField
|
|
@@ -230,6 +237,9 @@
|
|
|
230
237
|
@on-click="onBrandPageUrlClick"
|
|
231
238
|
/>
|
|
232
239
|
</div>
|
|
240
|
+
<div v-if="showUpsellRotationContainer" class="tw-border-t tw-border-solid tw-border-grayscale-500 tw-p-5">
|
|
241
|
+
<slot name="upsellContainer" />
|
|
242
|
+
</div>
|
|
233
243
|
</div>
|
|
234
244
|
</template>
|
|
235
245
|
</Modal>
|
|
@@ -405,6 +415,11 @@ export default {
|
|
|
405
415
|
required: true,
|
|
406
416
|
default: '',
|
|
407
417
|
},
|
|
418
|
+
showUpsellRotation: {
|
|
419
|
+
type: Boolean,
|
|
420
|
+
required: true,
|
|
421
|
+
default: false,
|
|
422
|
+
},
|
|
408
423
|
},
|
|
409
424
|
emits: [
|
|
410
425
|
'close-modal',
|
|
@@ -503,6 +518,17 @@ export default {
|
|
|
503
518
|
? this.slugInputPlaceholderYourNameLabel
|
|
504
519
|
: this.slugInputPlaceholderYourBusinessNameLabel;
|
|
505
520
|
},
|
|
521
|
+
showUpsellRotationContainer() {
|
|
522
|
+
// Should be false if no brandPageSlug or already published
|
|
523
|
+
if (
|
|
524
|
+
(this.brandPageSlug && this.brandPageSlug.trim() !== '') ||
|
|
525
|
+
this.isPublished ||
|
|
526
|
+
this.isBrandPageSlugEditMode
|
|
527
|
+
) {
|
|
528
|
+
return false;
|
|
529
|
+
}
|
|
530
|
+
return this.showUpsellRotation && !this.isCustomDomainActive && !this.hasPurchasedDomains;
|
|
531
|
+
},
|
|
506
532
|
},
|
|
507
533
|
watch: {
|
|
508
534
|
brandPageSlug(slug) {
|
package/src/experiences/components/PublishBrandPageModal/i18n/publish-brand-page-modal.pt-BR.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"publishBrandPageModal" : {
|
|
3
|
+
"firstTimePublishHeaderLabel" : "Set the URL for {{brandPageDisplayName}}",
|
|
4
|
+
"sitePublishedLabel" : "Site published!",
|
|
5
|
+
"publishSuccessLabel" : "Your {{brandPageDisplayName}} is live! Start using your link:",
|
|
6
|
+
"freePublishCardTitleLabel" : "Free Address",
|
|
7
|
+
"freePublishCardDescriptionLabel" : "Choose a free address to publish now. You can always edit the URL later",
|
|
8
|
+
"slugInputPlaceholderYourNameLabel" : "your-name",
|
|
9
|
+
"slugInputPlaceholderYourBusinessNameLabel" : "your-business-name",
|
|
10
|
+
"freeDomainLabel" : "Free domain",
|
|
11
|
+
"purchasedDomainLabel" : "Purchased domain",
|
|
12
|
+
"setUrlLabel" : "Set URL",
|
|
13
|
+
"publishLabel" : "Publish",
|
|
14
|
+
"viewMoreDomainLabel" : "VIEW MORE DOMAINS",
|
|
15
|
+
"viewMyWebsiteLabel" : "View {{brandPageDisplayName}}",
|
|
16
|
+
"copyLabel" : "Copy",
|
|
17
|
+
"copySuccessLabel" : "Copied!",
|
|
18
|
+
"publishedSuccessDescriptionLabel" : "Buy matching domain name for your brand",
|
|
19
|
+
"hasAlreadyPurchasedDomainCloseButtonLabel" : "No thanks, maybe later",
|
|
20
|
+
"selectDomainDropdownPlaceholder" : "Select domain name",
|
|
21
|
+
"websiteFriendlyName" : "Website",
|
|
22
|
+
"digitalBusinessCardFriendlyName" : "Digital Business Card"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -22,6 +22,14 @@
|
|
|
22
22
|
:domain-search-location="domainSearchLocation"
|
|
23
23
|
@on-buy-now-click="onBuyNowClick"
|
|
24
24
|
/>
|
|
25
|
+
<Button
|
|
26
|
+
v-if="showViewMoreButton"
|
|
27
|
+
:label="viewMoreDomainLabel"
|
|
28
|
+
variant="no-border"
|
|
29
|
+
size="small-medium"
|
|
30
|
+
class="tw-text-center tw-pt-6"
|
|
31
|
+
@on-click="onViewMore"
|
|
32
|
+
/>
|
|
25
33
|
</div>
|
|
26
34
|
</template>
|
|
27
35
|
<script>
|
|
@@ -30,6 +38,8 @@ import SellDomainNameSearchResult from '../SellDomainNameSearchResult/SellDomain
|
|
|
30
38
|
|
|
31
39
|
import brandCrowdApiClient from '../../clients/brand-crowd-api.client';
|
|
32
40
|
import Events from '../../constants/event-constants';
|
|
41
|
+
import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
|
|
42
|
+
import Button from '../../../atoms/components/Button/Button.vue';
|
|
33
43
|
|
|
34
44
|
const TEXT_CHANGED_PARAM = 'textChanged';
|
|
35
45
|
|
|
@@ -37,6 +47,7 @@ export default {
|
|
|
37
47
|
components: {
|
|
38
48
|
SellDomainNameSearch,
|
|
39
49
|
SellDomainNameSearchResult,
|
|
50
|
+
Button,
|
|
40
51
|
},
|
|
41
52
|
props: {
|
|
42
53
|
currency: {
|
|
@@ -101,6 +112,16 @@ export default {
|
|
|
101
112
|
type: Number,
|
|
102
113
|
default: undefined,
|
|
103
114
|
},
|
|
115
|
+
showViewMoreButton: {
|
|
116
|
+
type: Boolean,
|
|
117
|
+
default: false,
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
setup() {
|
|
121
|
+
return {
|
|
122
|
+
publishBrandPageModalTr,
|
|
123
|
+
viewMoreDomainLabel: publishBrandPageModalTr('viewMoreDomainLabel'),
|
|
124
|
+
};
|
|
104
125
|
},
|
|
105
126
|
data: () => ({
|
|
106
127
|
domainNameItems: undefined,
|
|
@@ -126,6 +147,7 @@ export default {
|
|
|
126
147
|
methods: {
|
|
127
148
|
async onSearchDomainName(args) {
|
|
128
149
|
this.$emit('on-change-search', args.searchText);
|
|
150
|
+
this.$emit('on-domain-search');
|
|
129
151
|
await this.searchDomainName(args.searchText, args.isUserTriggered);
|
|
130
152
|
},
|
|
131
153
|
async searchDomainName(searchText, isUserTriggered) {
|
|
@@ -184,6 +206,9 @@ export default {
|
|
|
184
206
|
const urlParams = new URLSearchParams(window.location.search);
|
|
185
207
|
return urlParams.get(TEXT_CHANGED_PARAM)?.toUpperCase() === 'TRUE' || false;
|
|
186
208
|
},
|
|
209
|
+
onViewMore() {
|
|
210
|
+
this.$emit('on-view-more');
|
|
211
|
+
},
|
|
187
212
|
},
|
|
188
213
|
};
|
|
189
214
|
</script>
|