Merge pull request #584 from Safelite/feature/richardson/SSR-1059
Recycling Modal
This commit is contained in:
commit
6fd859fb94
4 changed files with 53 additions and 5 deletions
|
|
@ -16,6 +16,7 @@
|
||||||
<div
|
<div
|
||||||
id="cart-table"
|
id="cart-table"
|
||||||
class="cart-table">
|
class="cart-table">
|
||||||
|
<!-- Deductible Line Item -->
|
||||||
<div
|
<div
|
||||||
id="cart-deductible-or-base-price"
|
id="cart-deductible-or-base-price"
|
||||||
class="mt-4 cart-line-item color-gray-100 px-5 py-1">
|
class="mt-4 cart-line-item color-gray-100 px-5 py-1">
|
||||||
|
|
@ -38,12 +39,34 @@
|
||||||
<span id="base-price-value">{{ getDisplayed(baseServicePrice) }}</span>
|
<span id="base-price-value">{{ getDisplayed(baseServicePrice) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Packaged Cart Items -->
|
||||||
|
|
||||||
|
<!-- Nonpackaged Cart Items -->
|
||||||
|
<!-- This will be a loop when this is implemented -->
|
||||||
|
<div class="non-packaged-cart-item">
|
||||||
|
<textLink
|
||||||
|
linkType="text"
|
||||||
|
text="Recycling"
|
||||||
|
href="javascript:void(0)"
|
||||||
|
@clickEvent="openModal(recyclingModalCmsWidgetName)" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Sub total, sales tax, total columns -->
|
||||||
</div>
|
</div>
|
||||||
|
<contentGroupModal
|
||||||
|
ref="RecycleModal"
|
||||||
|
cmsWidgetName="RecycleModal">
|
||||||
|
<textBlock cmsWidgetName="RecycleTextBlock" />
|
||||||
|
</contentGroupModal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { useMainStore } from '@/store';
|
import { useMainStore } from '@/store';
|
||||||
|
import contentGroupModal from '@/iss-components/content-group-modal/content-group-modal.vue';
|
||||||
|
import textBlock from '@/digital-components/text-block/text-block.vue';
|
||||||
|
import textLink from '@/ux-components/text-link/text-link.vue';
|
||||||
import getPriceOfLineItems from '@/helpers/price-calculator.js';
|
import getPriceOfLineItems from '@/helpers/price-calculator.js';
|
||||||
import { formatAmountInDollars } from '@/helpers/text-helper.js';
|
import { formatAmountInDollars } from '@/helpers/text-helper.js';
|
||||||
|
|
||||||
|
|
@ -51,12 +74,15 @@ const VERIFYING_COVERAGE = 'Verifying coverage';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'cart-dropdown',
|
name: 'cart-dropdown',
|
||||||
components: {},
|
components: { contentGroupModal,
|
||||||
|
textBlock,
|
||||||
|
textLink },
|
||||||
props: {
|
props: {
|
||||||
showAsPaid: Boolean,
|
|
||||||
amountDueLabel: String,
|
amountDueLabel: String,
|
||||||
|
basePriceLabel: String,
|
||||||
deductibleLabel: String,
|
deductibleLabel: String,
|
||||||
basePriceLabel: String
|
recyclingModalCmsWidgetName: String,
|
||||||
|
showAsPaid: Boolean
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const { currentDeductible } = useMainStore().order;
|
const { currentDeductible } = useMainStore().order;
|
||||||
|
|
@ -97,6 +123,9 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
openModal(modalName) {
|
||||||
|
this.$refs[modalName].openModal();
|
||||||
|
},
|
||||||
toggleIsExpanded() {
|
toggleIsExpanded() {
|
||||||
this.isExpanded = !this.isExpanded;
|
this.isExpanded = !this.isExpanded;
|
||||||
},
|
},
|
||||||
|
|
@ -131,6 +160,20 @@ export default {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.modal-content a.external-text) {
|
||||||
|
text-underline-offset: 0.25rem;
|
||||||
|
line-height: 2;
|
||||||
|
padding: 0 0 0.25rem 0;
|
||||||
|
font-weight: 500;
|
||||||
|
max-width: -webkit-fit-content;
|
||||||
|
max-width: -moz-fit-content;
|
||||||
|
max-width: fit-content;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(#RecycleModal h5) {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.cart-toggle {
|
.cart-toggle {
|
||||||
&:after {
|
&:after {
|
||||||
content: "";
|
content: "";
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
v-if="ModalSubBodyText"
|
v-if="ModalSubBodyText"
|
||||||
class="my-4 caption modal-sub-body"
|
class="my-4 caption modal-sub-body"
|
||||||
v-html="ModalSubBodyText"></p>
|
v-html="ModalSubBodyText"></p>
|
||||||
|
<slot></slot>
|
||||||
</modal>
|
</modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@
|
||||||
:showAsPaid="false"
|
:showAsPaid="false"
|
||||||
:amountDueLabel="amountDueText"
|
:amountDueLabel="amountDueText"
|
||||||
:deductibleLabel="deductibleLabel"
|
:deductibleLabel="deductibleLabel"
|
||||||
:basePriceLabel="basePriceLabel" />
|
:basePriceLabel="basePriceLabel"
|
||||||
|
recyclingModalCmsWidgetName="RecycleModal" />
|
||||||
<hr class="mt-0 mb-5" />
|
<hr class="mt-0 mb-5" />
|
||||||
<div>Pia Alert Placeholder</div>
|
<div>Pia Alert Placeholder</div>
|
||||||
<paymentMethodQuestion
|
<paymentMethodQuestion
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,6 @@ body {
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
max-width: 576px;
|
max-width: 576px;
|
||||||
height: calc(100% - 72px);
|
|
||||||
|
|
||||||
&.show {
|
&.show {
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
|
|
@ -79,6 +78,10 @@ body {
|
||||||
|
|
||||||
// Prevent scroll when modal is open
|
// Prevent scroll when modal is open
|
||||||
&.modal-open {
|
&.modal-open {
|
||||||
|
div.page-container-grouped-styles {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.fade-on-route-transition {
|
.fade-on-route-transition {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue