Commit Graph

4870 Commits

Author SHA1 Message Date
Mike Jolley c55a387657 Prevent multiple collection data requests using debounce (https://github.com/woocommerce/woocommerce-blocks/pull/1233)
* Add context for collection data query

* Introduce useCollectionData hook

* Implement hook in filter blocks

* Update API to handle nuances of counts instead of client side

* Clone requests so original is untouched

* Prevent dupe requests is working

* Cleanup

* Update assets/js/base/hooks/use-collection-data.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Update assets/js/base/hooks/use-collection-data.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Feedback

* Remove context
2019-11-23 17:04:30 +00:00
Mike Jolley c595444b7f Hydrate REST endpoint data in the stores (https://github.com/woocommerce/woocommerce-blocks/pull/1206)
* Helper to get namespace routes from the REST Api

* Add routes to store settings

* HydrateRestApiData component

* Correct usage of useSelect

* Remove lodash

* Move code to HOC
2019-11-23 16:29:35 +00:00
Mike Jolley fc32c0a9ed Update translation handling to include core translations (https://github.com/woocommerce/woocommerce-blocks/pull/1242)
* Remove language files and po2json generation scripts

* Add action filter and function to load core translations

* Use pre_load_script_translations

* Remove script actions

* docblock
2019-11-23 16:28:54 +00:00
Darren Ethier 5c26249e26 don’t mutate default state constant. (https://github.com/woocommerce/woocommerce-blocks/pull/1245)
There was no need to have a const for the default state and also needed to make sure we’re not mutating it because it would result in the mutation of the default state.  This in turn meant that on the initial reducing action, the default state in the store would have a ghost value.
2019-11-22 15:18:45 -05:00
Seghir Nadir aa2e2d8f1e introduce block title component (https://github.com/woocommerce/woocommerce-blocks/pull/1240)
* introduce block title component

* style with prettier

* rename component class

* update readme
2019-11-21 18:21:14 +01:00
Mike Jolley 2f3c4623b7 Update `useQueryStateByContext` to remove need for context when setting values (https://github.com/woocommerce/woocommerce-blocks/pull/1239)
* Don't require context for set

* Update tests
2019-11-21 16:06:52 +01:00
Mike Jolley 6e2978413e level -> headingLevel (https://github.com/woocommerce/woocommerce-blocks/pull/1230) 2019-11-21 12:19:34 +00:00
Mike Jolley b96f568c2e Price Slider -- Only do instant updates if filter button is disabled (https://github.com/woocommerce/woocommerce-blocks/pull/1228)
* Only do instant updates if filter button is disabled

* Update assets/js/blocks/price-filter/block.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
2019-11-21 11:53:08 +00:00
renovate[bot] 868db00a86 Pin dependency use-debounce to 3.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1220) 2019-11-21 11:51:46 +00:00
Albert Juhé Lluveras e3eebe89c2 Move ErrorBoundary to renderFrontend() function (https://github.com/woocommerce/woocommerce-blocks/pull/1226) 2019-11-21 09:09:14 +01:00
Albert Juhé Lluveras 4652ce1547 Honor CSS classes in editor (https://github.com/woocommerce/woocommerce-blocks/pull/1227)
* Honor CSS classes in editor

* Remove is-loading classes from editor

* Make sure we always destructure all attributes
2019-11-21 08:50:30 +01:00
Albert Juhé Lluveras 15cce7eb74 All Products block: format prices of variable products (https://github.com/woocommerce/woocommerce-blocks/pull/1210) 2019-11-21 08:47:38 +01:00
Albert Juhé Lluveras 6f4a9e7782 Remove minConstraint and maxConstraint from price filter state (https://github.com/woocommerce/woocommerce-blocks/pull/1192)
* Remove minConstraint and maxConstraint from price filter state

* Remove 'useMemo' from minConstraint and maxConstraint

* Make sure minConstraint and maxConstraint are numbers before updating min/max prices

* Make sure non-valid price constraints don't make it to usePrevious

* Remove again track min/max constraint useEffect
2019-11-21 08:42:58 +01:00
Darren Ethier 688d60d9bd update to dev version 2019-11-19 14:08:55 -05:00
Seghir Nadir 7995d56d9f Bumping version strings to new version. 2019-11-19 18:20:22 +01:00
Seghir Nadir b09c6a69b1 add changelog entries 2019-11-19 18:11:31 +01:00
Mike Jolley 0272c4472b Add no result templates (https://github.com/woocommerce/woocommerce-blocks/pull/1178)
* All Products block with filters: avoid showing loading placeholders if there are no results

* Hide sort select and show message when no products are available

* Add no result templates

* Remove product-grid

* Move images to assets dir

* Update images

* Switch functions to Components

* Capitals

* add missing context
2019-11-19 15:47:46 +00:00
Seghir Nadir bb0227edb1 Show number of reviews in each category in Reviews per Category block (https://github.com/woocommerce/woocommerce-blocks/pull/1177)
* Add reviews to Category endpoint

* add option to show categories with reviews

* update label text if we're using reviews for counting

* update reviews count to use raw sql

* add flag before querying review count

* add review_count to collection data & schema

* fix PR code review problems

* update tests to it expects the new collection param

* add note about review_count is schema
2019-11-19 16:22:16 +01:00
Albert Juhé Lluveras dceb2c6a0f All Products: avoid pagination disappearing when switching pages/changing sort value (take 2) (https://github.com/woocommerce/woocommerce-blocks/pull/1201)
* Use same query for headers collection

* All Products: avoid pagination disappearing when switching pages/changing sort value (take 2)

* Cleanup

* fixes after rebase

* Make it work after last rebase

* only do page change when queryState.page has changed.

* Fix woocommerce/woocommerce-blocks#1198 again

* Remove previousPage and isInitialized checks
2019-11-19 16:14:34 +01:00
Mike Jolley 8eec47e241 Use same query for headers collection (https://github.com/woocommerce/woocommerce-blocks/pull/1196) 2019-11-19 13:17:03 +01:00
Darren Ethier 2ca9f5eca2 Fix: Page selection will reset to 1 after deselecting filterable item, re-sorting products, and selecting new page. (https://github.com/woocommerce/woocommerce-blocks/pull/1205)
* initial commit

* change initialization state when user triggered page change
2019-11-19 06:20:23 -05:00
Darren Ethier 652aa0caa2 Fix paging issues (https://github.com/woocommerce/woocommerce-blocks/pull/1202) 2019-11-19 04:55:16 -05:00
Darren Ethier 3189a9483b Implement useProductLayoutContext for layout prefix in atomic blocks. (https://github.com/woocommerce/woocommerce-blocks/pull/1183)
* implement product layout context for product button

* convert product image component to functional component

- also implements useProductLayoutContext

* ensure edit context for AllProducts block has appropriate providers wrapping it.

* update price block with useProductLayoutContext

* convert ProductRating block to functional component and add useProductLayoutContext

* add useProductLayoutContext to ProductSummary

* update sale badge component adding useProductLayoutContext

* add useProductLayoutContext to ProductTitle component

* update ProductListItem component to add useProductLayoutContext

* update ProductList component to add useProductLayoutContext
2019-11-18 15:25:29 +01:00
renovate[bot] 99502f744f Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1191) 2019-11-18 11:01:44 +00:00
Albert Juhé Lluveras e965842726 Add All Blocks and filter blocks to readme.txt (https://github.com/woocommerce/woocommerce-blocks/pull/1193) 2019-11-18 11:01:26 +00:00
Mike Jolley abd92e0c32 Filter block previews (https://github.com/woocommerce/woocommerce-blocks/pull/1184)
* Enable preview for price filter block

Using the defaults works fine, so no options required.

* Attribute preview via block attribute

* Add sample content for preview

* remove unnecessary key

* remove unneeded export
2019-11-15 16:10:49 -05:00
Darren Ethier cd3914b9a1 don’t use deprected imports (https://github.com/woocommerce/woocommerce-blocks/pull/1186) 2019-11-15 15:57:20 -05:00
Seghir Nadir 1d67ec5ce9 Add on_sale to Store API for it to work. (https://github.com/woocommerce/woocommerce-blocks/pull/1185)
* add on sale to store api

* fix onsale to on_sale

* update preview to use on_sale

* update tests to use on_sale
2019-11-15 19:11:03 +01:00
Darren Ethier b4df4e056c Enhance useCollection for conditionally returning previous results (https://github.com/woocommerce/woocommerce-blocks/pull/1182)
* add new config to `useCollection` options for controlling whether to invoke select or not.

also adds tests.

* update inline docs
2019-11-15 11:11:48 -05:00
Albert Juhé Lluveras 47e082ef58 Update minimum WooCommerce version to 3.7 (https://github.com/woocommerce/woocommerce-blocks/pull/1181)
* Update minimum WooCommerce version to 3.7

* Update README sentence
2019-11-15 16:32:40 +01:00
Mike Jolley bf370806ed Add grid block previews using an SVG image (https://github.com/woocommerce/woocommerce-blocks/pull/1118)
* Implement preview for on-sale products

* Previews for other grid blocks

* Shared previews

* Fix SVG

* add svg as asset

* Add image via path

* cleanup
2019-11-15 15:16:18 +00:00
Mike Jolley d613d2fde6 Active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1168)
* Basic block construction

* Register on PHP side

* wc-active-filters script

* Price utils

* Refactor price slider so state reflects the query

Moves some logic from the component to the block so that min and max price can change (via query) and be reflected by the price sliders.

This allows the active filters block to change the query and have those new values reflected by the slider.

* Fix type checking of numbers

* Styles for filter block

* Improved attribute helper for getting attribute taxonomy data from ID/taxonomy

* Refactor attribute filter to use updateAttributeFilter helper

* Disable checkboxes when loading to avoid multiple queries

* Add todos - this is blocked

* Remove checked state from Attribute Filter so it gets updated from the store (https://github.com/woocommerce/woocommerce-blocks/pull/1170)

* isLoading check

* active price filtering rendering

* Block heading

* Implement block options; chip display with clear button

* Clear all should remove all attributes

* Enable previews

* Introduce a component to look up terms from slugs using collections (which are cached)

* Correct all docblocks

* activePriceFilters null return

* renderRemovableListItem

* Remove useMemo for hasFilters

* Switch classnames notation

* Ensure slug is array in removeAttributeFilterBySlug

* null -> undefined return types for attributes

* Remove fragment

* Check we have a termObject in ActiveAttributeFilters

* Refactor formatPriceRange return statements

* Ensure query array index will exist

* Only sort when adding a query

* Remove aria-label with dupe text

* hasFilters is function

* Update useQueryStateByKey usage

* More doc block fixes

* Update getAttributeFromTaxonomy return and docblock

* getAttributeFromID return/docblock
2019-11-15 14:41:23 +00:00
Albert Juhé Lluveras 0739e4c536 Add block error boundary to JS-rendered blocks (https://github.com/woocommerce/woocommerce-blocks/pull/1166)
* Add block error boundary to All Products and Reviews blocks

* Add block error boundary to Price Filter and Attributes Filter blocks

* Add image

* Make block error component use props instead of hardcoded values

* Add props to BlockErrorBoundary

* Change 'text' prop to 'content'

* Add docs to proptypes

* Replace 'content' prop with 'text'
2019-11-15 15:15:55 +01:00
Albert Juhé Lluveras 2fde5d6890 Show notices when WP or PHP versions are not met (https://github.com/woocommerce/woocommerce-blocks/pull/1160)
* Show notices when PHP or WP versions are not met

* Update version-changes.sh so it updates versions in woocommerce-gutenberg-products-block.php

* Convert constants to normal variables

* Remove error_log calls

* Remove button with PHP update link

* Show notices only in plugins and WooCommerce pages
2019-11-15 13:33:43 +01:00
Darren Ethier 5f7dfe0ac8 Fix Package::init breakage for including plugin in WC core (https://github.com/woocommerce/woocommerce-blocks/pull/1175)
* fix broken Package init process

* add missing @since tag

* update version bump file to account for file location for version change
2019-11-14 12:19:22 -05:00
Darren Ethier 534d8f6fdd Add context for query state context string. (https://github.com/woocommerce/woocommerce-blocks/pull/1172)
* ensure useProductLayoutContext actually returns the context!

* add query state context and export provider and hook.

* implement useQueryStateContext in existing querySTate hooks and refactor other implementations

* add back in documentation removed in rebase

* default layout context to empty string (no need to add additional classes by default

* fix jsdoc
2019-11-14 12:16:27 -05:00
Darren Ethier 380019f489 Rename modelName to resourceName everywhere (https://github.com/woocommerce/woocommerce-blocks/pull/1173)
* rename modelName to resourceName

* fix inline doc alignment
2019-11-14 11:10:50 -05:00
Darren Ethier 7ae6d78ea5 Add context value validation for context apis that receive an object. (https://github.com/woocommerce/woocommerce-blocks/pull/1174)
* add a context value validator and tests

This handles validation incoming value prop on a context provider with an object.

* implement context validator and fix related bugs

* rename context to better match it’s purpose

* correct spelling

* Update assets/js/base/context/utils.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* tighten up the iteration
2019-11-14 09:51:32 -05:00
Mike Jolley 7e98aaf391 Set loading state when searching (https://github.com/woocommerce/woocommerce-blocks/pull/1171)
* Set loading state when searching

* Remove 2nd loading state setter

* isLargeCatalog should be 100
2019-11-14 14:40:04 +00:00
Seghir Nadir f6401a87c4 Remove h1 from atomic title (https://github.com/woocommerce/woocommerce-blocks/pull/1167)
* remove option to use H1
2019-11-14 14:26:35 +01:00
Mike Jolley a84990d10f Add editable filter widget headings (https://github.com/woocommerce/woocommerce-blocks/pull/1169)
* Move heading toolbar component so it can be resused

* Add heading to attribute block

* Add heading to price filter block

* Fix missing loading state
2019-11-13 16:15:20 +00:00
renovate[bot] 9c9b248c6d Update dependency core-js to v3.4.1 (https://github.com/woocommerce/woocommerce-blocks/pull/1164) 2019-11-13 10:14:01 +01:00
renovate[bot] e721c2d6c7 Update dependency eslint-plugin-jest to v22.21.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1165) 2019-11-13 10:13:51 +01:00
renovate[bot] 69af13bc45 Update dependency @octokit/rest to v16.35.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1163) 2019-11-13 09:48:43 +01:00
renovate[bot] cff026bd93 Update dependency @babel/core to v7.7.2 (https://github.com/woocommerce/woocommerce-blocks/pull/1162) 2019-11-13 09:48:31 +01:00
Darren Ethier 2b7fad30d4 Update version script to account for changes in version setting on bootstrap (https://github.com/woocommerce/woocommerce-blocks/pull/1158)
* update version change script so it accounts for the new version setting in Package

* fix hardcoded version string in replacement script

* change version registration block

* improve specificity of version string change
2019-11-12 11:26:35 -05:00
Darren Ethier 7be18d3802 Ensure frontend script assets are registered with the right suffix for the environment. (https://github.com/woocommerce/woocommerce-blocks/pull/1157)
* ensure registered frontend scripts use correct suffix for environment

* update how suffix is added to frontend builds!
2019-11-12 12:13:59 +00:00
Mike Jolley c412dde269 Store API - Add tests for product attributes endpoints (https://github.com/woocommerce/woocommerce-blocks/pull/1151)
* Add product attribute unit tests

* Add missing description param

* Allow returning empty terms

* Attribute terms tests

* Update tests/php/RestApi/StoreApi/Controllers/ProductAttributes.php

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Update tests/php/RestApi/StoreApi/Controllers/ProductAttributeTerms.php

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
2019-11-12 12:04:19 +00:00
Darren Ethier 0ee090d16d Remove unnecessary package version reading of @wordpress/components (https://github.com/woocommerce/woocommerce-blocks/pull/1154)
* remove unnecessary package version reading of @wordpress/components

* comment out unused variable
2019-11-11 13:09:09 -05:00
Albert Juhé Lluveras 8fe23415ba Update WooCommerce compatibility version to 3.8.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1149)
* Update WooCommerce compatibility version to 3.8.0

* Add PHP compatibility versions

* Fix wrong values for minimum WP and PHP versions

* Remove ending .0
2019-11-11 18:06:03 +01:00