From b8e2c6bed8cef37855371e366d76bdc4448b6052 Mon Sep 17 00:00:00 2001 From: Michael Silber Date: Fri, 13 Aug 2021 14:48:22 -0400 Subject: [PATCH 1/5] Add sold out variant picker UI in Liquid --- assets/global.js | 4 ++ assets/section-main-product.css | 7 +++- sections/main-product.liquid | 71 +++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/assets/global.js b/assets/global.js index 98dbefa4d8e..de5a638c47d 100644 --- a/assets/global.js +++ b/assets/global.js @@ -846,7 +846,11 @@ class VariantSelects extends HTMLElement { const html = new DOMParser().parseFromString(responseText, 'text/html') const destination = document.getElementById(`price-${this.dataset.section}`); const source = html.getElementById(`price-${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section}`); + const variantPickerDestination = document.querySelector('variant-radios') || document.querySelector('variant-selects'); + const variantPickerSource = html.querySelector('variant-radios') || html.querySelector('variant-selects'); + if (source && destination) destination.innerHTML = source.innerHTML; + if (variantPickerSource && variantPickerDestination) variantPickerDestination.innerHTML = variantPickerSource.innerHTML; const price = document.getElementById(`price-${this.dataset.section}`); diff --git a/assets/section-main-product.css b/assets/section-main-product.css index b43fe06c3d5..af651564c26 100644 --- a/assets/section-main-product.css +++ b/assets/section-main-product.css @@ -243,11 +243,16 @@ fieldset.product-form__input .form__label { background-color: rgba(var(--color-background), 0.3); } -.product-form__input input[type='radio']:disabled + label { +.product-form__input input[type='radio']:disabled + label, +.product-form__input input[type='radio'].disabled + label { border-color: rgba(var(--color-foreground), 0.1); color: rgba(var(--color-foreground), 0.4); text-decoration: line-through; } +.product-form__input input[type='radio'].disabled:checked + label, +.product-form__input input[type='radio']:disabled:checked + label { + color: rgba(var(--color-background),.4); +} .product-form__input input[type='radio']:focus-visible + label { box-shadow: 0 0 0 0.3rem rgb(var(--color-background)), 0 0 0 0.5rem rgba(var(--color-foreground), 0.55); diff --git a/sections/main-product.liquid b/sections/main-product.liquid index 780f187bd7c..96aaf1ba291 100644 --- a/sections/main-product.liquid +++ b/sections/main-product.liquid @@ -496,6 +496,77 @@ {%- endfor -%} +<<<<<<< HEAD +======= + {%- endfor -%} + + + {%- else -%} + + {%- for option in product.options_with_values -%} +
+ +
+ + {% render 'icon-caret' %} +
+
+ {%- endfor -%} + + +
+ {%- endif -%} + {%- endunless -%} + +