chore: version 2026 02 24 1124#3224
Conversation
## What's the purpose of this pull request? Build our default image loader. ## How it works? - When the FastStore image component is used, the `faststoreLoader` is used. - When the Next image component is used directly, the `customImageLoader` is used. - Both have the same behavior when handling images from VTEX (from the file manager/cms and product images) -- they add to the URL the info regarding size, quality and aspect, since those VTEX services already handles optimizations. - The difference between those loaders is regarding external images -- the one used for Next images uses the Next optimizations, and the FastStore one doesn't. It won't be necessary to use a feature flag like `enableVtexAssetsLoader`. ## How to test it? <!--- Describe the steps with bullet points. Is there any external link that can be used to better test it or an example? ---> ### Starters Deploy Preview PR: vtex-sites/faststoreqa.store#881 ## References - [Jira task](https://vtex-dev.atlassian.net/browse/SFS-2878) - [Slack thread](https://vtex.slack.com/archives/C03L3CRCDC4/p1761334946034969)
## What's the purpose of this pull request? Atts.
## What's the purpose of this pull request? This PR fixes a visual bug in the TextareaField component where long text would appear underneath the floating label during scroll, making it difficult to read. The issue was identified during the review of [PR #2705](#2705 (review)). Additionally, comprehensive Storybook documentation was added to showcase all TextareaField variations and use cases. https://github.com/user-attachments/assets/a86cd4df-e286-40f4-82b0-271a8bc66a26 ## How it works? **Bug Fix:** - Added `--fs-textarea-field-label-background-color` CSS variable to `packages/ui/src/components/molecules/TextareaField/styles.scss` - Set default value to neutral-0 (white) to prevent text from showing through the label - When the textarea content is long and the user scrolls, the label now has an opaque background, preventing text overlap ## How to test it? **Test the scroll bug fix:** From the project root: ```bash pnpm --filter "@faststore/storybook" dev ``` Or navigate to the storybook package: ```bash cd packages/storybook pnpm dev ``` Then: 1. Open http://localhost:6006 in your browser 2. Navigate to **"TextareaField"** → **"LargeText"** story 3. Scroll inside the textarea content 4. Verify that the text no longer appears underneath the label ## References - **Related Issue:** [PR #2705 - TextareaField label overlap issue identified](#2705 (review)) - **Task:** [SFS-2385 ](https://vtex-dev.atlassian.net/browse/SFS-2385)
## What's the purpose of this pull request? Revert changes from - #2988 since the approach to filter shopper changes to use text field instead of selected filter in the drawer. ## details remove purchaseAgentId filter and related components from `MyAccountListOrders`. This update removes the purchaseAgentId filter and its associated components from the MyAccountListOrders section. The changes include: - Deleting the MyAccountFilterFacetPlacedBy component and its styles. - Adjusting the MyAccountListOrders and MyAccountSelectedTags components to eliminate references to purchaseAgentId. - Cleaning up related styles and imports to streamline the codebase. These modifications aim to simplify the order filtering process and improve overall maintainability.
## What's the purpose of this pull request? From a current Next.js's known issue ([discussion#44013](vercel/next.js#44013)), these changes aim to add an experimental custom hook to handle scroll restoration when navigating back from PDPs to PLPs. https://github.com/user-attachments/assets/9a452081-4c65-4a83-8c16-9775f97d226d Along with this experimental hook, some adjustments needed to be made to correct the behavior of related components, such as `Sentinel`. While the Next.js experimental `scrollRestoration` flag is not working as it should, we are proposing this FastStore's experimental scroll restoration alternative. ## How it works? While navigating through PLPs and loading more pages, when users navigate to a PDP and navigate back the scroll should be restored to the last position before the navigation. ### Starters Deploy Preview vtex-sites/faststoreqa.store#878 ## References #2054
## What's the purpose of this pull request? Merge the changes from main
## What's the purpose of this pull request? By using the direction property users will be able to use RTL or LTR layouts.
## What's the purpose of this pull request? With these changes, if merchants remove the footer logo the entire footer component will not be hid anymore, it will throw a console error but the component should be displayed with no logo.
#3077) ## What's the purpose of this pull request? This PR fixes the `border-radius` of the Slider thumb in Firefox. The current CSS rule for Mozilla uses an inexistent variable, making the browser render a square instead of a circle: <img width="1028" height="181" alt="image" src="https://github.com/user-attachments/assets/50c08d79-a6a9-4d31-b2e7-5ef9e287080f" /> ## How it works? The `--fs-slider-thumb-radius` variable is replaced by `--fs-slider-thumb-border-radius`, the one that is defined in the default thumb variables. ## How to test it? - Use the `Local Install Instructions` from the [CodeSandbox CI](https://ci.codesandbox.io/status/vtex/faststore/pr/3077) to add this version in the `package.json` of a store. - Import the `Slider` atom (and styles) in a component following the docs: https://developers.vtex.com/docs/guides/faststore/atoms-slider - Run the store in development mode and browse it in Mozilla Firefox. ### Starters Deploy Preview I'm unable to generate a preview link but here's a screenshot from localhost: <img width="1287" height="617" alt="image" src="https://github.com/user-attachments/assets/f0a5a5e9-d657-41db-9415-303b5d17fefd" /> ## Checklist **PR Title and Commit Messages** - [x] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. _(No permissions. It's a bug though.)_ **Dependencies** - [N/A] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [x] PR description - [N/A] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request)
) ## What's the purpose of this pull request? Adds a new "Pending Approval" filter to the MyAccount orders page, allowing users to quickly filter orders that require their approval. ## How it works? - New toggle filter: Added "Pending Approval" as the first filter option in the orders filter slider - Toggle switch: Users can turn on/off the filter to show only pending approval orders - URL integration: Filter state is reflected in the URL (?pendingApproval=true) - Selected tag: When active, shows "Pending my approval" tag below the search bar ## How to test it? - Go to /account/orders - Open filter slider and verify "Pending Approval" is the first option - Toggle the switch and click "Apply" - Check URL - should include ?pendingApproval=true - Verify tag appears - "Pending my approval" tag should show below search bar - Test removal - click "×" on tag or "Clear All" to remove filter - Test direct URL - navigate to /account/orders?pendingApproval=true and verify filter is active ## Starter deploy preview vtex-sites/b2bfaststoredev.store#358 ## References [SFS-2618](https://vtex-dev.atlassian.net/browse/SFS-2618) | List | Filter | | - | - | |  |  | [SFS-2618]: https://vtex-dev.atlassian.net/browse/SFS-2618?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [SFS-2618]: https://vtex-dev.atlassian.net/browse/SFS-2618?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Artur Santiago <artur.santiago@cubos.io>
) ## What's the purpose of this pull request? Fix a bug that occurs when regionalized and `isSessionReady` is sent in the' validateSession' and' validateCart' mutations. ## How does it work? It removes the `isSessionReady` from the session sent to the `setRegion` method. <img width="1909" height="916" alt="Screenshot 2025-11-11 at 16 22 55" src="https://github.com/user-attachments/assets/468cc987-a2ee-432f-b306-399bfd32e891" />
## What's the purpose of this pull request? This PR aims to fix the build in the dev branch.
## What's the purpose of this pull request? With these changes, a loading skeleton will be displayed when product price is still being validated, preventing product price flickering on PDP. ## How to test it? ### Starters Deploy Preview
## What's the purpose of this pull request? Allow svg files in public folder, avoid it getting deleted/overwritten when generating .faststore ## How it works? Add it to the allow list. ## How to test it? Create a svg file or modify an existing svg file, it should be copied correctly to the `/.faststore/public` when running the build command. You can use this PR to test: vtex-sites/faststoreqa.store#887, I've added a new svg file and changed an existing one, before it was being deleted/overwritten. <img width="287" height="420" alt="Screenshot 2025-11-20 at 09 57 19" src="https://github.com/user-attachments/assets/7b01d806-bdf9-4c3b-a385-32ea11ab2518" /> Nothing else should change. ### Starters Deploy Preview - https://storeframework-cm652ufll028lmgv665a6xv0g-h0max2o2h.b.vtex.app/ ## References - [Jira task](https://vtex-dev.atlassian.net/browse/SO-559)
## What's the purpose of this pull request? This PR considers the session when deducing the changes to the orderForm done externally. ## What it aims to solve The current FastStore shows a competing nature when dealing with the same cart on two different devices (E.g. 2 browsers, Chrome and Firefox). ### How to reproduce the problem - Open your store in Chrome and Firefox - Make note of the checkout.vtex.com cookie value of Chrome and view the content of the orderForm using a client like Postman - Paste the value of the cookie to the checkout cookie of Firefox - Now you should have the same orderForm in Chrome, Firefox and Postman - Add an item to the cart from Chrome - Without going to Firefox, verify that the item is present in the orderForm using Postman - Now go to Firefox, but you will not see the item (Expected: the item should be present in the cart, Actual: the browser cart in Firefox will override the items of the real orderForm object) - Open Postman, and you will notice that the item is not present in the orderForm - Now go back to Chrome, and it will add back the item to the orderForm - Open Postman, and you will notice that the item is present in the orderForm ## How it works? We include the session ID to the MD5 hash, so that when the store is used in a different browser with the same orderForm, the two hashes are different. The two browsers should respect the changes performed by each other. ## How to test it? - First verify that the existing behavior of the mutation `validateCart` is as expected. - Follow the steps under **How to reproduce the problem**, and verify that the expected behavior is observed. ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References <!--- Spread the knowledge: is there any content you used to create this PR that is worth sharing? ---> <!--- Extra tip: adding references to related issues or mentioning people important to this PR may be good for the documentation and reviewing process ---> ## Checklist <em>You may erase this after checking them all 😉</em> **PR Title and Commit Messages** - [ ] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. **Dependencies** - [ ] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [ ] PR description - [ ] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request)
## What's the purpose of this pull request? This PR aims to fix the source code to show `undefined` `searchTerm`. <img width="916" height="811" alt="Screenshot 2025-11-20 at 19 01 42" src="https://github.com/user-attachments/assets/b07e44a4-9e37-45e3-9712-6ab19b1af758" /> ## How it works? 1. The source code can't access the searchTerm from the build time; thus, this page uses the default <img width="1899" height="656" alt="Screenshot 2025-11-20 at 18 42 43" src="https://github.com/user-attachments/assets/697d1b4a-e5cb-4325-a5a1-3ba5d429b7b3" /> 2. The final code (runtime code after hydration, you can see the element tab in the devtools), can access the dynamic search term and uses it. <img width="1570" height="1049" alt="Screenshot 2025-11-20 at 18 42 05" src="https://github.com/user-attachments/assets/04e0a613-950f-4416-9200-dcc239326b41" /> ## How to test it? You can run `pnpm build && pnpm serve` and view the source code (right-click> Source Code). Additionally, you can view the final code using the Element tab in the DevTools.
…t` meta tag (#3179) ## What's the purpose of this pull request? With these changes, merchants will be able to choose the the minimum price fraction digits to be used on SEO's product price meta tag, preventing mismatch values between displayed product price and SEO's `product:price:amount`. ## How to test it? Check if the displayed price for any product matches with the SEO's `product:price:amount` meta tag. ### Starters Deploy Preview <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Product price meta tags (used by search engines and social previews) now support configurable decimal precision, producing consistently formatted price values for improved SEO and display. * When no precision is set, prices fall back to previous default formatting to preserve existing behavior. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Lucas Feijó <lucas.portela@vtex.com>
## What's the purpose of this pull request? Adds a CodeRabbit instruction so reviews encourage flat conditionals (early returns / `&&`) instead of nested ifs across all packages. ## How it works? New rule in `path_instructions` in `.coderabbit.yaml`, under the `packages/**/*.ts` block: prefer flat conditionals over nested ifs. ### Starters Deploy Preview N/A
## What's the purpose of this pull request? This PR implements the "Reorder" button feature in the My Account order details page, allowing customers to quickly add all items from a previous order back to their cart with a single click. This improves the shopping experience by reducing friction when customers want to repurchase items they've bought before. ## How it works? The feature consists of: 1. **Reorder Button Component** (`MyAccountReorderButton`): A dedicated button component displayed in the order details header that triggers the reorder action. The button is styled as outlined by default and filled on hover, and is hidden on mobile devices. 2. **Reorder Hook** (`useReorder`): A custom hook that handles the reorder logic: - Extracts all items from the order's delivery options - Converts order items to the format required by the checkout API (`IStoreOffer[]`) - Uses the `validateCart` GraphQL mutation to add items to the cart - The mutation automatically handles cart synchronization (replacing existing items with the reordered items) - Updates the local cart store with the validated cart response - Redirects the user to the checkout page after successfully adding items 3. **Integration Points**: - The reorder button is displayed in the order details header alongside other order actions - A "Reorder" option is also available in the `MyAccountOrderActions` dropdown menu - Both trigger the same `useReorder` hook 4. **Cart Synchronization**: When the user already has items in their cart, the `validateCart` mutation handles the synchronization by replacing all existing cart items with the reordered items from the order. 5. **Redirect to Checkout**: After successfully adding items to the cart, users are automatically redirected to the checkout page using the `redirectToCheckout` utility function, which handles both development and production environments. ## How to test it? 1. Navigate to My Account > Orders 2. Open any completed order details page 3. Verify that the "Reorder" button is visible in the order header (desktop/tablet only) 4. Click the "Reorder" button 5. Verify that: - All items from the order are added to the cart - If there were existing items in the cart, they are replaced by the reordered items - The user is redirected to the checkout page - The cart displays the correct items and quantities 6. Test the "Reorder" option in the dropdown menu (three dots icon) - it should work the same way 7. Test on mobile - the reorder button should be hidden, but the dropdown option should still be available 8. Test with an empty cart and with a cart that already has items ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References - **Figma Design**: https://www.figma.com/design/Jyt5kWamjkdPC8xMfeuWfR/My-Account?node-id=5005-80468&p=f&t=lJwhSHXsKzeNhdUS-0 - **Task**: B2BTEAM-2988 - **Checkout API Documentation**: Used `validateCart` mutation to add items to the cart - Related components: - `MyAccountOrderDetails` - Main order details page - `MyAccountReorderButton` - Reorder button component - `MyAccountOrderActions` - Order actions dropdown - `useReorder` - Reorder functionality hook - `redirectToCheckout` - Checkout redirection utility ## Screenshots <img width="993" height="324" alt="Screenshot 2025-12-11 at 17 55 48" src="https://github.com/user-attachments/assets/033842ed-4769-4de1-8dbe-b8335d25bfc8" /> ## Checklist **PR Title and Commit Messages** - [x] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [x] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. **Dependencies** - [ ] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [x] PR description - [ ] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added reorder flow: a Reorder button in order details and a Reorder item in the actions dropdown to quickly recreate previous orders and proceed to checkout. * Reorder button shows loading/disabled state while processing. * **Bug Fixes / Behavior** * Order actions now render consistently; cancellation remains available only when allowed. * **Style** * Updated styles and responsive behavior for order header actions and the reorder button (hidden on smaller viewports). <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What's the purpose of this pull request?
No contexto do B2B FastStore, clientes corporativos precisam visualizar
informações sobre os budgets alocados em seus pedidos para ter
transparência sobre como os orçamentos foram utilizados. Atualmente,
essas informações não estão disponíveis na página de detalhes do pedido
no My Account, dificultando o acompanhamento financeiro e a gestão de
budgets pelos compradores B2B.
Esta implementação adiciona a exibição dos budgets alocados diretamente
na página de detalhes do pedido, seguindo o mesmo padrão visual dos
outros cards informativos (Payment, Delivery, Summary, etc.),
proporcionando uma experiência consistente e completa para os usuários
B2B.
## How it works?
Esta feature adiciona um novo card `MyAccountBudgetsCard` na página de
detalhes do pedido (`/pvt/account/orders/[id]`) que exibe informações
sobre os budgets alocados ao pedido.
**Implementação técnica:**
1. **GraphQL Schema** (`packages/api/src/typeDefs/userOrder.graphql`):
- Adicionados novos tipos GraphQL para representar a estrutura de dados
de budgets:
- `UserOrderBudgetData`: Container principal com lista de budgets
- `UserOrderBudget`: Informações do budget (id, name, unitId,
cycleConfiguration, balance, allocations)
- `UserOrderBudgetAllocation`: Informações de alocação específica
(linkedEntity, balance, reservations, ToBeSpent)
- `UserOrderBudgetBalance`: Valores financeiros (amount,
balanceAdjustment, remaining)
- `UserOrderBudgetCycleConfiguration`: Configuração do ciclo do budget
- Campo `budgetData` adicionado aos tipos `UserOrder` e
`UserOrderResult`
2. **API Layer** (`packages/api/src/platforms/vtex/resolvers/query.ts`):
- O resolver `userOrder` agora retorna o campo `budgetData` diretamente
da API VTEX OMS
- Os dados são obtidos através do endpoint
`/api/oms/user/orders/${orderId}` que já retorna essas informações
3. **Componente React**
(`packages/core/src/components/account/orders/MyAccountOrderDetails/MyAccountBudgetsCard/`):
- Novo componente `MyAccountBudgetsCard` criado seguindo o padrão dos
outros cards do My Account
- Exibe uma tabela com as seguintes colunas:
- **Name**: Nome do budget (truncado se > 20 caracteres) e IDs das
allocations relacionadas
- **Available**: Valor disponível do budget (baseado na maior
allocation)
- **To be spent**: Valor a ser gasto (balanceAdjustment)
- **Remaining**: Valor restante após o gasto
- O componente processa múltiplos budgets e suas allocations,
selecionando a allocation com maior valor de balance para exibição
- Renderização condicional: o card só é exibido se `budgetData` existir
e contiver budgets com allocations válidas
4. **Integração**
(`packages/core/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderDetails.tsx`):
- O componente `MyAccountBudgetsCard` foi integrado na página de
detalhes do pedido
- Posicionado após o `MyAccountSummaryCard` e antes dos accordions de
delivery options
- Renderização condicional baseada na existência de `order.budgetData`
5. **Query GraphQL**
(`packages/core/src/pages/pvt/account/orders/[id].tsx`):
- Adicionado o fragment `budgetData` na query `ServerOrderDetailsQuery`
para buscar todas as informações necessárias dos budgets
**Comportamento:**
- O card só aparece quando há budgets alocados ao pedido
- Valores são formatados usando a moeda do pedido (`currencyCode`)
- Se não houver budgets ou allocations válidas, o card não é renderizado
(fail-safe)
<img width="1149" height="1231" alt="Screenshot 2025-12-10 at 10 14 45"
src="https://github.com/user-attachments/assets/ba562900-ea8b-428d-9475-025598e72738"
/>
## How to test it?
### Pré-requisitos:
- Ter acesso a uma conta VTEX B2B com budgets configurados
- Ter um pedido que utilize budgets alocados
### Passos para teste:
1. **Configurar ambiente de desenvolvimento:**
```bash
pnpm install
pnpm dev
```
2. **Acessar a página de detalhes do pedido:**
- Fazer login no My Account
- Navegar para `/pvt/account/orders`
- Selecionar um pedido que tenha budgets alocados
3. **Verificar a exibição do card de budgets:**
- O card "Budgets" deve aparecer após o card "Summary"
- Verificar se os valores estão sendo exibidos corretamente:
- Nome do budget truncado corretamente se > 20 caracteres
- Valores formatados na moeda correta
- IDs das allocations exibidos na linha secundária do nome
- Verificar se os cálculos estão corretos:
- Available: valor disponível
- To be spent: valor do balanceAdjustment
- Remaining: valor restante
4. **Testar casos edge:**
- Pedido sem budgets: o card não deve aparecer
- Budget sem allocations: o card não deve aparecer
- Múltiplos budgets: todos devem ser exibidos na tabela
5. **Verificar responsividade:**
- Testar em diferentes tamanhos de tela
- Verificar se a tabela se adapta corretamente
### Starters Deploy Preview
<!--- Adicionar link do deploy preview quando disponível --->
## References
**Task relacionada:**
- [B2BTEAM-2726](https://vtex-dev.atlassian.net/browse/B2BTEAM-2726) -
Exibir budgets alocados no detalhe do pedido do myaccount
**Documentação:**
- [Documento de
produto](https://docs.google.com/document/d/1CG9RZ-lmD01-C4q3OwIdXaoMTAsUqHEse2yqH1cxskI/edit?tab=t.0#heading=h.tglo77yl0lf5)
- [FastStore My
Account](https://docs.google.com/document/d/17qlQerzx3cva2dupafbEaJhsu_aLLuxFf6IniVIwRBM/edit?pli=1&tab=t.0)
- [FastStore - My Account
Vision](https://docs.google.com/document/d/17Zjk_5mydxLuWiYAyQhucLXQ0Z5n4YNcZmuED8-ZG3I/edit?tab=t.0#heading=h.tglo77yl0lf5)
- [Building My
Account](https://developers.vtex.com/docs/guides/faststore/my-account-overview)
- [My Account - Extensibilidade de
páginas](https://docs.google.com/document/d/1qVc6PBv8s19HIvG-IwGVgKRM720mY46WEBURO9253Sg/edit?tab=t.0)
- [My Account - FastStore - Extensibilidade de
sections](https://docs.google.com/document/d/1iIUm8dO01YK5ssoUW0h5-Ygc1_YrbDFy1BjzuyZOpK4/edit?tab=t.0#heading=h.tglo77yl0lf5)
**Relacionado:**
- [B2BTEAM-2724](https://vtex-dev.atlassian.net/browse/B2BTEAM-2724) -
Task relacionada que serviu de referência para esta implementação
## Checklist
<em>You may erase this after checking them all 😉</em>
**PR Title and Commit Messages**
- [x] PR title and commit messages follow the [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification
- Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`,
`refactor`, `ci` and `test`
**PR Description**
- [x] Added a label according to the PR goal - `breaking change`, `bug`,
`contributing`, `performance`, `documentation`..
**Dependencies**
- [ ] Committed the `pnpm-lock.yaml` file when there were changes to the
packages
**Documentation**
- [x] PR description
- [ ] For documentation changes, ping `@Mariana-Caetano` to review and
update (Or submit a doc request)
---
[B2BTEAM-2726]:
https://vtex-dev.atlassian.net/browse/B2BTEAM-2726?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Order details pages now display comprehensive budget information
including allocated budgets with cycle dates and auto-reset options,
current balance amounts, reserved amounts across allocations, calculated
available funds, balance adjustments, and enhanced responsive table
layouts optimized for mobile and desktop viewing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Eduardo Formiga <eduardo.formiga@gmail.com>
Co-authored-by: Larícia Mota <laricia.mota@vtex.com.br>
Co-authored-by: Matheus P. Silva <cout.matheusps@gmail.com>
Co-authored-by: Leandro Rodrigues <leandro.swf@gmail.com>
Co-authored-by: vtexgithubbot <vtexgithubbot@github.com>
Co-authored-by: Lucas Feijó <lucas.portela@vtex.com>
Co-authored-by: Luiz Falcão <39093175+llfalcao@users.noreply.github.com>
Co-authored-by: Artur Santiago <artur.santiago@cubos.io>
Co-authored-by: Sahan Jayawardana <sahan@clouda.io>
Co-authored-by: Mateus Pontes <mateuspo10@gmail.com>
Co-authored-by: Matheus Martins <mathews_2010@outlook.com>
Co-authored-by: renatomaurovtex <167437775+renatomaurovtex@users.noreply.github.com>
Co-authored-by: Leandro Rodrigues <leandro.rodrigues@vtex.com>
Co-authored-by: Fanny Chien <fanny.chien@vtex.com>
## Summary - Replace hardcoded version references (`^3.97.0-dev.2`) with `workspace:*` protocol for `@faststore/components` and `@faststore/ui` in `packages/ui/package.json` and `packages/storybook/package.json` - This ensures local packages are always resolved from the monorepo workspace during development ## Motivation Extracted from PR #3117 as requested in [code review](#3117) by @lariciamota, so we can identify possible problems easier by isolating this change. ## Changed files - `packages/ui/package.json` — `@faststore/components` dependency and peerDependency changed to `workspace:*` - `packages/storybook/package.json` — `@faststore/components` and `@faststore/ui` dependencies changed to `workspace:*` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Switched internal package references in Storybook and UI to workspace-based declarations to improve build consistency. * Aligned dependency declarations across the monorepo to reduce version mismatch risks and streamline local development and local testing. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Larícia Mota <laricia.mota@vtex.com.br>
## What's the purpose of this pull request? When `redirectPath` contains a query string (e.g. /test?id=1), the preview cookie's path attribute was being set to the full string including the query. Since the HTTP Set-Cookie Path attribute only supports URL paths, the query string portion was causing the cookie to not be scoped correctly, breaking preview mode for those routes. ## How it works? Removes the query string from `redirectPath` before assigning it to `options.path` in `setPreviewAndRedirect`. This ensures the cookie Path is always a clean URL path (e.g. /test instead of /test?p=1). The query string is still preserved in the `res.redirect(redirectPath)` call, so the user is redirected to the correct URL with all query parameters intact — only the cookie scoping is affected. ## How to test it? On `storeframework` hCMS I've created a draft for the search page: <img height="250" alt="hCMS" src="https://github.com/user-attachments/assets/20c3114b-d685-44e3-911a-1dae847dd4c8" /> To test it, run this branch's code or use the starters deploy preview (https://sfj-2cf1e42--faststoreqa.preview.vtex.app) and: - Call the preview API route, e.g.: /api/preview?contentType=search&documentId=332345a3-2a79-421d-bce0-7400c82b47e6&versionId=169b9294-4bf1-4b52-a37d-e7811f158bf5 - Verify that the preview mode cookies (`__prerender_bypass` and `__next_preview_data`) are set with Path without the query string - Verify that the browser is redirected to the path with the query string preserved as it is configured in the `previewRedirects` of the store (for the `storeframework` account for example it's configured as `search: "/s?q=headphone"`) - Verify that preview mode works correctly on the target page | With this change | Without this change | | ----- | ----- | | <img width="1608" height="1034" alt="with" src="https://github.com/user-attachments/assets/8fc0cefc-3275-4e6b-b331-617db8b104f9" /> https://sfj-2cf1e42--faststoreqa.preview.vtex.app/api/preview?contentType=search&documentId=332345a3-2a79-421d-bce0-7400c82b47e6&versionId=169b9294-4bf1-4b52-a37d-e7811f158bf5 | <img width="1605" height="1034" alt="without" src="https://github.com/user-attachments/assets/1b0d262c-076d-4ccf-8af4-fbbb088e235e" /> https://storeframework.vtex.app/api/preview?contentType=search&documentId=332345a3-2a79-421d-bce0-7400c82b47e6&versionId=169b9294-4bf1-4b52-a37d-e7811f158bf5 | | Note that the cookies are being set with the path **without** the query string and that the change in hCMS (text "Results Preview test") is being shown | Note that the cookies are being set with the path **with** the query string and that the change in hCMS is **not** being shown | ### Starters Deploy Preview https://sfj-2cf1e42--faststoreqa.preview.vtex.app/ ([PR](vtex-sites/faststoreqa.store#894)) ## References - [Jira task](https://vtex-dev.atlassian.net/browse/SO-576) - [Next.js docs — `setPreviewData` options](https://nextjs.org/docs/pages/building-your-application/configuring/preview-mode#specify-the-preview-mode-duration)
|
Caution Review failedThe pull request is closed. Warning Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories. ℹ️ Recent review infoConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (6)
📒 Files selected for processing (38)
WalkthroughAdded budget data to order details with a new UI card displaying budget allocations and remaining balances. Introduced a reorder feature allowing customers to quickly repurchase previous orders. Enhanced third-party script integration with optional console logging for debugging GTM and VTEX events. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant Button as MyAccountReorderButton
participant Hook as useReorder Hook
participant API as GraphQL API
participant CartStore as Cart Store
participant Checkout as Checkout
User->>Button: Click Reorder
Button->>Hook: reorder(order)
Hook->>Hook: Validate order & flatten items
Hook->>API: Execute ValidateCartMutation
API->>Hook: Return validated orderNumber & cart
Hook->>CartStore: Update cart with new ID & items
Hook->>Checkout: redirectToCheckout(orderNumber)
Checkout->>User: Navigate to checkout with order params
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
This PR aims to generate a new version from dev to main. --------- Co-authored-by: Larícia Mota <laricia.mota@vtex.com.br> Co-authored-by: Matheus P. Silva <cout.matheusps@gmail.com> Co-authored-by: Leandro Rodrigues <leandro.swf@gmail.com> Co-authored-by: vtexgithubbot <vtexgithubbot@github.com> Co-authored-by: Lucas Feijó <lucas.portela@vtex.com> Co-authored-by: Luiz Falcão <39093175+llfalcao@users.noreply.github.com> Co-authored-by: Artur Santiago <artur.santiago@cubos.io> Co-authored-by: Sahan Jayawardana <sahan@clouda.io> Co-authored-by: Mateus Pontes <mateuspo10@gmail.com> Co-authored-by: Matheus Martins <mathews_2010@outlook.com> Co-authored-by: renatomaurovtex <167437775+renatomaurovtex@users.noreply.github.com> Co-authored-by: Leandro Rodrigues <leandro.rodrigues@vtex.com> Co-authored-by: Fanny Chien <fanny.chien@vtex.com> Co-authored-by: Arthur Andrade <arthurfelandrade@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This PR aims to generate a new version from dev to main. --------- Co-authored-by: Larícia Mota <laricia.mota@vtex.com.br> Co-authored-by: Matheus P. Silva <cout.matheusps@gmail.com> Co-authored-by: Leandro Rodrigues <leandro.swf@gmail.com> Co-authored-by: vtexgithubbot <vtexgithubbot@github.com> Co-authored-by: Lucas Feijó <lucas.portela@vtex.com> Co-authored-by: Luiz Falcão <39093175+llfalcao@users.noreply.github.com> Co-authored-by: Artur Santiago <artur.santiago@cubos.io> Co-authored-by: Sahan Jayawardana <sahan@clouda.io> Co-authored-by: Mateus Pontes <mateuspo10@gmail.com> Co-authored-by: Matheus Martins <mathews_2010@outlook.com> Co-authored-by: renatomaurovtex <167437775+renatomaurovtex@users.noreply.github.com> Co-authored-by: Leandro Rodrigues <leandro.rodrigues@vtex.com> Co-authored-by: Fanny Chien <fanny.chien@vtex.com> Co-authored-by: Arthur Andrade <arthurfelandrade@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
What's the purpose of this pull request?
This PR aims to generate a new version from dev to main.
Summary by CodeRabbit
New Features
Bug Fixes