Recent Activities
This page shows what are we working on.
-
head
-
Few minor changes to shop by dropdown 22fc09
-
Enhance header slideout menu. Adjust top offset. 75cdb2
-
Related product block. Fix issue incorrectly placed button when critical CSS enabled. 63d63b
-
Added testimonials and FAQ blocks to the product page e95221
-
Remove listing banners except for the first one 0b5f7c
-
Added ECI config, layout, and styles 9823dd
-
Updated styles and scripts to work with Qty Switcher module 59ad66
-
Minicart. Update slideout positioning and add scroll tracking for dropdown dialogs 96fbb9
-
Update header panel styles for pagebuilder slider. 4967ce
-
Refactor header panel: remove EasySlide integration, add header panel info block, and update styles for header panel slider 662724
-
Remove EasySlide configuration and related HTML content ea5c76
-
Add noEscape directive to continue shopping button URL ac4b9c
-
Update listing gap variable to use defined spacing 41f0ca
-
Add CSS class to main title in checkout cart layout dc41f6
-
Shopping cart page is done. c1d6d0
-
Shopping cart page in progress 8ca297
-
Shopping cart page 9fa558
-
Enhance quantity input styling and functionality. Apply border-radius to buttons and ensure step attribute is valid. 1bcebb
-
Add padding variable for navigation link caret. aa8d04
-
Quantity wrapper component. f57c8d
-
Product page. Adjustments for related products layout. aa27ee
-
Product page. Add new layout container. Place BCB marquee content there. a2fe52
-
Product page. Enhance gallery configuration and update layout variables for improved styling and responsiveness. b89117
-
Product page. Add grid area for price information and implement gallery layout for improved product display. 76b0b3
-
Product page. Add focus ring styling for checkboxes in related products block to enhance accessibility. ab2227
-
Product page. Refactor related products layout for improved responsiveness and styling consistency. 5aa789
-
Product page. Update quantity button icons to use mask images for better scalability and styling. 9576ee
-
Product page. Related products block. 7ed6de
-
Product page. Implement review popup for full review text display and enhance accessibility. d38885
-
Product page. Add toggle for "Write Your Own Review" form and adjust styles for review list 9973d8
-
Product page. Revies list is done. Revie form next. 5bf007
-
Theme Editor: added Listing, Animations, and Advanced sections a4451d
-
Theme Editor: added Colors section 390891
-
Product page. Reviews in progress... e13b99
-
Theme Editor: added Layout, Typography, Overlay Header, Border Radius, Color and Font Palettes ff5e62
-
Productpage. Review in progress... 7059e9
-
Productpage. Review in progress. 669824
-
BCB featured product component. 0651cf
-
Add styles for featured product details, SKU, and price row in BCB d65f2d
-
BCB accordion styles at product info main. 1a262b
-
Installer. Add accordion for products. 466a5b
-
Add padding to swatch options in product add form for improved layout f10f77
-
Product main info ... in progress bf5c3f
-
Enhance product quantity input with increment/decrement buttons and update styles for better usability 72192e
-
Update product page medium image dimensions to 590x590 012c72
-
Fix minicart styles: set empty counter opacity to 0 79fcd1
-
Increased h2 bottom margin dff6ea
-
Product page action buttons. d008f0
-
Updated footer content links and section titles for improved clarity and user experience 241039
-
BCB homepage: fixed wrong image name b1a4f4
-
Rating stars styles in product listing f17a0f
-
BCB homepage: updated full width banner and sections spacings 2076c7
-
Fixed sort order of product details inside grid listing 9ad360
-
BCB homepage: updated Videos and full width banner sections 072733
-
Product page title font-size. d0987c
-
Footer. Minor fix for ring reval animation. Restore missing divider in footer. (#3) 54cdc4
-
Footer ring reveal animation added (#3) 4a8be8
-
BCB homepage: added animated badges to top banners grid 197e37
-
BCB homepage: added rotation animation for Full Width Banner 1420f9
-
BCB homepage: top banner updated a53bd5
-
Update favicon color 5ea666
-
Update favicon 18d8dc
-
Slightly update footer background. 5fcbfc
-
Footer content update. Add contact block (#3) dea42e
-
Fixed missing minicart overlay on first open (#2) 54feaa
-
BCB homepage: updated Browse categories block dbfa89
-
Breadcrumbs 196469
-
Done with search (#2) d8e0f3
-
Enhance minisearch functionality with slideout behavior and styling adjustments without Ajaxsearch (#2) 8c4a9d
-
Minisearch styles when ajaxsearch disabled... in progress (#2) 259fac
-
Remove unused styles from viewcart action and update empty subtitle styles in minicart (#2) dba7a5
-
Minicart complete (#2) 56efd2
-
Search on desktop (#2) 9c587e
-
BCB homepage: added videos section 7ee864
-
Minicart inprogress (only buttons to adjust)... (#2) c1be91
-
Minicart update in progress.... c3d18b
-
Minicart update in progress... (#2) 55e7b9
-
INstaller. Create dummy CMS block header_panel_info to allow user add custom content (#2) f70d58
-
Adjust minicart counter (#2) 03e843
-
BCB homepage: Added brand logos section b905f1
-
BCB homepage: Added testimonials section 2ab2cf
-
Update newsletter styles: adjust input border and add consent positioning (#2) 02d37d
-
Header. Update search behaviou and look of the result dropown. 993432
-
BCB homepage: Added FAQ a0bfde
-
Add focused search styles. d80f88
-
BCB homepage: added new sections 875068
-
BCB homepage: added ECI and full-width banner d40cfa
-
Top navigation added. 8fa9a3
-
Remove color from menu links dec081
-
Clone currency and store switchers in header slideout menu for improved functionality de36e3
-
Enhance header and newsletter styles for improved layout and responsiveness in header slideout menu. b63dd0
-
Installer. Update header slideout menu styles. 825795
-
Update footer top content HTML to enhance newsletter section styling.
Don't set font familiy for header in Page Builder ba0b81 -
BCB homepage WIP b228af
-
Basic navpro slideout styles 75ac0e
-
Refactor header slideout menu and newsletter styles for improved layout and consistency 3b42ff
-
Header slideout menu... d4f174
-
Listing styles for the list mode and old price update. cbff61
-
Update README.md to clarify usage of `with-bottom-divider` CSS class and provide detailed instructions 1b9ea5
-
Pagination and make with-bottom-divider general. 37ea17
-
Added list banner 5 config; updated installer, moved it to json a43985
-
Add new layout configuration and remove easybanner references; update footer content and styles 87165b
-
Refactor easybanner configuration and installer for product listing banners 8b1d0d
-
Installer. Listing grid banner added. 914c01
-
-
1.2.15
-
Version 1.2.15 e866a1
-
fix(suggestpage): keep the block's image styles off the listing thumbnails (#4) (#5)
* fix: keep SuggestPage image styles off the listing thumbnails (#4)
image_with_borders.phtml renders every product image with a
`product-image-container-<productId>` class and emits a global `<style>`
sizing that class. After add to cart the SuggestPage block is injected into
the page the shopper is already on, and it shows the very product that page
is likely to list. Equal specificity, later in the document: the block's
rules won and the listing thumbnail took the SuggestPage image size - a
300px tile collapsed to the 165px of the cart thumbnail.
Swissup\Suggestpage\Block\Cart now renders through
ProductImageStyles::isolate(), which renames the per-product class
(`suggestpage-` prefix) in both the markup and the generated selectors. The
block keeps sizing its own images - including the cross-sell ones - and
stops sizing anybody else's, whichever order the two end up in. The
`product-image-container` base class that themes style is untouched.
Swissup_Ajaxpro got the same treatment for its product popup in #61, but
only in CustomerData/Product.php; the SuggestPage markup travels in the
`ajaxpro-cart` section instead, which is why that commit left this case
open.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* fix(suggestpage): leave markup another module has isolated alone (#4 review)
The lookbehind only guarded this class's own prefix, so markup that
Swissup_Ajaxpro had already isolated - its sections render this block - came
back out prefixed a second time, as `ajaxpro-suggestpage-...`. It now skips any
prefix in front of the class, which keeps the method idempotent and matches
what ajaxpro 1.7.43 does on its side.
Also: return the markup unchanged if preg_replace() ever fails, instead of
rendering an empty block, and cover the block wiring itself - that _toHtml()
hands the template output to the isolator - which only the model was covering.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs(tests): say where the phpunit bootstrap path resolves from (#4 review)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com> 2576aa -
docs(tests): say where the phpunit bootstrap path resolves from (#4 review)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 64f3a9 -
fix(suggestpage): leave markup another module has isolated alone (#4 review)
The lookbehind only guarded this class's own prefix, so markup that
Swissup_Ajaxpro had already isolated - its sections render this block - came
back out prefixed a second time, as `ajaxpro-suggestpage-...`. It now skips any
prefix in front of the class, which keeps the method idempotent and matches
what ajaxpro 1.7.43 does on its side.
Also: return the markup unchanged if preg_replace() ever fails, instead of
rendering an empty block, and cover the block wiring itself - that _toHtml()
hands the template output to the isolator - which only the model was covering.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> da8e4a -
fix: keep SuggestPage image styles off the listing thumbnails (#4)
image_with_borders.phtml renders every product image with a
`product-image-container-<productId>` class and emits a global `<style>`
sizing that class. After add to cart the SuggestPage block is injected into
the page the shopper is already on, and it shows the very product that page
is likely to list. Equal specificity, later in the document: the block's
rules won and the listing thumbnail took the SuggestPage image size - a
300px tile collapsed to the 165px of the cart thumbnail.
Swissup\Suggestpage\Block\Cart now renders through
ProductImageStyles::isolate(), which renames the per-product class
(`suggestpage-` prefix) in both the markup and the generated selectors. The
block keeps sizing its own images - including the cross-sell ones - and
stops sizing anybody else's, whichever order the two end up in. The
`product-image-container` base class that themes style is untouched.
Swissup_Ajaxpro got the same treatment for its product popup in #61, but
only in CustomerData/Product.php; the SuggestPage markup travels in the
`ajaxpro-cart` section instead, which is why that commit left this case
open.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 9e813f
-
-
1.2.4
-
1.2.3
-
chore(release): 1.2.3
Ships the bcb:fieldRowReady extension point (a9234aa) and its corrected
contract docs (#46), neither of which is in any released tag — 1.2.2
predates both. breeze-ai 1.8.6 subscribes to that event for its
per-field AI button, so on every released BCB the button is dead.
Patch release: comments and an event emit, no API break, and breeze-ai
declares no composer constraint on this package. 18c02c -
Merge pull request #48 from breezefront/docs/46-field-row-caveats
docs(property-panel): clarify bcb:fieldRowReady scope and caveats (#46) f12bb4 -
docs(property-panel): clarify bcb:fieldRowReady scope and caveats (#46)
The header comment read as a blanket claim ("a field row" fires the
event) when only rows built by _renderSingleProp actually emit it. The
editable Label row and grouped props (e.g. spacing) are built inline in
_renderForm and emit nothing, and a prop with type="hidden" or a
contextOnly miss returns before a row exists at all.
Also document that $row is not in the visible panel when the event fires
(_renderForm appends the form last, and a section's rows sit in a still
detached <details>), so subscribers must not read layout; that $row may
already be hidden by an unmatched depends clause; and that renderer is
the shared module for prop.type, to be read and never mutated.
Comments only — no behaviour change.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> c77b7c -
docs(property-panel): clarify bcb:fieldRowReady scope and caveats (#46)
Code review found the header comment read as a blanket claim ("a field
row" fires the event) when only ordinary ungrouped props built by
_renderSingleProp actually emit it — the label row and grouped props
(e.g. spacing) don't. Also note $row isn't attached to the live panel
yet at fire time (no layout reads), and that renderer is a shared
singleton per prop.type that subscribers must not mutate.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> a68c9f -
Emit bcb:fieldRowReady extension point for field rows a9234a
-
feat(property-panel): emit bcb:fieldRowReady extension point for field rows (#46)
After a field row is built, appended to the form, and bound on change,
property-panel.js now fires 'bcb:fieldRowReady' on $(document) with
{ prop, component, $row, $field, renderer }. A third-party module can
subscribe and append a control to $row without patching this file or
reaching into the DOM, and without touching $field's value collection
or change binding.
Also documents the field-renderer contract (render/getValue) as public
in the file header, since the extension point relies on it.
No new AMD registry and no wrapper around $field — the two walls
described in the issue stay as they are; this only adds the missing
hook point. d841c3 -
feat(FeaturedProduct): introduce less variables 9d348a
-
refactor(FeaturedProductRenderer): replace image URL and alt text with pre-rendered HTML 623392
-
Fixed FAQ items readability on light theme, closes #44 091320
-
Fixed avoid using self-closing tag with non-void html element 9a3123
-
Added hide on pages checkbox list prop type ccf9e8
-
Updated dependent fields logic 278125
-
feat(accordion): enable product attribute as body source for FAQ items b26684
-
feat(accordion): add support for per-item icons in FAQ items b7607f
-
Correct page cleanup when BCB is closed a40061
-
Merge pull request #38 from breezefront/feat/108-newsletter-and-missing-components
feat(components): inline newsletter layout (#108) 57dafb -
fix(components): newsletter heading follows an inherited text colour (#108)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> c56d7d -
fix(a11y): real heading elements and decorative icons (#41)
Newsletter rendered its section heading as <div class="...__heading h2">:
invisible to assistive technology and absent from the document outline,
even though it is the heading of a page band. It now emits a real h1-h6
element chosen by a new heading_type prop (default h2), matching what
text_block already does. Same fix for the featured_product name, which
was also a styled div.
Breeze styles the tag and the class off a single selector list -
`h2, .h2 { ... }` in theme-frontend-breeze-blank/web/css/base/
_typography.less - so under a Breeze theme, dropping the class for the
tag is visually neutral. Under a non-Breeze theme .h2 is not styled at
all, so those headings were rendering as plain body text and now pick up
the theme's own h2 size: a fix rather than a regression, but not a no-op.
Either way it changes the markup of existing pages, which is why this is
split out of #38.
text_block borrowed the heading text for its icon alt and wrapped inline
SVG in a plain div, so a screen reader announced the heading twice, or
three times when the SVG carried its own <title>. The icon is decorative
in every design that uses it: alt="" on the image branch, aria-hidden on
the SVG wrapper. A case that needs a real name should get an explicit
icon_alt prop rather than reusing the heading.
The admin H1 guard only fired on banner's headline_type, so raising a
text_block - and now a newsletter - to H1 skipped the warning. It now
watches heading_type too; _countH1 already counted both.
Also corrects the selector these three comments cite: the rule is
`h1, .h1` in the Breeze theme, not `:where(h1), .h1` in the module.
product_grid was checked and already emits a real h2. Accordion item
titles remain divs wrapping an <a> trigger; the heading+button pattern
there is a larger change and stays open.
Refs #41 53edaa -
fix(components): collage layout for flat-colour CTA, decorative icon a11y (#108)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 6e2743 -
feat(components): inline newsletter layout (#108)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 85ed20 -
Changes for header/footer page: publish spinner, layout picker with images 25b2ae
-
-
head
-
1.1.0
-
Version 1.1.0 e1ce91
-
Disable pagespeed critical css to get rid of "preloaded" css
https://github.com/swissup/module-pagespeed/issues/133 bf579c -
Don't process rel="preload" or anything else like that d1effd
-
Delivery modes: inline or file. (File shows better results locally) e755d9
-
Move CSS cleanup to shaker 8dbdd8
-
-
1.7.43
-
Version 1.7.43 4bb05d
-
docs: say where the fixers of the section markup live (#66) (#70)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com> a79b65 -
docs: say where the fixers of the section markup live (#66)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> a891e2 -
docs: say where the fixers of the section markup live (#66)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 38ebf8 -
fix(cart): keep popup image styles off the listing thumbnails (#66) (#67)
* fix: keep cart popup image styles off the listing thumbnails (#66)
image_with_borders.phtml renders every product image with a
`product-image-container-<productId>` class and emits a global `<style>`
sizing that class. The ajaxpro-cart section shows the product that has just
been added - the very one the listing behind the popup shows - and its markup
lands in the document after that listing, so its rules won and the listing
tile took the cart thumbnail size: a 240x300 tile collapsed to 165x165.
#61 fixed this for the ajaxpro-product section only. The cart markup now goes
through the same ProductImageStyles::isolate(), both for `checkout.cart` (every
handle, with or without a quote) and for `checkout.cart.fixes`. The `reinit`
markup has no product images and is left alone.
isolate() now skips any class that already carries a prefix, not only its own:
Swissup_Suggestpage isolates the markup of its block with a `suggestpage-`
prefix, and that block is what `checkout.cart` renders under the
`ajaxpro_popup_suggestpage_view` handle. Its classes and selectors keep naming
each other instead of being prefixed twice.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* refactor: run section markup through a fixer pipeline (#66)
Calling the isolator by hand at every place that renders markup is a patch in
three files that the next section will forget again. The rule is not "the cart
needs isolating" - it is "nothing this module injects into an already rendered
page may restyle that page", and it belongs where that markup leaves the
module.
AbstractSectionData::getBlockHtml() is that one door: every section (Init,
Cart, Product) renders through it, and there is no other out-of-band render
point in the module. It now runs the markup through a FixerInterface, injected
through the constructor.
The fixers themselves are declared in di.xml and composed by FixerPool, which
is a FixerInterface too - so the sections depend on the pipeline, not on what
is in it, and adding, reordering or removing a pass is a di.xml change. The
isolator becomes Html\Fixer\ProductImageStyles, the first entry in the
pipeline; Model\View\ProductImageStyles stays as a deprecated alias.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com> 2fe057 -
fix(popup): drop the gallery skip links from the Quick View markup (#68) (#69)
The popup renders a second copy of the product view into a page that already
has one, so every DOM id in it is duplicated. Measured on 2.4.8 sample data,
8 ids really collide in the live DOM (the 11 map-popup-* ones sit inside
Magento_Msrp's text/x-magento-template bodies and are never parsed).
Almost all of that is harmless: the popup markup is appended last, so
getElementById and jQuery's $('#id') fast path always return the page's copy,
and the widgets that matter - catalogAddToCart, mage.productValidate - bind to
this.element and serialise that form instead of looking the id up globally.
Add-to-cart, qty, swatches and price stay correct on both sides, verified for a
simple product over a simple page and a configurable over a configurable one.
The exception is gallery-next-area / gallery-prev-area. They are not widget
hooks but skip-link targets, and the popup carries both the <a href="#..."> and
its own <a id="..."> target. A fragment resolves to the first match - the
page's - so activating "Skip to the end of the images gallery" inside the modal
moves focus out of the dialog into the page behind it.
Remove them in the popup handle rather than renaming ids in the payload. A
rename would have to rewrite the x-magento-init selector keys in the same
payload in lockstep, and missing them would cost the popup form its
validate-product widget - worse than the bug it fixes. Skip links are a
page-scoped affordance anyway: the modal does its own focus management and has
no gallery to skip past.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com> 380135 -
fix(popup): drop the gallery skip links from the Quick View markup (#68)
The popup renders a second copy of the product view into a page that already
has one, so every DOM id in it is duplicated. Measured on 2.4.8 sample data,
8 ids really collide in the live DOM (the 11 map-popup-* ones sit inside
Magento_Msrp's text/x-magento-template bodies and are never parsed).
Almost all of that is harmless: the popup markup is appended last, so
getElementById and jQuery's $('#id') fast path always return the page's copy,
and the widgets that matter - catalogAddToCart, mage.productValidate - bind to
this.element and serialise that form instead of looking the id up globally.
Add-to-cart, qty, swatches and price stay correct on both sides, verified for a
simple product over a simple page and a configurable over a configurable one.
The exception is gallery-next-area / gallery-prev-area. They are not widget
hooks but skip-link targets, and the popup carries both the <a href="#..."> and
its own <a id="..."> target. A fragment resolves to the first match - the
page's - so activating "Skip to the end of the images gallery" inside the modal
moves focus out of the dialog into the page behind it.
Remove them in the popup handle rather than renaming ids in the payload. A
rename would have to rewrite the x-magento-init selector keys in the same
payload in lockstep, and missing them would cost the popup form its
validate-product widget - worse than the bug it fixes. Skip links are a
page-scoped affordance anyway: the modal does its own focus management and has
no gallery to skip past.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 475db9 -
refactor: run section markup through a fixer pipeline (#66)
Calling the isolator by hand at every place that renders markup is a patch in
three files that the next section will forget again. The rule is not "the cart
needs isolating" - it is "nothing this module injects into an already rendered
page may restyle that page", and it belongs where that markup leaves the
module.
AbstractSectionData::getBlockHtml() is that one door: every section (Init,
Cart, Product) renders through it, and there is no other out-of-band render
point in the module. It now runs the markup through a FixerInterface, injected
through the constructor.
The fixers themselves are declared in di.xml and composed by FixerPool, which
is a FixerInterface too - so the sections depend on the pipeline, not on what
is in it, and adding, reordering or removing a pass is a di.xml change. The
isolator becomes Html\Fixer\ProductImageStyles, the first entry in the
pipeline; Model\View\ProductImageStyles stays as a deprecated alias.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 10292c -
fix: keep cart popup image styles off the listing thumbnails (#66)
image_with_borders.phtml renders every product image with a
`product-image-container-<productId>` class and emits a global `<style>`
sizing that class. The ajaxpro-cart section shows the product that has just
been added - the very one the listing behind the popup shows - and its markup
lands in the document after that listing, so its rules won and the listing
tile took the cart thumbnail size: a 240x300 tile collapsed to 165x165.
#61 fixed this for the ajaxpro-product section only. The cart markup now goes
through the same ProductImageStyles::isolate(), both for `checkout.cart` (every
handle, with or without a quote) and for `checkout.cart.fixes`. The `reinit`
markup has no product images and is left alone.
isolate() now skips any class that already carries a prefix, not only its own:
Swissup_Suggestpage isolates the markup of its block with a `suggestpage-`
prefix, and that block is what `checkout.cart` renders under the
`ajaxpro_popup_suggestpage_view` handle. Its classes and selectors keep naming
each other instead of being prefixed twice.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> c6fd19
-
-
1.7.42
-
Version 1.7.42
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> efc0bd -
Merge pull request #65 from swissup/fix/stale-quick-view-section-64
fix: drop stale popup sections on page load (#64) 0ed54a -
fix: ignore the data_id marker when spotting a stale payload (#64 review)
Every section the server answers is stamped with data_id, blocks or not, so
`_.isEmpty()` saw a marker-only ajaxpro-product as a payload and cleared it on
every page load.
On Breeze that clear also removed the storage entry behind customerData's
back, leaving the section_data_ids cookie pointing at a data_id that was no
longer stored — getExpiredSectionNames() then reported the section expired and
reloaded it on every page. Breeze writes storage in reload() alone and its
set() only touches the observable, so clearing the observable is enough.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> f1e86e -
fix: drop only the product payload, once per page (#64 review)
Clearing every popup section also emptied ajaxpro-cart, which
view/minicart/override.js reuses: it opens the cart popup straight from the
markup rendered on page load and only reloads the section when that block is
empty. With the section cleared, every page load triggered an extra
section/load and a minicart click in the first second opened nothing.
Breeze needs the storage entry removed as well — its customerData.set() only
writes the observable, storage is written by reload() alone, so init()
re-hydrated the stale payload on the next page.
Drop the payload once per page: create()/initialize() run again on a
re-created component, when the storage may hold a payload that has just
arrived.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 92f5ae -
fix: drop stale popup sections on page load (#64)
Since disposableCustomerData was dropped in 1.7.36, ajaxpro-product keeps the
product view rendered for a Quick View in mage-cache-storage, and both
component flavors hydrated it back on every page load. That injected a whole
foreign product view into every page — duplicate #product_addtocart_form,
duplicate .column.main, an add-to-cart url pointing at the wrong product —
kept out of sight only by the modal styles.
A popup payload is only meaningful right after the action that produced it, so
anything still stored at page load is stale: clear it instead of binding it.
Live updates keep working through the subscription.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 34e999
-
-
1.2.5
-
1.2.4
-
Version 1.2.4 e4c020
-
Merge pull request #5 from swissup/fix/arrow-room-lost-after-mount
fix(arrows): keep the arrow room after the switcher mounts 1a9480 -
fix(arrows): keep the arrow room after the switcher mounts
`.control:has(> .input-text.qty)` only matches the server-rendered markup.
`product.js` wraps the input into `.qty-wrapper` on init, after which the input
is no longer a direct child of `.control`, the rule stops matching and the 20px
reserved on each side for the arrows disappears — the arrows overflow the field
and the layout shifts once JS runs.
Match the input as a descendant instead, which holds both before and after the
wrap. Verified in the browser: `.control` padding went `0px 20px` -> `0px` the
moment the wrapper was inserted, and stays `0px 20px` with this selector.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 082597
-
-
head
-
Fixed cart qty input style 5a9fba
-
Fixed wrong color id in theme editor settings 402ff7
-
Added width 100% for the contact form 4a1acf
-
Replaced PB footer top content with BCB version f1006d
-
Removed unused overlay header config bf9be6
-
Added Overlay Header settings to Theme Editor c859d3
-
Fixed layout shift when js is placed between price and swatches 7c4cc4
-
Move price styles to enterprise-blank 54a350
-
-
3.3.3
-
head
-
Added Quantity Switcher 918479
-
-
3.3.0
-
head
-
Fixed header/footer issues with containers toggle, undo/redo, versions and publishing d3cd7e
-
Fixed missing background on Classic header layout on Eir theme aad26a
-
Fixed preview issue after previous commit ea8cea
-
Updating page selector links when store view switched 0d3d12
-
Added page visibility control and installer support for header/footer content 796f48
-
Fixed not working theme editor colors for overlay header 2660ce
-
Do not show overlay header toggles for native layout b000f5
-
WIP. Header layouts: added overlay mode support 8122c9
-
Correct page cleanup when BLB is closed 45b825
-
Improved header/footer preview 07c294
-
Header/Footer management with Header Layouts 7a0a82
-
-
1.2.0