Commit Graph

6912 Commits

Author SHA1 Message Date
Seghir Nadir 8295416732
Support controlling address card state from data store in Checkout block (#51386)
* fix line height

* Support controlling address card from data store

* expand billing address on unsync

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* disable linter rule

* remove empty section

* remove used vars

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-18 16:22:08 -07:00
Manish Menaria 5668fb9ea2
Product Collection - Add Editor UI for missing product reference (#51114)
* Initial implementation of the missing product state

- Changed `getProductCollectionUIStateInEditor` to a hook `useProductCollectionUIState`.
	- As we added logic to check if selected product reference is deleted which require making an API call. Therefore, I decided to use a hook.
- While making an API call to check if product reference is deleted, I decided to show spinner in the block.
- Introduced new UI state `DELETED_PRODUCT_REFERENCE` to handle the missing product state.
- Updated existing `ProductPicker` component to handle the new UI state.
	- It's better to use existing component for the missing product state, as it already has all the required UI.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Use getEntityRecord to check if product exists and other improvements

* Remove console log

* Add E2E tests for deleted product reference in Product Collection block

This commit introduces new E2E tests to verify the behavior of the Product
Collection block when dealing with deleted product references. The changes
include:

1. New test suite in register-product-collection-tester.block_theme.spec.ts
2. Modification to product-collection.page.ts to support custom product selection
3. Minor update to utils.tsx to handle trashed products

These tests ensure that the Product Collection block correctly handles
scenarios where referenced products are deleted, trashed, or restored,
improving the overall reliability of the feature.

* Simplify product creation in Product Collection block test

* Refactor E2E test for delete product reference picker

1. Removing the unnecessary `test.describe` block for "Deleted product reference"
2. Eliminating the `beforeEach` hook that was creating a test product
3. Integrating the test product creation directly into the main test

This change simplifies the test structure and improves readability while
maintaining the same test coverage for the Product Collection block's
behavior when dealing with deleted or unavailable products.

* Simplify logic for product collection UI state

This commit simplifies the handling of the `usesReference` prop in the
Product Collection block:

1. In `edit/index.tsx`, directly pass `usesReference` to
   `useProductCollectionUIState` hook without conditional spreading.

2. In `utils.tsx`, update the type definition of `usesReference` in the
   `useProductCollectionUIState` hook to explicitly include `undefined`.

* Refactor Product Collection block to improve prop passing

- Introduce ProductCollectionContentProps type for better prop management
- Refactor Edit component to use a renderComponent function
- Update component prop types to use more specific props
- Remove unnecessary props from ProductCollectionEditComponentProps
- Simplify component rendering logic in Edit component
- Adjust ProductPicker to receive only required props
- Update imports and prop types in various files to use new types

This refactoring improves code organization and reduces prop drilling by
only passing necessary props to each component. It enhances maintainability
and readability of the Product Collection block and related components.

* Refactor Product Collection block editor UI state handling

This commit simplifies the rendering logic in the Product Collection block's
Edit component. It removes a redundant case for the VALID state, as both
VALID and VALID_WITH_PREVIEW states now render the same ProductCollectionContent
component. This change improves code maintainability and reduces duplication.

* Fix: isDeletedProductReference is not set correctly

* Use "page.reload" instead of "admin.page.reload"

* Separate PRODUCT_REFERENCE_PICKER and DELETED_PRODUCT_REFERENCE cases

This improves readability and maintainability of the switch statement.

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-18 16:22:06 -07:00
Albert Juhé Lluveras 877b2dca7a
Fix fatal when adding the Product Gallery (Beta) block into a pattern (#51189)
* Fix fatal when adding the Product Gallery (Beta) block into a pattern

* Add changelog file

* Linting
2024-09-18 16:20:51 -07:00
Karol Manijak c690dea84d
Hide more filters in scope of handpicked through hideFilters API 2024-09-18 16:20:51 -07:00
Karol Manijak f8a18cfe83
Improve empty state in Editor by providing meaningful instruction 2024-09-18 16:20:24 -07:00
Karol Manijak 3a3927676a
Set perPage to 0 and add Pagination block for better discoverability 2024-09-18 16:20:24 -07:00
Bart Kalisz 31775d6835
Improve the query merging logic 2024-09-18 16:15:43 -07:00
Bart Kalisz 2690191cbe
Enable sorting by entered order 2024-09-18 16:13:08 -07:00
Bart Kalisz 17eb0fe113
Update titles and description 2024-09-18 16:11:32 -07:00
Bart Kalisz fa83d18545
Revert "Set control label per context"
This reverts commit cd537befbe.
2024-09-18 16:11:32 -07:00
Bart Kalisz 88e04f1b3a
Hide 'order by' control for the Hand-Picked collection 2024-09-18 16:11:32 -07:00
Bart Kalisz 16bb48c5a0
Use primitives for the icon 2024-09-18 16:11:32 -07:00
Bart Kalisz 44a0ac8544
Set control label per context 2024-09-18 16:11:32 -07:00
Bart Kalisz 155705aa78
Remove timeFrame from the query 2024-09-18 16:11:31 -07:00
Bart Kalisz 50bec181e1
combine conditions for early return 2024-09-18 16:11:31 -07:00
Bart Kalisz ac60428bc9
tweak icon render 2024-09-18 16:11:31 -07:00
Bart Kalisz 423cdce744
add back 2024-09-18 16:11:31 -07:00
Bart Kalisz 6da175824b
try removing for fixing gh syntax hl 2024-09-18 16:11:31 -07:00
Bart Kalisz 7d13eb669d
Render the collection-specific control 2024-09-18 16:11:31 -07:00
Bart Kalisz 54a648e5a8
Initialize the Hand-Picked collection 2024-09-18 16:11:29 -07:00
Christopher Allford 6ca720708b
Merge branch 'trunk' into add/49335-related-products-collection 2024-09-16 12:45:15 -07:00
Seghir Nadir 1ef1aaa1f0
Hadren styles for interactive elements in Checkout block (#51375)
* reset styles for panel button

* reset styles for address card edit and address line 2

* Update shipping selector buttons

* fix line height

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* remove extra styles no longer needed

* update styles to balance chevron and change to span

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alex Florisca <alex.florisca@automattic.com>
2024-09-16 13:03:20 +00:00
Seghir Nadir 77a17e48b7
update Mongolia postcode to be 5 digits instead of 6 in Checkout block (#50279)
* update Mongolia postcode to be 5 digits instead of 6

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* update validation package and expand mongolia checks

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* update lock

* fix lock again

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-16 11:22:38 +02:00
Fernando Marichal ae20724210
Add inspector controls to Product Search block (#51247)
* Add inspector controls to product search

* Add changelog

* Move inspector panel to Styles

* Remove not used Fragment

* improve code

* Rename enum

* Rename type ProductSearchBlockProps

* Use PositionOptions constant

* Change hook namespace
2024-09-13 18:52:12 -03:00
Tung Du 93053f39ed
[Experimental] Product Filters: New and improved blocks structure (#51096) 2024-09-14 00:04:06 +07:00
Fernando Marichal ce618d6250
[Enhancement] Abstract rating block (#50810)
* Create rating component

* Refactor rating block

* Fix ProductRating component

* Refactor rating blocks

* Add changelog

* Review count maybe visible for rating stars

* Rename props

* Remove 0 after No reviews message

* Remove review count from rating-stars
2024-09-13 09:35:56 -03:00
Seghir Nadir 348455fb02
Add focus styles for select in Checkout block (#51332)
* Add focus styles for select

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-13 11:13:40 +01:00
Seghir Nadir 1b28b0f1ca
Use site language when making Store API requests in Cart/Checkout (#51244)
* Use correct langauge by reseting the locale param

* use typescript
2024-09-13 11:42:21 +02:00
Sam Seay 268fc4cf4d
Fix a bug where the guest order confirmation email input was too wide (#51277)
* Add styles to style the input width appropriately.

* Remove redundant styles.

* Remove unused import

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-13 13:22:55 +12:00
Christopher Allford 750e4723a1
Updated Collection Heading 2024-09-12 09:49:53 -07:00
Christopher Allford d53df24528
Merge branch 'trunk' into add/49335-related-products-collection 2024-09-12 06:57:35 -07:00
Mike Jolley b0401ef25d
[Experimental] Delayed Account Creation Block (#50934)
* Add block to templates

* Register block type with php

* Create block type class

* Update webpack

* Move password strength meter component

* Add button styles when disabled

* Move password strength component

* Block WIP

* CSRF token handling

* Put new block behind feature flag

* Add experimental flag docs

* Update icon + description

* Changelog

* Lint errors

* Style controls

* Adjust icon markup

* subsctring match

* More specific import

* Fix test fail caused by layout shift

* Wording changes from Figma

* Check if logged in, not just if the current email is registered

* Use opacity for disabled button text

* Sync order data with customer after account creation

* Add id/fragment to form
2024-09-12 11:18:13 +01:00
Karol Manijak ed9742f18b
Skip failing tests from experimental Product filters feature (#51305)
* Skip failing tests from experimental feature

* Add changelog
2024-09-12 10:37:51 +02:00
Christopher Allford 47d8a139db
Merge branch 'trunk' into add/49335-related-products-collection 2024-09-11 23:47:59 -07:00
Roy Ho 41cf2b285e
[Experimental] Product filters/overlay nav block redesign (#51211)
* Remove overlay icon settings from parent block

* Change overlay block icon to generic button icon

* Add logic to remove overlay nav when overlay mode is set to never

* Add logic to add overlay nav when overlay mode is not never

* Add default attributes for overlay nav button

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Use unique icons for each overlay navigation close and open

* Add icon picker for open overlay navigation

* Add trigger type for overlay close navigation

* Add missing settings label

* Fix e2e tests

* Skip a test for overlay-navigation block

* Add e2e tests for overlay button behavior

* Fix linting error

* Skip overlay nav tests

* Fix icon size value not saving

* Revise logic to target explicitly the innerblock of product-filters

* Ensure overlay navigation is of type open-overlay

* Prevent possible race conditions

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-11 12:11:51 -07:00
Alexandre Lara 0b16cfa06a
[Experimental] Product Filters Redesign > Overlay: Add Fullscreen view (#50505)
* Add variation to Product Filters Overlay Navigation

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Move Product Filters Overlay Navigation to correct position

* Hide block when it is outside the Product Filters template part

* Display Navigation block in the frontend

* Show the Product Filters Overlay Navigation on the frontend

* Add logic to hide Product Filters Overlay Navigation block on the frontend

* Hide block on the Overlay template part

* Fix eslint errors

* Update the block variation title

* Remove the `isActive` property from the block variations

* Use Product Filters block context

* Replace enum with const

* Remove unnecessary `StyleAttributesUtils`

* Rename context key

* Move BlockOverlayAttribute to the constants.ts file

* fix BlockOverlayAttribute import

* Fix import error

* Improve code for the shouldHideBlock method

* Remove unnecessary attributes property

* Fix error in ProductFiltersOverlay block

* Add dialog to the Product Filters block

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Fix interactivity api error

* Prevent block from being hidden on Product Filters template part

* Fix inspector controls when block is hidden

* Add clickable action to the Product Filters Overlay Navigation block

* Fix interactivity directives that were not working for the Overlay

* Fix issue with dialog styles not being correctly applied

* Add the `closeDialog` functionality

* Parse and render blocks for the Product Filters overlay

* Fix padding

* Fix style for Product Filters Overlay navigation block

* Add e2e test

* Add e2e test to Product Filters Overlay template part

* Fix e2e test

* Fix issue causing the trigger button to show even though the overlay mode is set to 'Never"

* Fix issue causing close button to not be displayed in the dialog

* Add e2e tests

* Fix issue that was preventing users from scrolling down the dialog content

* Remove text duplication in e2e tests

* Remove unnecessary imports

* Fix php cs errors

* Fix php cs error

* Revert changes on Product Gallery modal styles

* Fix lint errors

* fix php cs lint errors

* fix php cs error

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-11 11:30:35 -03:00
Seghir Nadir 96497814e4
Revert update to createRoot in Checkout block. (#51289)
* Revert "[React 18] Use `createRoot().render()` instead of `render()` (#48843)"

This reverts commit 752273e6ce.

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-11 13:44:09 +00:00
Fernando Marichal e4f03589ab
Deprecate single product block save (#51153)
* Add deprecated save

* Fix button styles

* Add changelog

* Add attributes to deprecated prop

* Add supports prop to deprecated obj

* Add code comment
2024-09-11 09:54:43 -03:00
Christopher Allford 2f85a455cf
Merge branch 'trunk' into add/49335-related-products-collection 2024-09-11 01:30:02 -07:00
Christopher Allford 440cdba53e
Pass Collection Name To Final Query 2024-09-11 01:24:10 -07:00
Chi-Hsuan Huang 057e118a34
Fix size for coming soon banner login button (#51251)
* Fix coming soon banner login button style

* Add changelog
2024-09-11 13:47:02 +08:00
Christopher Allford aa1ffdcecd
Removed `woocommerceRelatedTo` Param
Since we're going to use the collection name, we don't need
this functionality any longer.
2024-09-10 20:49:30 -07:00
DAnn2012 b72e07c605
Fix typos (WooCommrece) (#50333)
* Update README.md

* Update 722.md

* Update 741.md

* Update docs-manifest.json

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Roy Ho <roykho77@gmail.com>
2024-09-10 08:15:36 -07:00
Thomas Roberts 72112bd5d4
Update shipping calculator wording and Cart/Checkout order summary title (#51072)
* Update isAddressComplete to allow only specific fields to be checked

* Update tests for isAddressComplete

* Update wording on "enter address" prompt in Cart sidebar

* Update Shipping to Delivery in cart & checkout shipping total

* Only check the city, state, country, & postcode fields in shipping calc

* Update wording in the "Ships to" section of cart/checkout sidebar

* Update shipping calculator button to say delivery

* Update tests to use new strings

* Remove test that was falsely passing anyway

This test checked for presence of a string that wasn't in the codebase. It also doesn't seem like a valid test. Why would we want to remove the button just because default rates are available?

* Add changelog

* Left align text in shipping calculator button

It floats weirdly in the middle with the new text changes

* Update text in tests

* Update wording in unit tests

* Update shipping calculator text in test

* Update shipping text in test

* Update use of shipping in tests

* Skip test with no translation available

* Lint fixes

---------

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2024-09-09 15:19:57 +02:00
Roy Ho 63243c57a9
[Experimental] Product filters > Attributes loading state in editor (#51151)
* Fix no products component prematurely being rendered

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Use useMemo to memoirize component element on re-renders

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-06 05:33:02 -07:00
Christopher Allford 7aeb4052d2
Removed Unnecessary Keyword 2024-09-05 09:27:09 -07:00
Karol Manijak a7231863c0
Product Collection: Trigger `wc-blocks_viewed_product` JS event (#51156)
* Define the event

* Add action sending an event in PC store

* Add directives and context to Product Template li element

* Use on--click directive in ProductImage

* Use on--click directive in Product Title

* Use on--click directive in Product Button

* Add changelog

* Add E2E tests

* Update docs

* Update blocks reference and docs manifest

* Update m,anifest

* Fix mistake in docs

* Regenerate docs manifest

* Fix lint

* Extractb new tests to a separate file
2024-09-05 12:52:35 +02:00
Christopher Allford dc60be1228
Merge branch 'trunk' into add/49335-related-products-collection 2024-09-04 10:38:45 -07:00
Roy Ho b618f81c6d
[Experimental] Product filters - ensure we can add multiple instances (#51051)
* Product filters ensure we can add multiple instances

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

* Add e2e tests to ensure multiple filters can be added

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-09-04 05:39:07 -07:00
Christopher Allford caf9ec635e
Use PHP 7.4 for WooCommerce Blocks' `wp-env` Config (#51075)
This resolves a PHP 7.4 compatibility problem as well as updates the `wp-env` config for the Blocks tests to use 7.4 rather than the latest.
2024-09-03 09:54:22 -07:00