Commit Graph

1255 Commits

Author SHA1 Message Date
Rua Haszard 69ea94378b support removing cart items (https://github.com/woocommerce/woocommerce-blocks/pull/1813)
* first cut - removing an item from cart:
- add actions to cart store for removing an item and keeping track of
pending removal API call
- add reducer logic for storing pending state on an item, and removing
an item
- expose removeCartItem on new useStoreCartItems hook
- hook it up to remove link / trashcan icon in row item

* disable cart quantity picker/remove link while API request in progress:
- expose cart item pending status from store using selector
- use selector to disable quantity related components in line item row

* fix jsdoc - getCartItem returns undefined if not found

* add typedef for cart items store object provided by hook

* fix rebase error - key prop went awol

* orient useStoreCartItem hook to single cart item:
- simplify interface for client component
  - isPending bool (was callback)
  - removeItem callback no need to specify item key
+ reinstate disabled prop on remove link when updating (lost in rebase)

* move cart item pending state out of cartItems, preserve API state shape:
- pending is now stored as array of keys
- fix isItemQuantityPending selector (now much simpler)

* ensure react knows that our useSelect depends on cartItemKey
2020-02-28 15:05:10 +13:00
Rua Haszard bb637bbaa3 support disabled QuantitySelector [in progress] (https://github.com/woocommerce/woocommerce-blocks/pull/1823)
* add basic story for QuantitySelector (so can easily test disabled)

* add disabled prop to QuantitySelector:
- apply to all input controls
- add storybook knob for testing
- use disabled grey for number edit when disabled

* fix indentation of jsdoc comment (linter is coming)

* use self-closing tag in QuantitySelector story

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

Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
2020-02-28 09:52:18 +13:00
Albert Juhé Lluveras 185149f2bd Persist previous shipping rates while loading and show its package name (https://github.com/woocommerce/woocommerce-blocks/pull/1806)
* Persist previous shipping rates while loading

* Refactor ShippingRatesControl LoadingMask

* Show package name

* Simplify CSS to avoid using the adjacent selector

* Add comment to explain why 'selected' is hardcoded in the editor

* Rename package 'index' to 'key'
2020-02-27 19:28:36 +01:00
Mike Jolley 335e0eae41 Add screen reader text to sale badge (https://github.com/woocommerce/woocommerce-blocks/pull/1826) 2020-02-27 14:19:05 +00:00
Mike Jolley 6339e85d64 Add aria labels for counts (https://github.com/woocommerce/woocommerce-blocks/pull/1828) 2020-02-27 14:17:22 +00:00
Mike Jolley d4e843fd65 Update snapshot to fix broken tests 2020-02-27 11:53:12 +00:00
Mike Jolley 6ac5b8288f Add chip component for coupons in the cart (https://github.com/woocommerce/woocommerce-blocks/pull/1807)
* Chip componet and styling

* Tests

* Move coupon code for API requests to body - fixes issues with coupon codes containing special characters

* Implement chip component in cart page

* Revert "Move coupon code for API requests to body - fixes issues with coupon codes containing special characters"

This reverts commit ac5a72f55d51d939bb989f3936e28cf993af19a6.

* Update comment

* prevent overflow

* Add screen reader text for coupon name

* Adjust icon alignment and padding/hit box

* update string
2020-02-26 17:09:18 +00:00
Albert Juhé Lluveras 7603b1391f Checkout block: don't show message of missing shipping options if they are already set (https://github.com/woocommerce/woocommerce-blocks/pull/1804)
* Checkout block: don't show message of missing shipping options if they are already set

* Use 'wc_get_shipping_method_count' to check if shipping methods are created

* Fix frontend error

* Check  exists before calling a method on it

* Fix Configure Shipping Options button mispositioned in last Gutenberg release
2020-02-26 15:50:53 +00:00
Mike Jolley eee2d342ae Add loading placeholder for cart block (inital load) (https://github.com/woocommerce/woocommerce-blocks/pull/1819)
* Tidied up source code for line item row and fixed image placeholder support

* Return null if not rendering

* Add is loading state and className to cart block

* Hide title if there are no items

* Add placeholder rows when there are not items and cart is loading

* Pass though isLoading to cart

* Set defaults for cart item rows

* Style the placeholder elements

* Move placeholderRows

* Remove getPriceNumber

* Move decodeEntities

* Split up utils
2020-02-26 15:49:07 +00:00
Albert Juhé Lluveras 1deb0f853c Fix radio control styles in editor (https://github.com/woocommerce/woocommerce-blocks/pull/1817) 2020-02-26 13:02:48 +00:00
Albert Juhé Lluveras 11f5210297 Wrap Coupon code input/button in a <form> element (https://github.com/woocommerce/woocommerce-blocks/pull/1818)
* Wrap Coupon code input/button in a <form> element

* Add back row class
2020-02-26 13:48:16 +01:00
renovate[bot] d5094047ee Update dependency babel-eslint to v10.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1812)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-26 12:46:04 +00:00
renovate[bot] 4281fbf13d Update dependency config to v3.2.6 (https://github.com/woocommerce/woocommerce-blocks/pull/1815)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-26 12:45:29 +00:00
renovate[bot] 8dfa248a1f Update dependency eslint-plugin-jest to v23.8.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1816)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-26 12:45:13 +00:00
renovate[bot] f22ef7f7d5 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/1811)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-26 12:44:43 +00:00
Mike Jolley 740a636c88 Updated `store/cart` endpoint coupon formatting and handling (https://github.com/woocommerce/woocommerce-blocks/pull/1808)
* Move coupon code for API requests to body - fixes issues with coupon codes containing special characters

* Use wc_format_coupon_code when applying/removing coupons via the cart endpoint

* Add tests
2020-02-26 11:46:58 +00:00
Darren Ethier 25e86fbc56 move jest types to devDependencies 2020-02-25 14:01:23 -05:00
Rua Haszard 0f57b6fdef show discount badge in line items in cart (https://github.com/woocommerce/woocommerce-blocks/pull/1784)
* calculate regular price for line item and return in API `line_subtotal`

* restore `line_subtotal` api field to previous behaviour

* correctly handle discounts on cart line items:
- return product `prices` in cart items endpoint
- calculate full price and discount on client using product
regular_price * quantity in cart

* add product prices to preview cart API data

* show product sale price discount in "save" badge:
- previously we were displaying any effective discount, e.g. from coupons which apply to whole cart
- now this badge will only display discount due to product on sale - much simpler

* rename sale badge class (discount => sale)

* clarify docs for line_subtotal - includes sale prices, not coupons

* clarify line_total docs

* add prices to schema (fix unit test)

* fix schema unit test - return `prices` as object, consistent with `totals`

* Further line total rewording

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2020-02-25 12:17:13 +00:00
Mike Jolley 6d7fdf50e0 Allow coupons to be applied and removed from the cart (https://github.com/woocommerce/woocommerce-blocks/pull/1790)
* useStoreCartCoupons hook

* Apply coupon w/ basic error handling for the fetch

* Basic store specifically for cart data

* Working on error states

* Show error on coupon fail

* removeCoupon action

* Added extra endpoints for more efficient cart queries

* Apply/remove coupons working

* Track applying/removing state

* StoreCartCoupon typedef

* Use coupon code on index

* Remove custom controls definition

* Adjust storecartcoupons mapper and remove ref

* Move cartData defaults and remove ref

* Call API directly, avoid schema lookup

* Improved selectors

* StoreCart typedef

* Split up cart state data and add more typedefs

* Add API tests for apply/remove coupon

* Jest tests

* Move default cart data to constant

* Comment indentation
2020-02-25 11:36:53 +00:00
Albert Juhé Lluveras d803f6cc64 Add product name and quantity to cart shipping rates endpoint (https://github.com/woocommerce/woocommerce-blocks/pull/1783)
* Add product name and quantity to cart shipping rates endpoint

* Make text accessible

* Add styling

* Create Packages component

* Add preview shipping rates to editor

* Add onChange default value

* Order props

* Use CSS instead of JS to render commas between package elements

* Change quantity type to number instead of integer
2020-02-25 10:32:59 +01:00
Darren Ethier 83d82f3061 Add missing alias for tsconfig and re-order alphabetically (https://github.com/woocommerce/woocommerce-blocks/pull/1800)
* add missing alias and re-order alphabetically

* Fix incorrect alias configuration
2020-02-24 10:50:16 -05:00
Albert Juhé Lluveras 4a5ad79823 Add style to radio control (https://github.com/woocommerce/woocommerce-blocks/pull/1789) 2020-02-24 13:30:09 +00:00
Darren Ethier f8d6735baf Create typedefs and add basic typescript configuration (https://github.com/woocommerce/woocommerce-blocks/pull/1796)
* install typescript and add typedef support

* add typedefs for Cart things

* improve typescript config

- adds more base config
- add our aliases

* fix error caught by typescript!

* Tweak typescript configuration

* Add missing `@woocommerce/settings` alias to ts config

* Add alias for type-defs
2020-02-24 07:52:24 -05:00
Mike Jolley 454bb07eda Add permalink to line items (https://github.com/woocommerce/woocommerce-blocks/pull/1791) 2020-02-24 12:39:43 +00:00
renovate[bot] 2212a74d49 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1799)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-24 12:15:37 +00:00
Albert Juhé Lluveras 261966d82c Remove broken links from README.md (https://github.com/woocommerce/woocommerce-blocks/pull/1792)
There were some links in README.md that were broken:
* `Contributing`: I linked it to `docs`, which has a summary of links to the `contributors` folder.
* `About the npm scripts`: I'm not sure where it was linking in the past, so I removed it (but happy to add it back if needed).
* `Publishing a release`: fixed the link to `docs/releases/readme.md`.
2020-02-21 18:22:06 +01:00
Seghir Nadir 2058c64bac redo work after rebase (https://github.com/woocommerce/woocommerce-blocks/pull/1777) 2020-02-21 17:40:25 +01:00
Albert Juhé Lluveras f0239d6378 Make Shipping Calculator Button type="submit" (https://github.com/woocommerce/woocommerce-blocks/pull/1785) 2020-02-21 16:26:27 +00:00
Mike Jolley 3e6f8fe6a6 Add isLoading property (https://github.com/woocommerce/woocommerce-blocks/pull/1788) 2020-02-21 14:08:57 +00:00
renovate[bot] edd3745f4a Update dependency downshift to v4.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1771)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-21 10:53:50 +01:00
Albert Juhé Lluveras 9debaf8daf Cart & Checkout: conditionally register country and state settings (https://github.com/woocommerce/woocommerce-blocks/pull/1782)
* Conditionally register wcSettings in the Cart and Checkout blocks

* Add tests
2020-02-20 16:16:32 +01:00
Mike Jolley 806cd76987 Display selected shipping location in cart block (https://github.com/woocommerce/woocommerce-blocks/pull/1767)
* county->state clarity

* Show formatted address
2020-02-19 17:14:41 +00:00
renovate[bot] 05d2815cf5 Update dependency eslint-plugin-jest to v23.7.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1772)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-19 16:36:56 +00:00
renovate[bot] 8209ecabbd Update dependency puppeteer to v2.1.1 (https://github.com/woocommerce/woocommerce-blocks/pull/1773)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-19 16:36:23 +00:00
renovate[bot] cd7a34a651 Update dependency compare-versions to v3.6.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1770)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-19 16:36:06 +00:00
renovate[bot] d5df819644 Update Node.js to v12.16.1 (https://github.com/woocommerce/woocommerce-blocks/pull/1769)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-19 16:35:04 +00:00
renovate[bot] 961a5274b2 Update dependency rimraf to v3.0.2 (https://github.com/woocommerce/woocommerce-blocks/pull/1774)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-19 16:34:39 +00:00
Seghir Nadir 90a7579461 Add Shipping settings to Cart block (https://github.com/woocommerce/woocommerce-blocks/pull/1561)
* add cart settings

* address typos

* update how settings should work

* get settings from woo and pass them to frontend

* reapply condition

* fix issue with attributes not presisting

* abstract shipping control

* rename constants

* update props in frontend

* fix bug with attributes not presisting

* conditionally display prices

* use country to decide to show prices

* disable shipping if shipping is not enabled

* enable coupons by default
2020-02-19 17:33:10 +01:00
Mike Jolley 6c954bdc5b Add support for image for product categories block (https://github.com/woocommerce/woocommerce-blocks/pull/1739)
* Add support for image for product categories block.

* Resolve feedback and style images, w/ thumbnails

* Toggle visibility of option based on list style

* Remove image size variable

* hasImage false by default

* reset styles

Co-authored-by: strarsis <strarsis@gmail.com>
2020-02-19 15:12:28 +00:00
Mike Jolley 2a25cfd0ed Implement browser autocomplete for checkout address fields (https://github.com/woocommerce/woocommerce-blocks/pull/1755)
* Add autocomplete support for textinput

* Add autocomplete fields to forms

* Prefix default ids

* Hack for autocomplete on custom select components

* Restore labels and avoid reset of state

* State field autocomplete

* Fix calculator autocomplete

* Simplify existance of hidden field

* move label on autofill preview in chrome

* Put back state clearance

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
2020-02-19 15:10:26 +00:00
Albert Juhé Lluveras 7b53486be3 Add loading state to shipping rates selector (https://github.com/woocommerce/woocommerce-blocks/pull/1764)
* Add loading state to shipping rates selector

* Add screenReaderLabel specific for ShippingRatesControl

* Rename LoadingComponent to LoadingMask
2020-02-19 11:51:15 +01:00
Albert Juhé Lluveras 8b7fa87b81 Add 2.5.12 and 2.5.13 changelog notes 2020-02-19 10:46:04 +01:00
Rua Haszard c13bd7e641 hook up cart items to API data in front end (https://github.com/woocommerce/woocommerce-blocks/pull/1741)
* hook up cart items to API data in front end (first cut)

* correctly decode entities in product attributes in cart:
+ support unnamed attributes

* correctly render markup in cart line item descriptions:
- description api field is html, so use dangerouslySetInnerHTML

* fix PropTypes - cartItems, not items

* hook up cart totals area to API data +
+ move editor preview totals data to resource-previews (to match API)

* tweak/tidy todo comments for cart front end

* use shorter summary field for cart line item blurb

* render empty cart inner blocks on front end when shopper cart is empty

* ensure empty cart doesn't show while cart contents is loading

* decode entities in attribute names when rendering cart items

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

* factor out cart data to a custom hook + exit earlier while loading

* wrap preview/sample cart variation data for translation

* use RawHTML component for rendering cart line item summary +
+ linter whitespace tweak

Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
2020-02-19 12:06:37 +13:00
Albert Juhé Lluveras bd6426ae84 Update WooCommerce tested version up to 4.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1768) 2020-02-18 14:51:25 +01:00
Mike Jolley 2ef1209ed8 Implement last modified header for the products endpoint to allow for cache busting (https://github.com/woocommerce/woocommerce-blocks/pull/1647)
* Implement last modified header for the products endpoint.

* Invalidation handling

* Freshness

* indenting correction

* Remove freshness and resolve feedback for last modified handling

* Remove getCollectionTimestamp

* Move logic to resolver

* Handle state during INVALIDATE_RESOLUTION_FOR_STORE
2020-02-18 11:37:39 +00:00
Rua Haszard c8c6d4ec7b fix cart api total_price value (previously had '36' appended to front): (https://github.com/woocommerce/woocommerce-blocks/pull/1760)
- explictly request 'edit' context before converting to money response
- default 'view' response returns string with markup, which confuses
prepare_money_response()
2020-02-18 11:31:24 +00:00
Albert Juhé Lluveras 29a763d7de Shipping rates: decode entities (https://github.com/woocommerce/woocommerce-blocks/pull/1762) 2020-02-18 11:50:08 +01:00
Seghir Nadir 23f574911b adjust currency and add docs (https://github.com/woocommerce/woocommerce-blocks/pull/1757) 2020-02-18 09:32:53 +01:00
Rua Haszard 04141b7c43 update all block one-line descriptions to match documentation (https://github.com/woocommerce/woocommerce-blocks/pull/1750) 2020-02-18 11:02:59 +13:00
Mike Jolley 212abe0010 Validate proptypes as any element (https://github.com/woocommerce/woocommerce-blocks/pull/1737) 2020-02-17 16:45:27 +00:00
Mike Jolley d76c3e0714 Implement __experimentalCreateInterpolateElement for translations. (https://github.com/woocommerce/woocommerce-blocks/pull/1736)
* Improved placeholders of translatable string

* Improved one more string

* Include wordpress element package

* Implement __experimentalCreateInterpolateElement for translations

* Dump fragments

Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-02-17 16:31:55 +00:00
Mike Jolley 45119716ed Add catalog visibility arg to product query attributes (https://github.com/woocommerce/woocommerce-blocks/pull/1753)
* Add catalog visibility arg to product query attributes

* catalog visibility
2020-02-17 16:16:01 +00:00
Albert Juhé Lluveras 6736a9d94a Add ShippingCalculator component (https://github.com/woocommerce/woocommerce-blocks/pull/1559)
* Create ShippingCalculatorAddress block

* Make 'change address' button to open/close the address form

* Create ShippingCalculator component

* Use CountryInput and CountyInput instead of TextInputs

* Fix city value not being set

* Fix shipping rate not appearing when there was only one option

* Unify postalCode and postCode to postcode

* Rename 'county' to 'state'

* Add reset styles for popular themes

* Increase cart-frontend.js max size
2020-02-17 12:12:15 +01:00
Rua Haszard c08e7b54d3 link to docs.woocommerce.com from repo readme (https://github.com/woocommerce/woocommerce-blocks/pull/1749) 2020-02-17 10:49:36 +00:00
renovate[bot] 32ea106b3d Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1742)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-17 10:47:22 +00:00
Darren Ethier 090dfc98e4 ensure travis is using php 7.3 for the linting job (https://github.com/woocommerce/woocommerce-blocks/pull/1740) 2020-02-14 15:16:58 -05:00
Albert Juhé Lluveras 69f49760a8 Create CountyInput component (https://github.com/woocommerce/woocommerce-blocks/pull/1727)
* Split CountryInput and Select

* Create County Input

* Show text input when there are no county options

* Reset county value when changing country

* Fix keyboard navigation

* Hide checkmark

* Add reset styles for several popular themes

* Add country prop to ShippingCountyInput
2020-02-14 13:30:33 +01:00
renovate[bot] 95abb4871a Update Node.js to v12.16.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1723)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-14 11:14:46 +00:00
Darren Ethier cee8a23a0e fix composer config and regenerate composer.lock (https://github.com/woocommerce/woocommerce-blocks/pull/1732) 2020-02-14 11:04:10 +00:00
Albert Juhé Lluveras a30615e2cb Hook up shipping methods to API (https://github.com/woocommerce/woocommerce-blocks/pull/1468)
* Create ShippingMethodsControl component

* Hook up shipping methods to API

* Add support for several packages

* Add tests to useShippingRates

* Fix shipping_rates property name

* Only show the products list if there are several packages

* Use <FormattedMonetaryAmount> to display shipping rate prices

* Make 'country' optional in CartShippingRates

* Make CartShippingRate API return currency info

* Minor improvements

* Fix shipping fields hidden in editor

* Fix missing currency in Checkout shipping rates selector

* Add links to issues in @todo comments

* Improve ShippingRatesControl useEffect

* Remove unnecessary tab

* Remove unnecessary id in RadioControl

* API: Add error when country is invalid

* Debounce shipping rates API requests

* 'Country key' -> 'Country code'

* Don't display radio input when there is only one option

* Add message when there are no results

* Minor enhacements

* Remove unnecessary Fragment

* Simplify RadioControlOption export

* Refactor 'renderOptions' and split it into several components

* Prevent Card sidebar from taking too much width

* Move country request check outside of the loop

* Fix failing test
2020-02-14 04:43:13 +01:00
Mike Jolley 5684d4ae8a Update testPathIgnorePatterns (https://github.com/woocommerce/woocommerce-blocks/pull/1731) 2020-02-13 12:53:15 -05:00
Albert Juhé Lluveras 8297530e95 Fix ESLint error when commiting bin/webpack-helpers.js (https://github.com/woocommerce/woocommerce-blocks/pull/1729) 2020-02-13 14:16:16 +01:00
Albert Juhé Lluveras bd8bd4f009 Load countries in settings only when a block requires them (https://github.com/woocommerce/woocommerce-blocks/pull/1726) 2020-02-13 13:52:04 +01:00
renovate[bot] 2320b8aa75 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/1724)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-12 08:01:30 -08:00
renovate[bot] 173a83e524 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/1722)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-12 07:55:38 -08:00
renovate[bot] 2e4e51b752 Update dependency commander to v4.1.1 (https://github.com/woocommerce/woocommerce-blocks/pull/1725)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-12 07:43:36 -08:00
Albert Juhé Lluveras 722599004a Change 'country' to 'country / region' label (https://github.com/woocommerce/woocommerce-blocks/pull/1721) 2020-02-11 18:33:41 +01:00
Mike Jolley 60d05aed19 Product search block e2e test (https://github.com/woocommerce/woocommerce-blocks/pull/1712)
* add docker files

* get tests to work

* remove irrelevant files

* add woocommerce as a dep

* remove eslintignore for tests

* undo travis chages till another PR

* remove local utils and call them directly from woocommerce

* remove travis db

* Block snapshot

* Test than the block can be inserted and interacted with

* Add snapshop

* Update snapshot

* rebase on master

* add a build script for just doing npm build on e2e tests

* just run build for e2e test job

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2020-02-11 12:23:23 -05:00
Darren Ethier a7cd7d6b22 Fix wp-cli container permissions issues for e2e docker test environment (https://github.com/woocommerce/woocommerce-blocks/pull/1716)
* add docker files

* get tests to work

* remove irrelevant files

* change userAgent to chrome

* add woocommerce as a dep

* add jest to eslint

* remove eslintignore for tests

* undo travis chages till another PR

* remove local utils and call them directly from woocommerce

* update deps

* add setup files to run tests

* export default wp link

* wait for select before selecting

* remove travis db

* ignore e2e tests in unit testing

* add tests

* add docker commands

* always run composer

* Make it possible to import directly from '@woocommerce/e2e-tests/utils'

* remove installing woocommerce via composer.

* add more docker npm scripts

* add custom docker config for wp-cli

* add changes to docker-composer.yml

Includes reading environment variables from `.env`

* revert customizations to .travis.yml

* move main docker file for the wordpress container to bin

* fix travis config

* rename wp install for travis builds back to original name

* use a version of docker-compose that travis supports

* add minor change to try and force travis test run

* fix incorrect command

* copy composer lock from master

* only run phpcs on /src directory

* give time for host to spin up for e2e tests

* increase sleep for waiting on container

* make sure plugin is built before running tests

* sigh fix improper command usage

Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
2020-02-11 11:13:20 -05:00
Albert Juhé Lluveras 85291159ae Fix Reviews blocks loading @wordpress/element in the frontend (https://github.com/woocommerce/woocommerce-blocks/pull/1719) 2020-02-11 15:41:50 +01:00
Albert Juhé Lluveras b5638ce87c Update Attribute Filter strings to ease translation (https://github.com/woocommerce/woocommerce-blocks/pull/1718) 2020-02-11 15:41:42 +01:00
renovate[bot] 4076d2d444 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1704)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 17:15:42 -05:00
renovate[bot] 43f56151cd Update wordpress monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/1709)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 17:02:09 -05:00
renovate[bot] 1007aff626 Update dependency cross-env to v7 (https://github.com/woocommerce/woocommerce-blocks/pull/1710)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 16:47:41 -05:00
renovate[bot] 1e708d4ce7 Update dependency lint-staged to v10 (https://github.com/woocommerce/woocommerce-blocks/pull/1711)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 16:47:05 -05:00
renovate[bot] 0a6190c708 Update storybook monorepo to v5.3.12 (https://github.com/woocommerce/woocommerce-blocks/pull/1708)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 16:45:25 -05:00
renovate[bot] bfadae7bba Update dependency @babel/core to v7.8.4 (https://github.com/woocommerce/woocommerce-blocks/pull/1707)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 16:34:11 -05:00
renovate[bot] b5e9e1851c Pin dependency create-file-webpack to 1.0.2 (https://github.com/woocommerce/woocommerce-blocks/pull/1706)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-10 16:25:59 -05:00
Darren Ethier 66a8621187 use non-deprecated value for eslint on wcSettings global (and set to readonly) (https://github.com/woocommerce/woocommerce-blocks/pull/1713) 2020-02-10 08:54:57 -05:00
Seghir Nadir ce190a9c72 Add eslint to ensure correct usage of feature flag (https://github.com/woocommerce/woocommerce-blocks/pull/1696)
* introduce feature flags

* move config to webpack-helper

* remove package default

* add gating to frontendConfig and coreConfig

* add feature gating to PHP

* add flag to start command

* move code to Bootstrap.php

* remove flag from npm start

* add eslint rule

* add strict equal only rule

* update messages to use tokens

* update strictBinary to whitelistedFlag and add all tests

* update to correct messageId key

* add more tests

* highlight wrong flag
2020-02-10 14:24:15 +01:00
Seghir Nadir a39426495d Give Woo Icon special treatment by making it a component (https://github.com/woocommerce/woocommerce-blocks/pull/1702)
* fix broken woo icon

* treat woo icon in a special way

* fix propType typo
2020-02-10 14:24:02 +01:00
Darren Ethier 58867bc328 Check for instance of WooCommerce and WP_Error before initializing session and cart in `rest_authentication_errors` callback. (https://github.com/woocommerce/woocommerce-blocks/pull/1698)
* check for instance of WooCommerce before initializing session and cart

* fix invalid filter usage and include WP_Error check

* check for existence of instance method rather than WC instance itself
2020-02-05 22:45:09 +01:00
Seghir Nadir ad08e0e10b default-to-experimental-when-no-flag-is-present (https://github.com/woocommerce/woocommerce-blocks/pull/1700) 2020-02-05 19:40:10 +01:00
Seghir Nadir 8e3ac17585 Introduce feature flags (https://github.com/woocommerce/woocommerce-blocks/pull/1631)
* introduce feature flags

* move config to webpack-helper

* add flag to deploy command

* remove package default

* add cross-env

* add gating to frontendConfig and coreConfig

* exclude entries from being built on stable mode

* add feature gating to PHP

* add flag to start command

* add flags to travis

* add endpoints

* add better defaults for php

* move code to Bootstrap.php

* no need to spread single object

* ignore blocks.ini

* type check feature flag

* remove blocks.ini

* sanitize flag

* remove flag from npm start

* format condition

* keep spaces for package-lock.json

* check for env before going to block ini

* add env vars to travis

* whitelist env var
2020-01-31 21:04:37 +01:00
Seghir Nadir bfb2f33bfd add new icons and remove old ones (https://github.com/woocommerce/woocommerce-blocks/pull/1644)
* add new icons and remove old ones

* add docs

* add notes and remove gridicons

* update to folderStarred

* typos

* reorder imports

* update prop name to srcElement

* validate element

* fix bad import

* lowecase folderStarred

* add propTypes
2020-01-31 19:20:33 +01:00
Albert Juhé Lluveras 48c914ce4d Load core translations for PHP strings that don't have a translation (https://github.com/woocommerce/woocommerce-blocks/pull/1694)
* Load core translations for PHP strings too

* Fix accepted_args

* Make phpcs:ignore more precise
2020-01-31 15:28:18 +01:00
Mike Jolley ca8efd7c3e Add API fetch error handling (https://github.com/woocommerce/woocommerce-blocks/pull/1687)
* initial experiment for fetch error handling

* throw error from api response error (this allows for catching it in the stream)

* Add ERROR action type

* Controls: resolve with an error response object rather than throw exception

* remove try catch from resolver; just yield correct object based on presence of any errors

* Make the use collection hook return an error.

* Small tidy up in use-store-products

* Throw exception from Use Collection - useState is needed for the exception to work inside a hook (see comments)

* Show error code from API in error message

* Update assets/js/base/components/block-error-boundary/block-error.js

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

* Update assets/js/base/components/block-error-boundary/style.scss

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

* Remove comment

* Handle api error in boundry

* Use reject in promise

* Return error message by default which may be undefined (this is ok)

* Update mocks so tests pass again

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
2020-01-31 13:01:34 +00:00
Mike Jolley 6e27805ca7 Re-organise docs and add WP update instructions (https://github.com/woocommerce/woocommerce-blocks/pull/1691)
* Move coding guideline and release docs to subdirectories

* Strip down contributing md to link to new docs

* Create main readme file to act as TOC

* Getting started and testing docs from contributing.md

* WP update testing checklist and docs for woocommerce/woocommerce-blocks#1285

* Update docs/contributors/smoke-testing.md

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

* link to svn doc

* Link to docs from readme

* Resolve feedback

* More consistent $ usage

Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
2020-01-31 12:48:11 +00:00
Mike Jolley b569f53083 Add and/or labelling to active filters block (https://github.com/woocommerce/woocommerce-blocks/pull/1630)
* Add And/or labelling

* Revised design

* Update assets/js/blocks/active-filters/utils.js

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

* Add prefix so name is not changed - fixes duplicate items

* Update BEM css classes

* Update styling to handle nested lists

* Remove extra padding within chips

Co-authored-by: Albert Juhé Lluveras <aljullu@gmail.com>
2020-01-31 10:15:22 +00:00
Rua Haszard 7f44458418 Basic storybook implementation (https://github.com/woocommerce/woocommerce-blocks/pull/1636)
* install & configure storybook (via magic npx script)

* fix indentation in storybook generated files

* eslint ignore generated storybook files (for now at least)

* unhide storybook folder, consistent with Gutenberg project

* demo story for one of our components (with no css/styles)

* hack in scss webpack config & add story for button:
- fixes scss imports breaking storybook build
- note scss / styling doesn't work yet
+ organise our component stories into folder

* git ignore storybook-static build folder

* pin dependencies for storybook

* piggy-back off main webpack config for storybook module.rules (for scss)

* use gutenberg (wp-components) styles in storybook

* use system font for storybook, consistent with wp-admin/gberg and reasonable default for components in front end

* add --ci flag to prevent storybook opening new browser tab…
- see also https://github.com/storybookjs/storybook/issues/6201

* rename default stories to Default (following Gutenberg pattern)

* add story for ErrorPlaceholder

* failing ProductPreview story (committing to PR as an example for discussion)

* storybook for components/icons

* fix aliased dependencies in components for storybook:
append our webpack aliases to storybook webpack config

* basic story for PriceSlider (looks right but interaction broken)

* fix PriceSlider user interaction:
- PriceSlider expects client to handle onChange and pass in new min/max

* add comment about priceslider max/min (todoish)

* remove default stories from storybook scaffolding

* organise stories by module (aka folder in codebase)

* package-lock update after rebase

* remove unnecessary ignores (default stories are gone)

* delete experimental/risky/broken stories:
- icons components are changing in woocommerce/woocommerce-blocks#1644
- we need to refactor/do more work to get ProductPreview working (settings globals)

* remove unnecessary import

* clarify PriceSlider component intended usage comment in story

* remove redundant wrapper divs from stories

* add common storybook addons (used by Gutenberg storybook)

* rebuild package.lock after rebase

* remove unnecessary wrapper div

* package fixes after rebase

* add configuration for storybook source loader

* add decorators for a11y and knobs plugins

* remove unnecessary react import & import useState from WP

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2020-01-31 09:59:14 +13:00
renovate[bot] dd53b1779b Update wordpress monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/1666)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 13:16:52 +01:00
renovate[bot] 2e78ff6187 Update dependency rimraf to v3.0.1 (https://github.com/woocommerce/woocommerce-blocks/pull/1664)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 12:07:06 +01:00
renovate[bot] 35c0d176df Update npm to v6.13.7 (https://github.com/woocommerce/woocommerce-blocks/pull/1665)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 11:58:28 +01:00
renovate[bot] 3f982ab71c Update dependency eslint-config-prettier to v6.10.0 (https://github.com/woocommerce/woocommerce-blocks/pull/1663)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 11:57:52 +01:00
renovate[bot] 3306726a35 Update dependency downshift to v4.0.8 (https://github.com/woocommerce/woocommerce-blocks/pull/1662)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 11:53:34 +01:00
renovate[bot] c13449d5e6 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/1661)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 11:53:22 +01:00
Albert Juhé Lluveras c8f297a700 All Products & filters accessibility improvements (https://github.com/woocommerce/woocommerce-blocks/pull/1656)
* Add aria-label to All Products ratings

* Add specific screen reader text to some buttons

* Increase All Products regular price color constrast

* Remove invalid CSS declaration

* Make styleint-disable comment more specific

* Attributes Filter: make input non-focusable if we display the 'change filter' button

* Improve translator documentation

* Hide price slider from screen readers if price inputs are enabled

* Linting fixes

* Price slider: make it non-focusable if input fields are displayed

* All Products: announce how many products were found

* All Products: announce when a filter is removed

* Revert "All Products: announce when a filter is removed"

This reverts commit 2c861bf1b988155313ad44bafbcaf3f4f1549296.

* Pagination component: improve screen reader texts

* Filter submit button: improve screen reader texts

* Remove unnecessary text

* Improve comment

* Use %d for numeric values

* Add label and screenReaderLabel props to FilterSubmitButton component
2020-01-30 11:04:39 +01:00
Albert Juhé Lluveras aa4bc302a5 Replace three dots with an ellipsis in Product Search placeholder (https://github.com/woocommerce/woocommerce-blocks/pull/1672) 2020-01-30 10:28:17 +01:00
Mike Jolley 29600c501f Summary/description consistency update (https://github.com/woocommerce/woocommerce-blocks/pull/1639)
* Audit atomic block labels

* Add summary, descrtiption, and short description to API and use for summary block

* Add summary to cart item api

* Respect short description

* Tweak label of summary block

* Revert product rating label

* One description vs 3

* Update sample content with more appropriate values, and match in cart items sample

* Move summary generation to class

* Tests

* Prevent extending `ProductSummary`

* Tweak $paragraph handling

* More accurate word counting

* add tear down for filter
2020-01-29 10:59:33 +00:00
Mike Jolley b65b93e7e7 Rename the "Align Buttons" option for the All Products Block (https://github.com/woocommerce/woocommerce-blocks/pull/1659)
* Allow css to work for any element

* Rename option to specific last block rather than button
2020-01-29 10:28:40 +00:00