Skip to content

fix: title delivery filter groups (Estimate first/headerless, Delivery Option, Shipping method)#762

Open
hiagolcm wants to merge 3 commits into
masterfrom
fix/delivery-filter-group-titles
Open

fix: title delivery filter groups (Estimate first/headerless, Delivery Option, Shipping method)#762
hiagolcm wants to merge 3 commits into
masterfrom
fix/delivery-filter-group-titles

Conversation

@hiagolcm

Copy link
Copy Markdown
Contributor

Summary

Fixes the PLP filter-navigator headings for delivery-related filter groups, which previously rendered the placeholder "Default Title", and applies the product-approved presentation for the Estimate group.

  • delivery-options — now titled "Delivery Option" (new message key store/search.filter.title.delivery-options across all locales).
  • dynamic-estimate (Estimate) — now the first filter, over all others. On desktop it renders headerless (no title, no collapsible header) directly below the "Filters" heading, with no divider line at its top (the heading's bottom border is dropped while it is present). On mobile it keeps its regular "Estimate" title and collapsible accordion.
  • shipping — heading copy renamed from "Shipping" to "Shipping method" across all locales (copy-only; message id unchanged).

Titles are assigned in getFilters, including the code path where no shipping group is present, so groups never fall back to "Default Title".

Spec: is-io-specs/specs/delivery-filter-group-titles/spec.md.

Changes

  • react/utils/getFilters.js — title map + hideHeader flag for dynamic-estimate; reorder dynamic-estimate first.
  • react/FilterNavigator.js — render estimate filter first, below the "Filters" heading; drop heading bottom border while estimate is present.
  • react/components/AccordionFilter* — reverted to baseline (mobile keeps title + accordion).
  • messages/*.json + messages/context.json — new delivery-options key, restored dynamic-estimate key, shipping copy → "Shipping method" (non-EN copy is best-effort for Localization).
  • react/__tests__/utils/getFilters.test.js — title resolution, headerless flag, ordering.
  • CHANGELOG.md.

Test plan

  • make check (lint + 144 tests) passing locally.
  • Desktop: Estimate is the first block, headerless, no divider between "Filters" and the estimate options; Delivery Option titled correctly; Shipping method titled correctly.
  • Mobile: Estimate shows the "Estimate" title and collapsible accordion.
  • Non-EN locale spot check on the three headings.

Testing point

https://dptitles--vendemo.myvtex.com/decker?_q=decker&map=ft

Made with Cursor

hiagolcm and others added 3 commits June 12, 2026 11:43
Delivery filter groups other than `shipping` (`dynamic-estimate`,
`delivery-options`) reached SearchFilter with no title and rendered the
generic "Default Title" placeholder. Assign a heading to every delivery
group in getFilters via a name->message-id map, including the code path
where no `shipping` group is present.

- Estimate (dynamic-estimate), Delivery Option (delivery-options);
  the shipping group keeps its existing "Shipping" title unchanged.
- Unknown groups fall back to the raw name (never "Default Title").
- Add the two new title keys across all locales (non-EN best-effort
  drafts) and context.json; new getFilters unit tests cover all paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
… header

The Estimate (dynamic-estimate) delivery filter group now renders its
options directly, with no group title and no collapsible header, on both
desktop and mobile. Other delivery groups are unaffected.

- getFilters tags each delivery group with a `hideHeader` flag
  (true only for dynamic-estimate) alongside its title. The flag is
  threaded through AvailableFilters -> SearchFilter -> FilterOptionTemplate
  (desktop) and AccordionFilterContainer -> AccordionFilterGroup ->
  AccordionFilterItem (mobile); when set, both paths skip the title/caret
  header and render the options always-expanded.
- Remove the now-unused store/search.filter.title.dynamic-estimate key
  from all locales and context.json. delivery-options keeps its title;
  shipping keeps "Shipping".
- Update getFilters unit tests to assert the hideHeader flag.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ing method"

- dynamic-estimate renders first, directly below the "Filters" heading on
  desktop with no title, no collapsible header, and no top divider (heading
  bottom border dropped while present); mobile keeps its "Estimate" title +
  accordion.
- Rename the default shipping-method group heading from "Shipping" to
  "Shipping method" across all locales (copy-only; message id unchanged).

Co-authored-by: Cursor <cursoragent@cursor.com>
@hiagolcm hiagolcm requested review from a team as code owners June 12, 2026 17:55
@hiagolcm hiagolcm requested review from RodrigoTadeuF, mendescamara and vsseixaso and removed request for a team June 12, 2026 17:55
@vtex-io-ci-cd

vtex-io-ci-cd Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Hi! I'm VTEX IO CI/CD Bot and I'll be helping you to publish your app! 🤖

Please select which version do you want to release:

  • Patch (backwards-compatible bug fixes)

  • Minor (backwards-compatible functionality)

  • Major (incompatible API changes)

And then you just need to merge your PR when you are ready! There is no need to create a release commit/tag.

  • No thanks, I would rather do it manually 😞

@vtex-io-docs-bot

Copy link
Copy Markdown

Beep boop 🤖

I noticed you didn't make any changes at the docs/ folder

  • There's nothing new to document 🤔
  • I'll do it later 😞

In order to keep track, I'll create an issue if you decide now is not a good time

  • I just updated 🎉🎉

@chrsmutti

Copy link
Copy Markdown
Contributor

Would be great to have some before and after images for front-end changes!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants