The main aim of this PR was to convert the product-control component to TypeScript. However, since the component is coupled with many other parts (it is itself wrapped into 4 HOCs), many refactoring changes were needed to make the types work.
In particular:
* Add `convertProductResponseItemToSearchItem` utility function
The function allows to clean up the `ProductResponseItem` in order
to make its shape compatible with the `SearchListItem`, instead of
passing the entire object.
Because data from the object might need to be used in certain
circumstance (e.g. render functions), the data is now allowed to be
scoped within a `details` key.
This commit also converts `utils/products` to TypeScript.
* Fix `ProductResponseItem` type missing `slug`
The `slug` is returned by the API but didn't appear in the type def.
* Improve certain HOCs types
The `withSearchedProducts` and `withTransformSingleSelectToMultipleSelect`
HOCs are now typed in such a way that it is clear what incoming props
they expect and what they inject.
* Refactor `ProductAttrributeTermControl` for further type safety
Make sure that `count` is always a `number` as required by the
component types.
* Refactor `search-list-control.tsx` and `item.tsx`
The new `SearchItem` allows for the `details` key to be passed.
All the components are now aware of it.
* Add support for filter blocks
This commit updates the `ProductCollection` block implementation to add support for filter blocks, including the Price filter, Attributes filter, Rating filter, and In stock filter.
The changes include:
1. Adding a new property `$attributes_filter_query_args` to store the query arguments related to the filter by attributes block.
2. Adding a new method `add_support_for_filter_blocks()` to enable support for filter blocks. This method sets the necessary asset data to enable filtering and refreshes the page when a filter is applied.
3. Adding new methods to handle specific filter queries, including `get_filter_by_price_query()`, `get_filter_by_attributes_query()`, `get_filter_by_stock_status_query()`, and `get_filter_by_rating_query()`. These methods generate the respective queries based on the applied filters.
4. Refactoring the `get_final_query_args()` method to include the newly added filter queries using the `get_queries_by_applied_filters()` method.
These changes enhance the functionality of the `ProductCollection` block by allowing users to filter products based on price, attributes, rating, and stock status.
* Go to first page when filters are updated
* Enhance ProductCollection block to support filter blocks
This commit enhances the ProductCollection block to support various filter blocks such as Price filter block, Attributes filter block, Rating filter block, and In stock filter block.
The `build_query` method has been refactored into two separate methods: `build_frontend_query` and `get_final_frontend_query` to make the code more modular and readable. The `add_support_for_filter_blocks` method has been modified to support the generation of product IDs for filter blocks.
The method `update_rest_query` has been renamed to `update_rest_query_in_editor` for better clarity and understanding of its function. Similarly, `get_final_query_args` has been refactored to include the `$is_exclude_applied_filters` parameter which helps in generating product IDs for the filter blocks.
Moreover, the filter hook `pre_render_block` has been added to support the filtering of blocks before they are rendered.
This update will enhance the user experience by providing more filtering options in the ProductCollection block.
* Remove changes related to redirect to 1st page
* Go to first page when filters are updated
This commit refactors the changeUrl function in the `filters.ts` file. The purpose of this refactor is to remove the page number from the URL whenever filters are changed. This ensures that the user is always taken to the first page of results.
The commit includes the following changes:
- Added comments explaining the different page number formats in the URL.
- Updated the `newUrl` parameter by removing the page number using regular expressions.
- The page is then reloaded with the updated URL using `window.location.href`.
These changes improve the URL handling in the `changeUrl` function and enhance the user experience when interacting with filters.
* Optimize URL updates to prevent unnecessary page reloads
This commit optimizes the `changeUrl` utility function to prevent unnecessary page reloads.
Changes:
1. It checks if there are no query parameters in the URL and the URL ends with a '?'.
2. If these conditions are met, it removes the trailing '?' from the URL.
The reason for this change is that a '?' in the URL typically indicates that query parameters will follow. If there are no query parameters, the '?' is unnecessary and can cause the page to reload, which can negatively affect performance. Therefore, by removing the '?', we prevent this unnecessary page reload.
* Simplify trailing '?' removal in URL handling
This commit simplifies the removal of trailing '?' characters from URLs.
The previous implementation checked if there were any query parameters
before removing a trailing '?'.
However, upon review, it was determined that this check was unnecessary,
as a trailing '?' could be removed safely even if query parameters were
present, without any negative impact.
This change simplifies the code and prevents unnecessary computation
checking for the existence of query parameters.
* Convert summary/utils to TS
* Add @wordpress/wordcount type defs
* Move trimWords, trimCharacters, remoteTags & appendMoreText to own file
* Add tests for trimWords and related functions
* Trim payment method description if it is longer than 30 words
* Add show child categories only toggle to Product Categories block
* Check if current page is a template editor before adding the toggle
* Show current category if show_children is enabled and its the last category in the hierarchy
* Update comment
* Fix typo
* Remove forward slash
* Add is-widget-editor utility and enable feature for block usage in widget editor
* Don't render anything if the child only option is enabled and there are no children
Implements the ProductSelector advanced filter within the “Products (Beta)” block.
The filter allows the merchant to narrow down the exact products to which all
subsequent filters will be applied, mirroring the functionality of the existing
“Hand-picked Products” plus all the other functionalities available
from the “Products (Beta)” block.
* Replace single quote with the encoded version %27 for URL comparison
This is required as as removeQueryArgs() function uses decodeURIcomponent method which doesn't encode single quotes (') while it was still encoded in the original URL (%27). So when the single quote was in a query param, for example as a search term, it caused endless redirection loop.
* Replace single quote with the encoded version %27 for URL comparison in Filter by Rating
* refactor the solution so it encodes the href rather than decode the newly created URL
* Refactor the normalisation
* Add tests to normalisation function
* 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.
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`
* Use local package rather than WP package in base components
* Missing type on imports
* Move hasSpecingStyleSupport inline to avoid polluting utils with the block-editor external
* Use local wordpress-block-editor import to avoid the external
* Add readme to base directory to warn against using editor/components externals
* Check functions exist
* Revert "Check functions exist"
This reverts commit ce95800b79ddb48369cd22d2b7854384db0d8891.
* Revert wordpress-block-editor import
* Add todos to the hooks that need refactoring
* Update assets/js/atomic/blocks/product-elements/button/supports.ts
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Update assets/js/atomic/blocks/product-elements/image/supports.ts
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Update assets/js/atomic/blocks/product-elements/rating/support.ts
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Update assets/js/atomic/blocks/product-elements/sale-badge/support.ts
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Update assets/js/atomic/blocks/product-elements/title/index.ts
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
* Reference issue
* Update assets/js/base/README.MD
Co-authored-by: kmanijak <karol.manijak@automattic.com>
* spacing
Co-authored-by: Saad Tarhi <saad.trh@gmail.com>
Co-authored-by: kmanijak <karol.manijak@automattic.com>
* Refactor Store Notices
Move snackbar hiding filter before notice creation
Implements showApplyCouponNotice
Refactor context providers
Use STORE_NOTICE_CONTEXTS
use refs to track notice containers
Refactor ref usage
Use existing noticeContexts
* Move new notice code to checkout package
* Combine store and snackbars
* Update noticeContexts imports
* Remove context provider
* Update data store
* Fix 502
* Add new error contexts
* Force types
* Unnecessary reorder of imports
* Fix global handling
* Document forceType
* Optional props are undefined
* Remove function name
* Missing condition
* Remove context prop
* Define ACTION_TYPES
* Remove controls
* Update assets/js/base/context/event-emit/utils.ts
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* CONTACT_INFORMATION
* Remove ref from registerContainer
* Abstract container locating methods
* pass context correctly when displaying notices
* Remove debugging buttons
* Update filter usage - remove useMemo so filter can work inline
* Refactor existing error notices from the API (https://github.com/woocommerce/woocommerce-blocks/pull/7728)
* Update API type defs
* Move create notice utils
* Replace useCheckoutNotices with new contexts
* processCheckoutResponseHeaders should check headers are defined
* Scroll to error notices only if we're not editing a field
* Error handling utils
* processErrorResponse when pushing changes
* processErrorResponse when processing checkout
* remove formatStoreApiErrorMessage
* Add todo for cart errors
* Remove unused deps
* unused imports
* Fix linting warnings
* Unused dep
* Update assets/js/types/type-defs/api-response.ts
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Add todo
* Use generic
* remove const
* Update array types
* Phone should be in address blocks
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Update store name to wc/store/store-notices
* Fix assertResponseIsValid
* Funnel woocommerce_rest_invalid_email_address to the correct place
* woocommerce_rest_missing_email_address
* Move comments around
* Move data back into const
* Spacing
* Remove spacing
* Remove forced snack bar and styling
* Move notices within wrapper
* Remove type
* hasStoreNoticesContainer rename
* Group by status/context
* Remove global context
* Remove white space
* remove changes to simplify diff
* white space
* Move comment to typescript
* List style
* showApplyCouponNotice docs
* See if scrollIntoView exists
* fix notice tests
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* Add type to imports that need it
* Add type to imports that need it
* Fix the sanitize lint error
* Include missing dep
* Remove check from deps
* bot: update checkstyle.xml
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Remove object from sanitizeHTML return value
* Import sanitizeHTML from utils
* Fix dangerously set inner HTML format
* Update package-lock
* Update package-lock
* Update package-lock
* Update @types/dompurify version
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
* price-filter: update URL when filtering products of All Products block.
* active-filters: update the URL when removing price filter
* price-filter: prevent update query on PHP templates when changing prices
* active-filters: on PHP templates, remove filter only triggers the page reload
* price-filter: update comments and naming to reflect new URL behavior
* stock-filter: update url when filtering for All Products block
* attribute-filter: update the URL when filtering for All Products block
* attribute-filter: fix: uncheck all filter doesn't clear the URL
* attribute-filter: fix: endless page reload when filtering for PHP template
* attribute-filter: correctly set the defaults and update the filter query from URL
* fix: filter URL containing stock status doesn't work on homepage
* price-filter: fix issue with URL on All Products
The price slider doesn't reset after removing price filter from the Active Filters block if the initial price filter is set from URL
* ref: passing document.title to pushState is unnecessary
* use replaceState to avoid changing browser history
* extract change URL logic
* wip: convert attribute filter to ts
* change query to optional
* update SearchListControlProps and SearchListItemType
* get default attribute from metadata
* update types
* convert attributes utils to ts
* convert attribute query utils to ts
* fix type error, remove type casting
* revert type change for SearchListItemType
* apply new format
Also:
* Refactored some composed components into one inclusive HOC,
called `withUpdateButtonAttributes`.
* The HOC `withTransformSingleSelectToMultipleSelect` allows for the wrong
type to be passed to its wrapped component: if a single element is
passed, that is wrapped into an array.
This didn't play well with TypeScript which obviously complains about
the wrong type being passed to the component.
So we now allow for arrays to be passed as props and ignored by the HOC
* Move redirect logic to its own callback
* Update comment for updateAttributeFilter
* Remove condition for updating state for active filters only when filter button is not available
* Replace onSubmit with updateAttributeFilter
* Update logic lost in merge
* Replace checked stateful data with activeFilters data from URL
* Remove catalog_visibility from filteredCounts useCollectionData query for PHP templates
* Enable Attribute Filter block to work with the PHP rendered Classic Template block
* Check for presence of option before rendering it
* improve filter product by attribute
* fix pagination problem
* fix check when two filter block with same attribute are used
* fix filter by stock for PHP templates
* fix naming and comment
* Update filter key in ClassicTemplate
* Update stock filter block for PHP templates when the filter button is enabled
* Remove unused useEffect and fix ESLint error
* Set active stock filter and track using local state
* ESLint fix
* Remove unncessary dependencies from useEffect
Co-authored-by: tjcafferkey <tjcafferkey@gmail.com>
* Enable Attribute Filter block to work with the PHP rendered Classic Template block
* Check for presence of option before rendering it
* improve filter product by attribute
* fix pagination problem
* fix check when two filter block with same attribute are used
Co-authored-by: Luigi <gigitux@gmail.com>
* Add support for overlay color and duotone
* Add support for custom inner padding
* Wrap all block experimental features in `isFeaturePluginBuild`
* Fix resizable container min height
The container now resizes if, e.g., padding is increased, and can't be resized down
with the handle to a height lower than it's minimum size determined by content and
padding box.
* Fix resizable handle not being fully visible
Previously, `overflow: hidden` was needed because the height constraint and
padding could push the content out of the container. Now this should not be
possible.
* Add an option to the block to decide how is the image fitted to the container
* Make useStoreNotices interact directly with the store
* Get/set error notices directly in store in paymentMethodDataContext
* Add hasNoticesOfType util
* Remove useStoreNotices and interact directly with data store
* Create/remove notices directly in store
* Remove tests for useStoreNotices
* Add tests for notices util
* Use setIsSuppressed from useStoreNoticesContext
* remove useStoreNotices hook
* Update context typedef to define only isSuppressed and setIsSuppressed
* Remove all values from StoreNoticesContext besides setIsSuppressed
* Wrap Cart and Checkout blocks in StoreNoticesProvider (for isSuppressed)
* Make StoreNoticesContainer a named export
This is required so we can import it from @wooommerce/base-context
* Change addErrorNotice to createErrorNotice to match store action
* Remove unnecessary StoreNoticeProviders and pass only context to container
* Accept a context in StoreNoticesContainer
* Pass relevant context to StoreNoticesContainer
* Add function to remove notices by status
* Prevent checkout from breaking when removing notices during processing
* Prevent TS error about not included path
* Add StoreNoticesContainer to single product block
* Add StoreNoticesContainer to All Products Block
* Ensure errors are shown when using All Products & Single Product Blocks
* Add a context arg to removeNoticesByStatus
* Use correct contexts for all products and single product block
* Update tests to reflect new context argument
* Re-add missing block file for order-summary
* Remove block file for order-summary
* Send context to useStoreCartCoupons to show errors correctly
* Un-used PropTypes import
* Avoid global and use ownerDocument
* receiveCart return type
* ignoreRestSiblings when destructuring for @typescript-eslint/no-unused-vars
* Replace lodash find
* Use global rather than window
* Remove lodash map
* move rule to overrides
* BLOCK SETTINGS: Remove unused constants/settings
* AssetDataRegistry: Helpers to check for settings that exist, and registering page ID/permalinks
* Move checkout and cart block settings to checkout and cart blocktypes
* Move isShippingCalculatorEnabled to cart block
* Remove HAS_DARK_EDITOR_STYLE_SUPPORT and IS_SHIPPING_CALCULATOR_ENABLED in favour of getSetting
* Move displayCartPricesIncludingTax to blocktypes, and implement getSetting
* Move block settings to core settings and blocktypes
* Fix namespace usage
* Move review settings
* move tag settings
* Keep productCount in core data
* Move min and default height
* Improve storePages code
* Move attributes to attribute filter block type
* Move $word_count_type outside of settings array
* Remove unneeded setting in preview data (shippingCostRequiresAddress)
* Move min/max settings dependency from GridLayoutControl to Blocks themselves and use getSettings
* DEFAULT_COLUMNS and ROWS to settings
* Move product columns/rows to block types
* Add grid settings to AllProducts block
* Correct default rows
* correct min rows default
* Move hasDarkEditorStyleSupport
* Move hideOutOfStockItems to block type settings
* Move build settings to inline script dependency
* Pass data through asset api and move restApiRoutes
* Export all core settings as constants
* Remove WORD_COUNT_TYPE from core settings
* Move some other core settings to assets
* Update constants
* Make settings use TypeScript
* Update CURRENT_USER_IS_ADMIN usage
* WORD_COUNT_TYPE
* REST_API_ROUTES
* REVIEW_RATINGS_ENABLED and SHOW_AVATARS
* Remove REVIEW_RATINGS_ENABLED and SHOW_AVATARS constants
* Remove MIN_HEIGHT
* Remove DEFAULT_HEIGHT
* PLACEHOLDER_IMG_SRC
* LIMIT_TAGS
* HAS_PRODUCTS
* HOME_URL
* HAS_TAGS
* COUPONS_ENABLED
* SHIPPING_ENABLED
* TAXES_ENABLED
* DISPLAY_ITEMIZED_TAXES
* SHIPPING_COST_REQUIRES_ADDRESS
* SHIPPING_STATES and SHIPPING_COUNTRIES
* STORE_PAGES
* ALLOWED_COUNTRIES
* ALLOWED_STATES
* SHIPPING_METHODS_EXIST
* PAYMENT_GATEWAY_SORT_ORDER
* CHECKOUT_SHOW_LOGIN_REMINDER
* CHECKOUT_ALLOWS_GUEST and CHECKOUT_ALLOWS_SIGNUP
* ATTRIBUTES
* DISPLAY_CART_PRICES_INCLUDING_TAX
* DISPLAY_CART_PRICES_INCLUDING_TAX
* update build for TS files
* fix build dir
* Move blocks build config params
* Move placeholderImgSrc to core settings
* Move rest api hydration hoc to shared hocs and provide it restApiRoutes directly to avoid asset data registration
* Move wordCountType to abstract block
* Remove WORD_COUNT_TYPE in favour of getSetting
* Move IS_LARGE_CATALOG and PRODUCT_COUNT to abstract block type and use getSetting inline
* Add wcBlocksConfig
* fix tests
* Remove unused $asset_data_registry
* remove console.log
* Move build settings to abstract block
* Trigger build again
* Move hydration back to regular hocs for compatibility with trunk (merge conflict)
* Removed wcSharedHocsConfig
* esc home url
* Update search fixture
* Update search snap
* 40000 timeout
* hasProducts -> productCount
* Product Count is part of blocks config
* update mocks
* Use version comparison to determine if batching is enabled
* Change isWpVersion
* scrollTo button
* convert eslint config to use @woocommerce/eslint-plugin
- removes unnecessary dependencies
- adds e2e-tests/specs to eslint ignore (they are automatically generated)
- turns off rules that will be handled in subsequent pulls (to avoid a mammoth changeset for review).
- NOTE: prettier config needs left in because of a bug with the existing version of `@wordpress/eslint-plugin` pulled in (fixed in https://github.com/WordPress/gutenberg/pull/25068) so I left the file for now.
* prettier fixes.
* remove obsolete plugin and fixes for eslint update
This branch brings an update to eslint which also changes some syntax with plugins. So this commit:
- fixes featuer-flag plugin syntax.
- removed obsolete dependency-group plugin (which is now in the `@woocommerce/eslint-plugin` configuration.
* add to-do comment
* fixes for test runs
- this also converts our e2e test scripts to use `wp-script test:e2e`, an advantage of this is it will load CHROMIUM on demand for the e2e test run.
* fixes for test runs
- this also converts our e2e test scripts to use `wp-script test:e2e`, an advantage of this is it will load CHROMIUM on demand for the e2e test run.
* include prettier alias as a dependency
This has to be done because prettier is installed with storybook and thus the alias setup in `@wordpress/scripts` is over-ridden by the storybook import.
* another attempt at e2e-test-fix
* add some debugging and temporarily just add one e2e config test for travis
* more debugging
* try installing full puppeteer and see if fixes
* fix package-lock?
* setupSettings separately from other fixture loading
* add debugging of files
* add another console.log (hopefully trigger travis)
* split out blockPage creation to it’s own as well
* fixed! remove debugging and re-enable travis configs for entire test suite
* fix config and rename e2e-tests to e2e
- fixes the failing product-search test
- tests/e2e-tests was redundant, I changed to `tests/e2e` (this follows a file pattern change made in woocommerce core as well).
* add todo for some eslint properties
* remove unnecessary early function execution
* revert earlier commit and remove duplicate call to createBlockPages
* Create useShippingAsBilling attribute
* Fix missing prop
* Refactor FormStep so stepNumber is generated by CSS instead of being passed as a prop
* Add billing address form
* Add text before controls
* Remove old @todo comment
* Update NPM packages
* Switch JSON dependencies to new PHP files
* include->require
* include->require
* Remove from package and run audit fix
* Update wp-prettier
* Use version from asset file
* Fix eslint issues and test failures
* Update OriginalComponent docblocks
* Props are objects, not arrays
* Array to Object
* fix tests throwing unhandled rejection errors in node.
These tests were all testing Promise.rejects but then not properly catching the reject in the assertions.
* exclude rule for no short array syntax allowed
This is a WordPress core standard that we choose to ignore because it’s silly in our context to follow that rule (and we’re being consistent with WooCommerce Admin).
* 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
* 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
* Basic component setup
* Working slider
* Validation
* styling
* Update webpack config to fix ie11
* ie progress
* styling improvements
* improve events
* IE shim
* Fix samsung internet styles
* Add aria
* remove old methods
* event handling
* Tweak size and width of inputs
* reset progress
* shorthand notation for setstate
* Inline comment for textare usage
* Remove pointless comparison
* destruct from state
* zindex comment
* Move out currency settings and validation
* enforce int for min and max state
* Use woocommerce/settings
* showInputFields prop
* Filter Products by Price: Block creation (https://github.com/woocommerce/woocommerce-blocks/pull/865)
* Prevent interaction with slider
* Show input fields toggle
* Placeholder content and icons
* Update dependency rimraf to v2.7.0 (https://github.com/woocommerce/woocommerce-blocks/pull/858)
* placeholder styling
* remove unnecessary config (https://github.com/woocommerce/woocommerce-blocks/pull/862)
* Filter button and styling
* Show/hide placeholder based on product count
* Update dependency rimraf to v2.7.1 (https://github.com/woocommerce/woocommerce-blocks/pull/867)
* Use correct parameter order for implode. Solves deprecation notice in PHP 7.4 (https://github.com/woocommerce/woocommerce-blocks/pull/857)
* Add description to blocks added in last releases (https://github.com/woocommerce/woocommerce-blocks/pull/869)
* Limit max width
* Prevent wrap
* handles src file
* Introduce withCategory HOC for featured category block (https://github.com/woocommerce/woocommerce-blocks/pull/846)
* Introduce withCategory hoc
* Refactor featured category to use new hoc
* Update docblocks
* Add README note for PHP deprecation notices
* Remove screen-reader-text css rules (https://github.com/woocommerce/woocommerce-blocks/pull/849)
* Align stars left (https://github.com/woocommerce/woocommerce-blocks/pull/866)
* bool
* Create Reviews by Product block (https://github.com/woocommerce/woocommerce-blocks/pull/658)
* Create Reviews by Product block
* Honor Content settings
* Fix wrong className
* Load new wc-packages file
* Add reviews-by-product JS files to webpack config
* Cleanup
* Remove error messages
* Add Reviews by Product icon
* Update sort options
* Allow additional CSS classes attribute
* Refactor block styles
* Fix wrong default for reviews_orderby
* Don't enforce CSS chunks
* Add reviews count to Reviews by Product controls (https://github.com/woocommerce/woocommerce-blocks/pull/671)
* Add label to Reviews by Product controls count (https://github.com/woocommerce/woocommerce-blocks/pull/677)
* Add reviews count to Reviews by Product controls
* Add label to Reviews by Product controls count
* Add label to Reviews by Product controls count
* Update components package
* Review ordering and placeholders (https://github.com/woocommerce/woocommerce-blocks/pull/688)
* Add support for comment_count ordering and add to productcontrol
* Add a placeholder if rating count is 0
* Update assets/js/components/utils/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/blocks/reviews-by-product/block.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* grammar
* Fix some linting errors and warnings (https://github.com/woocommerce/woocommerce-blocks/pull/693)
* Create Reviews by Product block placeholder (https://github.com/woocommerce/woocommerce-blocks/pull/691)
* Create Reviews by Product block placeholder
* Reviews by Product: load and render reviews with JS (https://github.com/woocommerce/woocommerce-blocks/pull/696)
* Reviews by Product: load and render reviews with JS
* Add dangerouslySetInnerHTML explanatory comment
* Fix wrong dependency source
* Debounce getReviews call when creating the Reviews by Product block
* Rename 'Reviewer Picture' with 'Avatar' (https://github.com/woocommerce/woocommerce-blocks/pull/702)
* Lint errors
* Replace stringify query with addQueryArgs (https://github.com/woocommerce/woocommerce-blocks/pull/707)
* Add reviews endpoint (https://github.com/woocommerce/woocommerce-blocks/pull/705)
* Prevent state updates on unmounted components (https://github.com/woocommerce/woocommerce-blocks/pull/715)
* Add Order by and Load more controls in Reviews by Product frontend (https://github.com/woocommerce/woocommerce-blocks/pull/716)
* Export IconReviewsByProduct (https://github.com/woocommerce/woocommerce-blocks/pull/721)
* Fix Reviews by Product layout in IE11 (https://github.com/woocommerce/woocommerce-blocks/pull/723)
* Set minimum to per page input field (https://github.com/woocommerce/woocommerce-blocks/pull/731)
* Hide avatars in Reviews by Products if 'show_avatars' settings is false (https://github.com/woocommerce/woocommerce-blocks/pull/730)
* Blocks API - Reviews endpoint with rating sort and category filtering (https://github.com/woocommerce/woocommerce-blocks/pull/726)
* Move file to correct location
* We are only using the reviews endpoint not revioews/id
* Remove sensistive data and make endpoint public
* Allow guest access to approved reviews
* Add support for rating sorting
* category filtering
* update arg name
* fix category query
* Reviews by Product: add placeholders when loading reviews (https://github.com/woocommerce/woocommerce-blocks/pull/732)
* Add placeholder animation (https://github.com/woocommerce/woocommerce-blocks/pull/733)
* Hook up Reviews by Product 'Order by' with endpoint (https://github.com/woocommerce/woocommerce-blocks/pull/736)
* Hook up Reviews by Product 'Order by' with endpoint
* Use onChange instead of onBlur in select control
* Reviews by Product: Hide ratings if they are disabled in settings (https://github.com/woocommerce/woocommerce-blocks/pull/740)
* Hide ratings in Reviews by Product if disabled in settings
* Hide order by select if ratings are disabled
* Reviews by Product cleanup (https://github.com/woocommerce/woocommerce-blocks/pull/773)
* Fix wrong method name
* Reduce the number of dependencies used in Reviews by Product (https://github.com/woocommerce/woocommerce-blocks/pull/774)
* Reduce the number of dependencies used in Reviews by Product
* Use 'withComponentId' HOC
* Remove debounce
* Fix wrong proptype
* Get rid of JS warning
* Load render from react-dom
* Add formatted_date_created item schema (https://github.com/woocommerce/woocommerce-blocks/pull/788)
* Fix import of WithComponentID
* Add new settings to Reviews by Product block (https://github.com/woocommerce/woocommerce-blocks/pull/787)
* Add new settings to Reviews by Product block
* Remove helpText and add notices
* Use RangeControl for numeric settings
* Prevent fetching new reviews if all were already fetched
* Enable product image in reviews
* Remove unnecessary catch
* Refactor getReviews
* Move getReviews back to block's code
* Cleanup
* Fix wrong order in editor
* Hide 'Load More Reviews' if showLoadMore is false
* Move getReviews to utils.js
* Add @woocommerce/navigation to package.json
* Make notices non-dismissable
* Reviews by Product: prevent importing all HOCs and import only withComponentId (https://github.com/woocommerce/woocommerce-blocks/pull/811)
* Reviews by product: Update review styling and content (https://github.com/woocommerce/woocommerce-blocks/pull/806)
* Add new settings to Reviews by Product block
* Remove helpText and add notices
* Use RangeControl for numeric settings
* Prevent fetching new reviews if all were already fetched
* Enable product image in reviews
* Remove unnecessary catch
* Refactor getReviews
* Move getReviews back to block's code
* Cleanup
* Fix wrong order in editor
* Hide 'Load More Reviews' if showLoadMore is false
* Move getReviews to utils.js
* Add @woocommerce/navigation to package.json
* Make notices non-dismissable
* Review design/layout
* verified icons
* Read more component
* remove comment
* expanded -> isExpanded
* Localise and change default elipses
* Simplify ReadMore
* Support children rather than passing content
* remove outside
* remove list style
* Update assets/js/components/read-more/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/components/read-more/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* merge set state
* Add missing parameter doc in renderReview (https://github.com/woocommerce/woocommerce-blocks/pull/820)
* Fix Reviews by Product order by select not honoring default setting (https://github.com/woocommerce/woocommerce-blocks/pull/818)
* Read more component - change how clamped content is shown (https://github.com/woocommerce/woocommerce-blocks/pull/821)
* Pass review as components
* Build summary from content and track both
* Toggle display after inital load
* remove unused variable
* remove componentDidUpdate
* Simplify clampLines
* Put back componentDidUpdate, but store final summary in state
* clampEnabled
* Call clampLines from componentDidMount (https://github.com/woocommerce/woocommerce-blocks/pull/826)
* truncate html tests
* implement trimHTML and pass test
* Feedback
* test short content
* Use withProduct HOC in ReviewsByProductEditor (https://github.com/woocommerce/woocommerce-blocks/pull/828)
* Use withProduct HOC
* Convert ReviewsByProductEditor to a functional component
* Add loading and error states
* Prevent loading screen appearing when changing products
* Reviews: only save wrapper element to post (https://github.com/woocommerce/woocommerce-blocks/pull/830)
* Fix bundlesize config not picking frontend files (https://github.com/woocommerce/woocommerce-blocks/pull/840)
* Reviews by Product: split 'block.js' into smaller chunks (https://github.com/woocommerce/woocommerce-blocks/pull/841)
* Split 'block.js' into smaller chunks
* Move frontend blocks to their specific folder
* Order imports
* Typo
* Add frontend components proptypes
* Fix indentation
* Call 'this.getDefaultArgs' directly inside 'getReviews'
* Move access to wc_product_block_data to the top of the file
* Rename 'frontend' folder to 'base'
* Rename base components and move styles to their folder
* Fix Reviews by Product using rating count instead of review count (https://github.com/woocommerce/woocommerce-blocks/pull/860)
* Improve Reviews by Product accessibility (https://github.com/woocommerce/woocommerce-blocks/pull/861)
* Improve Reviews by Product accessibility
* Make 'onClick' prop not required in <LoadMoreButton>
* Wrap Reviews by Product editor block with <Disabled>
* Reviews: fix reviews without rating not appearing when sorting by rating (https://github.com/woocommerce/woocommerce-blocks/pull/863)
* Update assets/css/style.scss
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/872)
* Update dependency webpack to v4.39.2 (https://github.com/woocommerce/woocommerce-blocks/pull/855)
* Update dependency @woocommerce/components to v3.2.0 (https://github.com/woocommerce/woocommerce-blocks/pull/875)
* Update Reviews styles so it looks the same in the editor and the frontend (https://github.com/woocommerce/woocommerce-blocks/pull/871)
* Update Node.js to v10.16.3 (https://github.com/woocommerce/woocommerce-blocks/pull/874)
* Move wc_product_block_data variables to constants file (https://github.com/woocommerce/woocommerce-blocks/pull/870)
* Update dependency webpack-cli to v3.3.7 (https://github.com/woocommerce/woocommerce-blocks/pull/880)
* Add changelog script (https://github.com/woocommerce/woocommerce-blocks/pull/878)
* Add changelog script
* Adapt changelog script to WooCommerce Blocks
* Minor improvements
* Update dependency lint-staged to v9.2.3 (https://github.com/woocommerce/woocommerce-blocks/pull/879)
* Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/883)
* Update dependency eslint to v6.2.0 (https://github.com/woocommerce/woocommerce-blocks/pull/881)
* Reviews by category block (https://github.com/woocommerce/woocommerce-blocks/pull/804)
* Create Reviews by Product block
* Honor Content settings
* Fix wrong className
* Load new wc-packages file
* Add reviews-by-product JS files to webpack config
* Cleanup
* Remove error messages
* Add Reviews by Product icon
* Update sort options
* Allow additional CSS classes attribute
* Refactor block styles
* Fix wrong default for reviews_orderby
* Don't enforce CSS chunks
* Add reviews count to Reviews by Product controls (https://github.com/woocommerce/woocommerce-blocks/pull/671)
* Add label to Reviews by Product controls count (https://github.com/woocommerce/woocommerce-blocks/pull/677)
* Add reviews count to Reviews by Product controls
* Add label to Reviews by Product controls count
* Add label to Reviews by Product controls count
* Update components package
* Review ordering and placeholders (https://github.com/woocommerce/woocommerce-blocks/pull/688)
* Add support for comment_count ordering and add to productcontrol
* Add a placeholder if rating count is 0
* Update assets/js/components/utils/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/blocks/reviews-by-product/block.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* grammar
* Fix some linting errors and warnings (https://github.com/woocommerce/woocommerce-blocks/pull/693)
* Create Reviews by Product block placeholder (https://github.com/woocommerce/woocommerce-blocks/pull/691)
* Create Reviews by Product block placeholder
* Reviews by Product: load and render reviews with JS (https://github.com/woocommerce/woocommerce-blocks/pull/696)
* Reviews by Product: load and render reviews with JS
* Add dangerouslySetInnerHTML explanatory comment
* Fix wrong dependency source
* Debounce getReviews call when creating the Reviews by Product block
* Rename 'Reviewer Picture' with 'Avatar' (https://github.com/woocommerce/woocommerce-blocks/pull/702)
* Lint errors
* Replace stringify query with addQueryArgs (https://github.com/woocommerce/woocommerce-blocks/pull/707)
* Add reviews endpoint (https://github.com/woocommerce/woocommerce-blocks/pull/705)
* Prevent state updates on unmounted components (https://github.com/woocommerce/woocommerce-blocks/pull/715)
* Add Order by and Load more controls in Reviews by Product frontend (https://github.com/woocommerce/woocommerce-blocks/pull/716)
* Export IconReviewsByProduct (https://github.com/woocommerce/woocommerce-blocks/pull/721)
* Fix Reviews by Product layout in IE11 (https://github.com/woocommerce/woocommerce-blocks/pull/723)
* Set minimum to per page input field (https://github.com/woocommerce/woocommerce-blocks/pull/731)
* Hide avatars in Reviews by Products if 'show_avatars' settings is false (https://github.com/woocommerce/woocommerce-blocks/pull/730)
* Blocks API - Reviews endpoint with rating sort and category filtering (https://github.com/woocommerce/woocommerce-blocks/pull/726)
* Move file to correct location
* We are only using the reviews endpoint not revioews/id
* Remove sensistive data and make endpoint public
* Allow guest access to approved reviews
* Add support for rating sorting
* category filtering
* update arg name
* fix category query
* Reviews by Product: add placeholders when loading reviews (https://github.com/woocommerce/woocommerce-blocks/pull/732)
* Add placeholder animation (https://github.com/woocommerce/woocommerce-blocks/pull/733)
* Hook up Reviews by Product 'Order by' with endpoint (https://github.com/woocommerce/woocommerce-blocks/pull/736)
* Hook up Reviews by Product 'Order by' with endpoint
* Use onChange instead of onBlur in select control
* Reviews by Product: Hide ratings if they are disabled in settings (https://github.com/woocommerce/woocommerce-blocks/pull/740)
* Hide ratings in Reviews by Product if disabled in settings
* Hide order by select if ratings are disabled
* Reviews by Product cleanup (https://github.com/woocommerce/woocommerce-blocks/pull/773)
* Fix wrong method name
* Reduce the number of dependencies used in Reviews by Product (https://github.com/woocommerce/woocommerce-blocks/pull/774)
* Reduce the number of dependencies used in Reviews by Product
* Use 'withComponentId' HOC
* Remove debounce
* Fix wrong proptype
* Get rid of JS warning
* Load render from react-dom
* Add formatted_date_created item schema (https://github.com/woocommerce/woocommerce-blocks/pull/788)
* Inital block setup
* Fix import of WithComponentID
* Render the category reviews
* Add new settings to Reviews by Product block (https://github.com/woocommerce/woocommerce-blocks/pull/787)
* Add new settings to Reviews by Product block
* Remove helpText and add notices
* Use RangeControl for numeric settings
* Prevent fetching new reviews if all were already fetched
* Enable product image in reviews
* Remove unnecessary catch
* Refactor getReviews
* Move getReviews back to block's code
* Cleanup
* Fix wrong order in editor
* Hide 'Load More Reviews' if showLoadMore is false
* Move getReviews to utils.js
* Add @woocommerce/navigation to package.json
* Make notices non-dismissable
* Reviews by Product: prevent importing all HOCs and import only withComponentId (https://github.com/woocommerce/woocommerce-blocks/pull/811)
* Reviews by product: Update review styling and content (https://github.com/woocommerce/woocommerce-blocks/pull/806)
* Add new settings to Reviews by Product block
* Remove helpText and add notices
* Use RangeControl for numeric settings
* Prevent fetching new reviews if all were already fetched
* Enable product image in reviews
* Remove unnecessary catch
* Refactor getReviews
* Move getReviews back to block's code
* Cleanup
* Fix wrong order in editor
* Hide 'Load More Reviews' if showLoadMore is false
* Move getReviews to utils.js
* Add @woocommerce/navigation to package.json
* Make notices non-dismissable
* Review design/layout
* verified icons
* Read more component
* remove comment
* expanded -> isExpanded
* Localise and change default elipses
* Simplify ReadMore
* Support children rather than passing content
* remove outside
* remove list style
* Update assets/js/components/read-more/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/components/read-more/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* merge set state
* Add missing parameter doc in renderReview (https://github.com/woocommerce/woocommerce-blocks/pull/820)
* Fix Reviews by Product order by select not honoring default setting (https://github.com/woocommerce/woocommerce-blocks/pull/818)
* Read more component - change how clamped content is shown (https://github.com/woocommerce/woocommerce-blocks/pull/821)
* Pass review as components
* Build summary from content and track both
* Toggle display after inital load
* remove unused variable
* remove componentDidUpdate
* Simplify clampLines
* Put back componentDidUpdate, but store final summary in state
* clampEnabled
* Call clampLines from componentDidMount (https://github.com/woocommerce/woocommerce-blocks/pull/826)
* truncate html tests
* implement trimHTML and pass test
* Feedback
* test short content
* Use withProduct HOC in ReviewsByProductEditor (https://github.com/woocommerce/woocommerce-blocks/pull/828)
* Use withProduct HOC
* Convert ReviewsByProductEditor to a functional component
* Add loading and error states
* Prevent loading screen appearing when changing products
* Reviews: only save wrapper element to post (https://github.com/woocommerce/woocommerce-blocks/pull/830)
* Update based on product reviews
* Cleanup after master merge
* Implement content hiding and placeholder states for reviews blocks
* Output product names and adjust css
* Review permalink
* Remove old read-more component which was moved
* showProductName is already part of passed attributes
* CSS tweaks for missing elements
* Move dir
* Move product reviews block
* Move shared uitils
* update paths
* frontend paths
* Update paths
* shared attributes
* switch to constants
* Shared review block code
* Replace constants
* Fix hidden content bug
* star alignment
* Update dependency eslint to v6.2.1 (https://github.com/woocommerce/woocommerce-blocks/pull/890)
* remove JSON parse
* remove comment
* No need for important rules
* Fix error appearing on Reviews by Product when there were no reviews (https://github.com/woocommerce/woocommerce-blocks/pull/884)
* Fix error appearing on Reviews by Product when there were no reviews
* Revert "Fix error appearing on Reviews by Product when there were no reviews"
This reverts commit 73e95b39aa9a318888d08bb51faeff8bb51259d7.
* Move withProduct() HOC to editor-block.js
* Revert "Move withProduct() HOC to editor-block.js"
This reverts commit ae9515792d4870cc5cf1d92a2d6acc91198b5f62.
* Move renderNoReviews back to edit.js
* Move no reviews placeholder to its own component
* Remove usage of 'RawHTML'
* Fix propTypes
* Remove unnecessary escapeHTML
* revise labels
* Move component to base
* Add price text
* Update design to latest figma
* update from master
* Fixed merge conflicts with settings
* Fix formatting
* Update to use react hooks
* Progress hooking up price slider
* Fixes usage of data store for min/max
* Added loading state
* Fix useQueryStateByKey setter
* Product list integration
* Inital state and preventing too many queries
* Style fixes
* Button loading styles
* Package conflict
* useCallback
* Remove duplication
* variable name feedback
* Implement useCallback on functions
* useMemo for getProgressStyle
* Block feedback
* Use get_block_asset_build_path
* Remove old settings from merge conflict
* Move sketch file to .prefixed dir
* Removed render methods
* Exclude price filter from legacy build
* Feedback
* Inital block creation
* Update labels
* Columns, rows, sample data json
* Output data from API
* thumbnail_html
* Split into smaller components of grid
* Price handling
* Image handling
* Remove !
* frontend
* Work on cart api
* Cart error handling and product type conditions
* innerblock progress
* Implement layoutConfig as set from innerblocks shape.
Note:
- this is just a poc
- where things are configured likely needs changed
- will still need to work out how this gets persisted for the frontend and how things get displayed there (but likely will work fairly similar in terms of mapping to components).
* use correct prop name
* Working edit button
* Clean up block controls and edit view
* Add link with innerblocks
* update link description
* correctly handle components with inner blocks as children
* Re-organise atomic components and blocks into own directories
* Unique keys for components
* Fix default layout when inserting block for first time
* Working layoutconfig save
* Save attributes
* Move sale badge to image component
* Add disabled to render preview and blocks
* icons
* Editor view styling
* Update withComponetId to stop component ID incrementing too many times
Co-Authored-By: Darren Ethier <darren@roughsmootheng.in>
* Improve key generation
* done/cancel buttons on edit
* Create withProducts HOC for All Products block (https://github.com/woocommerce/woocommerce-blocks/pull/994)
* Create withProducts HOC for All Products block
* Add order select and pagination to All Products block
* Go to first page when changing order
* Add HOC test
* Make sure block is updated whem columns/rows change in the editor
* Fix 'SALE' badge positioning
* Remove unnecessary key
* Honor 'perPage' value when generating placeholders
* Make placeholder sizes match rendered block item
* Several CSS improvements
* Remove unused CSS properties
* Move getProducts to hocs utils
* Remove All Products sample-data.json
* Fix order select wrong margin in the editor
* Refactor how loading image gets its size
* Clear products when loadProducts start
* Enhance pagination logic
* Fix placeholder width
* Fix regular_price check
* Set product link max-width
* Implement querystrings for the All Products block (https://github.com/woocommerce/woocommerce-blocks/pull/997)
* Implement querystrings for the All Products block
* Create withWindow HOC
* Add with-window tests
* Use renderFrontend util in All Products block (https://github.com/woocommerce/woocommerce-blocks/pull/1003)
* Add with-window tests
* Use renderFrontend util in All Products block
* Rename properties and components from 'order' to 'sort' (https://github.com/woocommerce/woocommerce-blocks/pull/1012)
* Rename properties and components from 'order' to 'sort'
* Rename onOrderChange to onSortChange
* Remove unnecessary stylint-disable-line (https://github.com/woocommerce/woocommerce-blocks/pull/1016)
* Create withBrowserLocation and withBrowserHistory HOC (https://github.com/woocommerce/woocommerce-blocks/pull/1022)
* Create withBrowserWindowProp HOC
* Remove unnecessary expect's
* Always pass window prop to propMap if it exists
* Scroll to top when switching pages in All Products block (https://github.com/woocommerce/woocommerce-blocks/pull/1011)
* Scroll to top when switching pages in All Pages block
* Improve keyboard navigation in the All Products block
* Create withScrollToTop HOC
* Fix variable name typo
* Update paths with aliases
* Avoid first and last page being included in pagination 'pagesToDisplay' (https://github.com/woocommerce/woocommerce-blocks/pull/1015)
* Update lock
* constants
* linting
* Clean up styling
* Prettier
* Block options for title/image
* Prettier
* Remove shared content controls
* Update atomic block descriptions
* Summary block
* Prettier
* Impoved template edit appearance and added inline tips
* Apply prettier
* Reset and cancel buttons
* Improved keys
* Tweak tip placement
* Remove incorrect comments
* Remove disabled ofr non interactive elements
* Fragment not needed
* Update assets/js/atomic/components/product-list/title/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Move componentId hoc
* Comment
* Implement onImageLoaded
* Pagination: disable first/last page if they are active (https://github.com/woocommerce/woocommerce-blocks/pull/1041)
* Update assets/js/atomic/components/product-list/rating/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Sale badges refactoring
Adds sale badges blocks and improves how the default blocks are defined.
* revert changes in withComponentId
* fix flexbox alignment
* Create withQueryStringValues HOC and use it in ProductGrid component (https://github.com/woocommerce/woocommerce-blocks/pull/1040)
* Create withQueryStringValues HOC and use it in ProductGrid component
* Add tests
* Add comment explaining urlParameterSuffix
* Don't destructure props if only used once
* Move dependencies check outside the HOC
* Update test description
* Remove HOCs no longer used
* Update assets/js/atomic/blocks/product-list/image/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/atomic/components/product-list/sale-badge/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/atomic/utils/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Update assets/js/atomic/utils/index.js
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Feedback
* Grid to List
* Improved badge handling
* update package-lock after merge from master
* Add wp.data store for schema and lists. (https://github.com/woocommerce/woocommerce-blocks/pull/1008)
* install @wordpress/data-controls and deepFreeze
* add schema store
* add query-state store
* add collections store
* add bundle entry point (and export store keys and constants)
* add master README.md for new stores
* add bundle configuration and register asset php side
* Add missing param name
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* code style fixes
* remove unnecessary period from test description
* Simplify conditional
* reorder imports (code style)
* reorder imports and codestyle
* refactor using lodash for state utils
* reorder imports
* reorder imports
* reorder dependencies
* reorder dependnecies an remove duplication block
* remove errant tab
* reorder dependencies
* Modify collections store to add headers to the store state. (https://github.com/woocommerce/woocommerce-blocks/pull/1073)
* add control for getting unparsed response from apiFetch
* Modify action so it recieves a response object.
* modify reducer to handle response object
* improve selectors to make headers accessible
- modifys existing `getCollection` to retrieve items from state.
- adds `getCollectionHeader` selector
* update resolvers to handle full response from request
- also adds resolver for `getCollectionHeader`
* update docs for changes
* Improve spacing in doc
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Fix spacing in inline docs
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* change `getFromState` to receive an object instead of arguments list.
* Prepare All Products block to accept extension inner blocks (https://github.com/woocommerce/woocommerce-blocks/pull/1047)
* Simplify BLOCK_MAP
* Prepare All Products block to accept extension inner blocks
* Change filter name
* Update filter name
* Add check that block exists in BLOCK_MAP
* Create REVERSED_BLOCK_MAP instead of searching blocks each time
* Change how child blocks are registered for All Products block
* Refactor All Products block so reverse map isn't needed
* Remove getDefaultBlocks
* Make sure getRegisteredInnerBlocks always returns an object and add checks to registerInnerBlock
* Add missing blockName arg
* Add inline docs to block registry
* Move 'blockName' prop to context
* Typos
* Improve registerInnerBlock error messages and create a validation function
* Refactor context
* Rename validateOption to assertOption
* refactor where new context lives and add alias for base-context
* fix doc block
* remove todo block (there’s an issue for it)
* rename context
* Update assets/js/atomic/components/product-list/sale-badge/index.js
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* HeadingToolbar comment
* Tweak bool comparison
* Improve how default layouts are set so all blocks can be removed and the no-content message is correct
* Sale centering
* Fix default template
* Product example switch to preview
* Update preview schema and image data to match latest schema
* Add @woocommerce/atomic-components alias
* Alias for previews to prevent need for relative paths
* Drop `align` for sale block
Align disrupts other blocks in unexpected and unavoidable ways. Drop support so the sale block is a block level item.
* Rename atomic components and blocks (and create ProductLayoutContext) (https://github.com/woocommerce/woocommerce-blocks/pull/1089)
* rename atomic blocks and components to be more generic (drop list)
* create new context for productlayout and implement provider
* Rename ProductSalesBadge to ProductSaleBadge
* Add php5.3 restriction for All Products block (https://github.com/woocommerce/woocommerce-blocks/pull/1090)
* enable legacy builds and add handling for AllProducts to be wp5.3 only
* fix legacy builds
* Prevent filemtime notice
* Implement new data stores with All Products block (https://github.com/woocommerce/woocommerce-blocks/pull/1067)
* add new hooks and tests and alias for hooks
* various fixes for stores after implementation tests
* implement new stores for ProductList component
* add doc blocks for useStoreProducts hooks
* fix typo in property on returned object
* Install prettier
* Reformat all files
* Add prettier to precommit hook
* Update prettier settings to match Gutenberg code standards
* Reformat files with new settings
* Improve legibility in some line breaks
* Add inline settings script later than init
* Rename to shared-settings for clarity - other extensions filter these
* Implement block settings
* tweak used hooks
* update comment
* Shared settings should be dependency
* Make Webpack output shared and block settings (https://github.com/woocommerce/woocommerce-blocks/pull/918)