* Remove Single Product Block
* remove more files that belong the Single Product block
* fix php linter error
* remove Product Tag List and Product Category List blocks
* Prevent checkout when no shipping rates available
- Add the validation error in ShippingSelector to prevent checkout when no shipping rates available.
- Add notice to Checkout processor so that notice appears after clicking on place order button.
* Fix TypeScript error in checkout shipping method block
- Make multiple prop as optional in RatePrice component to fix TypeScript error.
* Product Search Results: fix the preview when the Inherit Query option is enabled
* create a component to make the code more readable
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Fix local pickup price in the shipping type selector
- While calculating min and max value for local pickup, if the rate is not for local pickup, it will take already calculated lowest value instead of comparing it with the value of other shipping rate.
* Add the typecasting for price and tax to fix tax calculation
- We were concatenating the two strings instead of adding the integers. Add the typecasting for price and tax to fix it in local pickup.
---------
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Add `renderInCartAndCheckout` attribute and toggle
* Show setting only when inserted in a template
* Don't render the mini-cart if the setting is disabled
* Stop rendering the mini-cart if the setting is false
* method to snakecase
* Make the attribute a string
In the future we may want to add more rendering styles, so a boolean wasn't the
best option, a string will allowed us more than two options
* Change toggle copy
* Add ExperimentalOrderLocalPickupPackages slot fill
* Render ExperimentalOrderLocalPickupPackages in local pickup block
* Update docs to include ExperimentalOrderLocalPickupPackages
* Use LocalPickupSelect component when rendering local pickup options
* Add CartCheckoutUtils class
This class will store reusable methods relating to Cart/Checkout Blocks, i.e. whether they are used on the Cart/Checkout page.
* Update ShippingController to use the new CartCheckoutUtils function
This will reduce code duplication when checking if the Cart/Checkout blocks are in use on the Cart/Checkout page.
* Add filter to remove shipping settings when Cart/Checkout are default
* Ensure setting displays correctly if cart is default but not checkout
* Add tests to ensure core shipping settings update correctly
* Add setCartCheckoutPages function to update set the cart/checkout page
* Force shipping to be enabled if the Checkout block is in use.
* Add filter to override cost requires address option
* Add shippingCostRequiresAddress option
* Check if the address is required before showing rates
* Show shipping rates in editor
* Add shippingCostRequiresAddress attribute to shipping methods block
* Update frontend type to show shippingCostRequiresAddress is a prop
* Add control to toggle shippingCostRequiresAddress option
* Show address notice in the correct scenario
* Send shippingCostRequiresAddress to Block in front end context
* Add e2e test for editor control
* Add e2e tests for shipping options on the front end
* Add updateAttributeInSiblingBlock function
* Add shippingCostRequiresAddress to shipping method block
* Ensure attribute is updated in both blocks when editing
* In Shipping Methods Block, show correct component based on block setting
* Show correct block in editor
* Remove broken test from PR
* Clean up updateAttributeInSiblingBlock
* Add setCartCheckoutPages function to update set the cart/checkout page
* Add tests to ensure core shipping settings update correctly
* Add isAddressComplete function
Borrowed from woocommerce/woocommerce-blocks#8141
* Check if the address is required before showing rates
* Show shipping rates in editor
* Show address notice in the correct scenario
* Add e2e tests for shipping options on the front end
* Ensure errorId is passed to StateInput
* Add fullShippingAddressPushed action to wc/store/cart
* Add fullShippingAddressPushed case to reducer
* Ensure fullShippingAddressPushed is set when initialising cart store
* Add fullShippingAddressPushed selector and default state entry
* Add shippingAddressHasValidationErrors util function
* Do not overwrite addresses when selecting a rate
* Set whether full address has been pushed when saving address changes
* In Shipping Methods Block, show correct component based on block setting
* Don't show from price if rates should be hidden until address entered
* Check city validation errors to assert if shipping address is valid
* Rename merchant.js to merchant.ts
* Move local pickup functions to common merchant util
* Update local pickup tests to use common merchant utils
* Add test to ensure setting toggles in both blocks
* Add navigating to settings and saving in merchant util
* Create addPickupLocation merchant util
* Add test for local pickup and require full address
* Make sure correct conditions are met to show shipping options
* Ensure checkbox is checked during local pickup tests
* Unset the checkbox when tests are finished running
* Update checkout block fixture
* Prevent error in unit tests
* Import validation store key from constants
Required because importing from the index causes the validation data store to register twice
* Update checkout terms test to wait for button not to be disabled
* Revert "Add isAddressComplete function"
This reverts commit 9967dc0d4f10cf638859ae085e6f4cc2901dd299.
* Fix up typescript of checkout filters
* Clear cached values when adding new filters
* Allow href on WPButton type
* Specify generic type of getSetting for checkout page link
* Apply filters to Proceed to Checkout button
* Add unit tests for proceed to checkout button and link filters
* Make cart extend a plain object
* Pass cart in args for proceed to checkout filters
* Add documentation for proceed to checkout filters
* Add unit test for multiple filter registration
* Change word to bump stuck GitHub actions
* Apply consistent casing to test names
* Add border support to mini cart contents
* Fix buttons in firefox when logged out
* Fix mini cart in all browsers
* Fix border not visible on mobile because of the admin bar
* Add feature flag to the experimental border
---------
Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>
* Product Rating: Normalize the height of rating icons and the Add review link
* Products: Update inner blocks margins.
* Product Rating: Remove css changes from this PR.
* Products patterns: Remove px values and update the default pattern template.
---------
Co-authored-by: Manish Menaria <the.manish.menaria@gmail.com>
* Make Mini Cart drawer close button inherit the color
* Fix Mini Cart drawer close button alignment
* Increase opacity when Mini Cart drawer close icon is hover, focused or active
This PR is meant to improve the UI and UX behind the Attributes filter
within the Inspector Controls of the “Products (Beta)“ block.
Also included:
* Refactor `useProductAttributes` hook
* Move it into the shared hooks.
* Fetch both terms AND attributes via the API (previously,
we got the attributes from the settings, but we'd get
partial objects compared to the API? Maybe a follow-up
to this could be to check why the attributes stored in
the settings are incomplete?)
* Make sure the return values match the ones expected
from search items.
* Remove attribute-related types from PQ directory
* Improve functionality of `SearchListControl`
* Allow the search input to be a Token based input.
* Allow for search input to search even collapsed properties.
* Use core `CheckboxControl` instead of radio buttons for
items having children (includes undeterminated state).
* Enable removal of tokens from the input
* Improve styles:
* Refactor classnames for `SearchItem`.
* Add more semantic classes.
* Align count label and caret to the right.
* Make caret switch direction on expanded.
* `cursor: pointer` on collapsible items.
* Indent children of collapsible items.
* Correctly pass through class names to search item
* Enable keyboard navigation for collapsible items
* Add link to manage attributes
* Change label inside the inspector controls
* Make search list attached when token type
* Implement more sophisticated behavior of parent checkbox
* If indeterminate or unchecked, it will check all children.
* If checked, it will uncheck all children.
* Remove hardcoded `isSingle` from `expandableSearchListItem`
* Remove old view switcher component (not used)
* Switch in list view
* useSelect
* Optional selection of parent block on changing view
---------
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
* Make the customer account icon bigger to match the mini-cart one
* Add variation to increase the icon size for new blocks
* Improve class name
* Add variation explanation
* Add default attributes
* Extract a blockified Product Archive Template to the templates
* Add templates to tsconfig.json so the files are resolved as part of the core code
* Add a encouragement note to use blockified version IF migration is available
* Add a Row block wrapping Product Results Count and Catalog Sorting blocks
* Move blockified product-archive from templates/ to assets/ directory
* Remove unnecessary margin from Product Results Count block
When used in a Row block in a blockified Archive Product template, Product Results Count had additional unnecessary margin which caused misalignment with the Catalog Sorting block
* Update the description of the Classic Template Editor placeholder
* Remove unnecessary entry in tsconfig.json to include templates directory
It was added couple of commits earlier, since the template was kept there, but it was decided to move it to assets directory, so entry is no longer necessary
* Differentiate the Classic Template placeholder description depending on the availability to convert to Products block
* Set margin for Catalog Sorting to 0, so it aligns properly when used in blockified Archive Product template
* Make the blockification config, so it covers the Product Archive as well as Single Product templates
* Move the product-archive specific functions from classic-template/index.tsx to the product-archive.ts
* Add alignment option to the Store Notices block and make the blockified template blocks aligned wide
That is required, so the Classic Template layout is preserved
* Create single-product.ts file which is a placeholder for the blockified Single Product template
* Make Blockified Product Archive template inherit the align attibute
* Simplify the interface of blockified templates
Expose function instead of two functions for allowing and disallowing conversion
* Add a BlockifiedTemplate type
* Rename and simplify the function checking if conversion of classic template to block version is possible
* Align the variable naming to use instead of
* Pass the Classic Template attributes to the blockified template instead of getting it from data store
* Include Breadcrumbs block in the Blockified Product Archive Template
* Consume alignment attributes of Catalog Sorting in the PHP render function
* Consume alignment attributes of Breadcrumbs in the PHP render function
* Remove align support from Catalog Sorting and add to Store Notices block
* Extend the get_classes_and_styles_by_attributes method with align and text_align attributes
* Add Archive Title block to the Blockified Classic Template
* Minor getRowBlock function refactor
* Add property to the classic templates and base the config on it instead of placeholder
* Add separate blockified template for a Product Search Results
* Pass attribute from classic template to No Results block in Product Search Results
* Extract the common functions between blockified archive-template and product-search-results to utils
* Enable 'Inherit query from template' in Products block by default when converting the Classic Template to blockified one
* Improve the naming of BlockifiedTemplateConfig type
* Differentiate Product Catalog and Products By * templates. The latter include Term Description block
* Change unclear ProductsBy to ProductTaxonomy in regards to classic template conversion
* Revert the margin fix which was added already on trunk
* Move the surrounding blocks as inner blocks of Products
* Hide the conversion behind the experimental build flag (as it was before)
* Restrict usage to the single product template.
* Update class prefix from wc to wp
* Move the add-to-cart-form block to atomic blocks so it is aligned with the updated structure adopted for single product related blocks.
* Address CR
* ditch woocommerce class.
* remove attributes key
* Add new styles to account for the removal of the .summary and .entry-summary selectors
* Narrow down the styles to the add-to-cart-form class.
* Fix notice persistence after dismissal
- This fix applied to the `incompatible payment gateway notice`.
- We used the same dismissal logic in the `sidebar compatibility notice`
* Get incompatible payments when initialized
We initially get the list of `globalPaymentMethods` shared from
the back-end as incompatible payments, because the front-end
`availablePaymentMethods` is empty before the
`paymentMethodsInitialized` state
* Introduce advanced notice dismissal handling
We want to display a dismissed incompatible gateways notice, when the
list of incompatible gateways is updated (e.g., a new incompatible
gateway is enabled)
* Use the full block name for the `Cart` & `Checkout`
* Update variable name for comprehension
* Fix TS errors
* Remove unused imports
* wip: update blockified archive templates
* Update product archive title to Shop
* Update product search template to blockified version
* new default templates, all blocks are Products block inner blocks
* revert change to fallack eligible archive templates
* remove unneccessary translated strings
* only filter the archive title on the shop page
* add missing categories header for patterns
* remove the term description block on the fly
* explain the reason for removing the term description block
---------
Co-authored-by: Alba Rincón <alba.rincon@automattic.com>
* Add the initial basis for the Add to Cart button
* Trigger the single product add to cart action for each product type.
* Rename the block from add-to-cart-button to add-to-cart-form
* Update to use the cart icon.
* Implement the skeleton for the editor preview.
* Update styles and add Notice for the display in the Editor.
* Update CSS.
* Add base tests for the new Add to Cart Form component.
* Update the button CSS.
* Update styles for the cart form.
* update td style.
* Update divs and CSS.
* Use conventional input instead of the experimental InputControl
* Implement the new design and copy provided for the editor.
* Make the notice compatible with dark themes.
* Some additional CSS tweaks
* adjust the padding for the input
* Update the icon for the block to match the core icon button
* WIP
* Change payment status from pristine to idle
* Deprecate isPaymentStarted and isPaymentFinished
* Correct comments
* Deprecate isPaymentPristine and undeprecate isPaymentStarted
* Set payment status to FAILED or SUCCESS when the storeAPI fetch returns
* Remove FINISHED as a status
* Remove ready status
* Revert "Remove FINISHED as a status"
This reverts commit 38d66ed1d9565756d2373533c7a7c5b107a68ddd.
* Add payment status READY
* Update use-payment-interface
* Removed payment statuses pristine, failed and success
* Remove deprecated selectors and update docs
* Deprecate isPaymentStarted in favour of isExpressPaymentStarted
* Fix tests
* Update assets/js/base/context/providers/cart-checkout/payment-events/index.tsx
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Mikes suggestions
* Change since version
* Fix tests
---------
Co-authored-by: Mike Jolley <mike.jolley@me.com>
* Reset margin on result count block
* Reset margin for catalog sort block
* reset margin and other fixes for breadcrumb block.
* Move styles to relevant files