Root cause: the cart drawer and product modal are SDK singletons attached
outside shopifyContainer, not children of it. Destroying and recreating
the collection component on theme change only rebuilt the product grid —
the cart/modal never got torn down, so they stayed frozen on whatever
theme was active the first time they rendered.
- Replace destroy-and-recreate with ui.createComponent() + updateConfig()
on a persisted component reference, so theme changes push new options
into the cart/modal singletons in place instead of leaving them stale
- Rename initShopify() -> renderShopify() to reflect create-or-update
behavior
- Drop the shopifyRenderToken race guard from the previous commit — no
longer needed since we're not destroying/rebuilding DOM on each change
- Theme quantityInput (background, text, border) in both the product tile
and modal; it was left on the SDK's static default and stayed
unreadable regardless of theme
Files changed:
src/pages/StorePage.vue
Theme shop tab to match printables, add dark mode support to Shopify embed
Shop tab layout
- Wrap Shopify embed in v-card (elevation 2) to match printables card style
- Add skeleton loaders while the Buy Button SDK initializes
- Add subtitle blurb above the category filter, consistent with printables tab
Dark mode support
- Add useTheme() / isDark computed to track the active Vuetify theme
- Convert SHOPIFY_OPTIONS to buildShopifyOptions(dark) so all SDK-rendered
surfaces can be re-themed on toggle
- Theme product tile background + text (previously hardcoded white text
with no background, invisible in light mode)
- Theme product modal background (previously always rendered white
regardless of site theme)
- Theme cart/checkout drawer background, header, line items, and footer
(previously always rendered light mode)
- Re-run initShopify() via a watcher on isDark so the embed re-renders
when the user toggles theme
- Round button border-radius from 0px to 4px across product, modal, and
cart buttons for visual consistency with printables cards
Bug fixes
- Add shopifyRenderToken generation guard in initShopify() to prevent a
race condition where overlapping calls (e.g. theme settling shortly
after mount) could leave the product grid partially rendered with
missing images
- Move subtitle blurb above the category filter dropdown (was below)
Files changed:
src/pages/StorePage.vue
* Add the store code from agora.markets
Uploads a stylesheet and store code to popluate the deflock store hosted by agora.markets
* fix store
---------
Co-authored-by: Will Freeman <hohosanta@me.com>
* use new df map
* close button top-right, link to same position in new map, use localStorage for modal dismissal
* update map image, iframe detection ignores new map modal
* update embed instructions
* pretty banner
* privacy policy update - routing
* launch the map language
* header stuff
* change donate link
* remove new map notice bc 301 on cf
* use user agent for alpr_counts
* news -> footnote4a
* remove blog scraper
* Added "view image" button, if a wikimedia commons tag is present.
* show thumbnail, prevent 'LPR LPR'
---------
Co-authored-by: Will Freeman <hohosanta@me.com>
* add rss ingestor
* it works
* blog working
* fix the theme switcher
* finalize blog, re-add store
* fix terraform for blog_scraper
* update sitemap
* update readme