Commit Graph

2517 Commits

Author SHA1 Message Date
Mike Jolley bcac811d7c Fix es lint warnings (https://github.com/woocommerce/woocommerce-blocks/pull/4206)
* 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
2021-05-16 18:59:32 +01:00
Raluca Stan 7deea0eee8 Fix cart and checkout frontend e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/4199)
* Wip: fix e2e fe tests

* Test that navigation ends

* Fix waitForNavigation

* comment out failing php test

* click the dom element

* Ensure navigation happens by waiting for it. Test page title.

* remove skip and update docs

* Revert "comment out failing php test"

This reverts commit 7c40e8caf3aa32e35e3b70eb32051251b06e0613.

* Fix USD from merge conflict

* Add missing check for page title

* Try page.waitForFunction for text search

* test to see checkout page title is correct

* test checkout page url on CI

* unde jest config change

* Fix assertion for checkout page

* remove extra localStorage item remove call

Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2021-05-16 18:41:34 +01:00
Mike Jolley d1f55724e6 Set order status to pending when no payment is needed (https://github.com/woocommerce/woocommerce-blocks/pull/4186) 2021-05-13 11:49:39 +01:00
Mike Jolley 286d52befb Remove the need for the `canMakePayment` callback in the editor context (https://github.com/woocommerce/woocommerce-blocks/pull/4188)
* Force can pay true in editor context

* Update docs
2021-05-13 11:21:21 +01:00
Mike Jolley 87bb095f1f Sync customer data during checkout with draft orders. (https://github.com/woocommerce/woocommerce-blocks/pull/4197)
* Update store when email changes

* Add pluckEmail helper and convert to TS

* improve guard

* sync draft order with customer data
2021-05-13 11:20:37 +01:00
Albert Juhé Lluveras 792f0671af Set default store currency to USD in tests (https://github.com/woocommerce/woocommerce-blocks/pull/4203) 2021-05-13 12:14:15 +02:00
renovate[bot] c2a07c7a9d Update dependency config to v3.3.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4195)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-13 10:16:04 +02:00
renovate[bot] a071edfd92 Update dependency cssnano to v4.1.11 (https://github.com/woocommerce/woocommerce-blocks/pull/4196)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-13 10:15:35 +02:00
Seghir Nadir 0c42322dba Add cart data to filters (https://github.com/woocommerce/woocommerce-blocks/pull/4164)
* add cart data to filters

* add extensions back to footer filter
2021-05-12 13:32:05 +01:00
renovate[bot] 730d7fa82b Pin dependency lodash to 4.17.21 (https://github.com/woocommerce/woocommerce-blocks/pull/4193)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-12 13:04:44 +01:00
renovate[bot] adcaaa2352 Update dependency chalk to v4.1.1 (https://github.com/woocommerce/woocommerce-blocks/pull/4194)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-12 13:04:13 +01:00
Mike Jolley a90988aebf Should be using value rather than name (https://github.com/woocommerce/woocommerce-blocks/pull/4187) 2021-05-12 13:02:26 +01:00
Thomas Roberts 1dcbddc0bd Add checkout filter for coupon names (https://github.com/woocommerce/woocommerce-blocks/pull/4166)
* Make extensions optional, not all filters will need to pass this through

For example the CartCouponSchema has no option for extensibility (and I don't think it's needed at any rate) so extensions will always be an empty object. Rather than explicitly specifying this when running the filter, we can let it default to an empty object.

* Add filter for coupon code
2021-05-11 13:57:02 +01:00
Thomas Roberts f97ee971af Check if variation data is iterable before formatting (https://github.com/woocommerce/woocommerce-blocks/pull/4182) 2021-05-11 11:45:02 +01:00
Darren Ethier 523f49d3b1 update package-lock (version change mostly) 2021-05-10 11:21:01 -04:00
Darren Ethier fb70016d45 update version string to dev version 2021-05-10 11:16:58 -04:00
github-actions[bot] e3568aa275 Release: 5.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4185)
* Empty commit for release pull request

* Add changelog

* update testing notes

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2021-05-10 11:14:05 -04:00
renovate[bot] a4c2f2e7ae Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4184)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-10 14:38:04 +02:00
Thomas Roberts 6ffa778729 Convert shipping components to typescript (https://github.com/woocommerce/woocommerce-blocks/pull/4135)
* Add type defs for customer

Taken from 194ecccf78/assets/js/type-defs/customer.ts

* Convert ShippingCalculatorAddress to TypeScript

* Convert ShippingCalculator to TypeScript

* Convert ShippingLocation to TypeScript

* Allow packageId to be a number or string in useSelectShippingRate(s)

* Convert ShippingRatesControl to TypeScript

* Convert ShippingOptionsStep to TypeScript

* Allow package_id to be a string or number

This is because of Subscriptions using strings for package IDs

* Change to use CartShippingRateItemShippingRate instead of Rate

* Add extra props to PackageProps type

* Make ShippingAddress have the correct type

* Use CartShippingRateItemShippingRate instead of Rate

* Remove Rate type

* Set return types to JSX.Element

* Change type of props.renderOption in ShippingRatesControl

* Remove customer type defs and relocate aliases to default-address-fields

* Add EnteredAddress type

* Import EnteredAddress from new location

* Remove unnecessary eslint ignore

* Remove unused variable

* Remove confusing use of word Item in Shipping types

* Remove confusing use of word Item in Shipping types
2021-05-10 10:03:30 +01:00
Albert Juhé Lluveras a25eba0232 Feature gate PaymentApi (https://github.com/woocommerce/woocommerce-blocks/pull/4176)
* Feature gate PaymentApi

* Improve payment method missing dependencies error message so it's clear it only affects blocks

* Add PaymentApi feature flags to list of feature flags in docs
2021-05-10 10:00:14 +02:00
Darren Ethier c85654f579 Improvements to `emitEventWithAbort`. (https://github.com/woocommerce/woocommerce-blocks/pull/4158)
* modify emitEventWithAbort to change return value

`emitEventWithAbort` now returns an array of responses up to the first response that triggered an error or fail response instead of aborting on success responses too.

* update add to cart form context provider

* update checkout state context provider

* update payment method data context provider

* update tests and fix thrown error handling.
2021-05-07 16:39:28 -04:00
Raluca Stan 269341acc4 Add lodash as a devDependency (https://github.com/woocommerce/woocommerce-blocks/pull/4179) 2021-05-07 15:50:55 +02:00
Seghir Nadir 037dc09f62 Don't clear email and phone fields when using separate billing address. (https://github.com/woocommerce/woocommerce-blocks/pull/4162)
* preseve-billing-data

* pluck empty email and phone

* add issue number
2021-05-05 12:59:30 +01:00
Raluca Stan b9db5d4c51 Fix/cart backend test (https://github.com/woocommerce/woocommerce-blocks/pull/4153)
* Fix backend cart e2e test

* Adjust test structure

* Fix e2e checkout backend test.

Make sure the confirmation window is closed
2021-05-05 12:52:27 +01:00
renovate[bot] 07abd0f0b8 Update dependency @stripe/stripe-js to v1.14.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4170)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 10:08:45 +00:00
Thomas Roberts 57b4215bce Add documentation for filters (https://github.com/woocommerce/woocommerce-blocks/pull/4167)
* Rename the argument in the CheckoutFilterFunction type

This only exists as an extra descriptive hint to anyone using this type, the value `label` was never used by anything so it does not need to be changed anywhere else.

* Create Available Filters document

* Add available filters to the extensibility README

* Update docs/extensibility/available-filters.md to fix typographical error

Co-authored-by: Mike Jolley <mike.jolley@me.com>

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-05-05 10:41:48 +01:00
renovate[bot] 7a53dd1f27 Update dependency @woocommerce/e2e-utils to v0.1.4 (https://github.com/woocommerce/woocommerce-blocks/pull/4172)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 08:10:24 +00:00
renovate[bot] 1cabe4b614 Update dependency @types/react to v16.14.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4171)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 03:31:52 +00:00
renovate[bot] 0255e27bb0 Update babel monorepo (https://github.com/woocommerce/woocommerce-blocks/pull/4169)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-05 02:23:13 +00:00
renovate[bot] 599814cf43 Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4163)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-04 14:07:05 +01:00
Mike Jolley 2b6952151e 5.1.0-dev 2021-04-28 17:21:36 +01:00
github-actions[bot] 6614876baa Release: 5.0.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4144)
* Empty commit for release pull request

* Changelog

* Testing instructions

* cast correct value of setting

* fix typo

* add zip

* /tsconfig.base export-ignore

* update image

* Bumping version strings to new version.

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
Co-authored-by: Nadir Seghir <nadir.seghir@gmail.com>
2021-04-28 17:15:39 +01:00
Seghir Nadir c5c3a87080 Change checkoutAllowsGuest to the correct value. (https://github.com/woocommerce/woocommerce-blocks/pull/4146)
* cast correct value of setting

* fix typo
2021-04-28 16:01:24 +01:00
Mike Jolley 39f9ef2183 Add inline console warning if shared settings hook is consumed (https://github.com/woocommerce/woocommerce-blocks/pull/4143)
* Add inline console warning if shared settings hook is consumed

* remove localisation on console string
2021-04-28 13:09:41 +01:00
renovate[bot] 2ba92e566d Update dependency @types/jest to v26.0.23 (https://github.com/woocommerce/woocommerce-blocks/pull/4142)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 05:36:23 +00:00
renovate[bot] d51c50b98e Update dependency @testing-library/react-hooks to v5.1.2 (https://github.com/woocommerce/woocommerce-blocks/pull/4141)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 04:07:10 +00:00
renovate[bot] b95e2ecf10 Pin dependencies (https://github.com/woocommerce/woocommerce-blocks/pull/4139)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 02:58:03 +00:00
renovate[bot] b14d16bd98 Update dependency @testing-library/jest-dom to v5.12.0 (https://github.com/woocommerce/woocommerce-blocks/pull/4140)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-28 01:59:52 +00:00
Thomas Roberts 803ed0a0bd Convert Product summary to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/4099)
* Add WordCountType type

* Convert Summary to TypeScript

* Convert ProductSummary to TypeScript
2021-04-27 17:39:20 +01:00
renovate[bot] 4cea6ccb2b Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/4073)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-27 16:55:12 +01:00
renovate[bot] 409fc79d75 Update dependency autoprefixer to v10.2.5 (https://github.com/woocommerce/woocommerce-blocks/pull/4064)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-27 11:45:59 +00:00
Albert Juhé Lluveras 7091bd7894 Remove work-around to load our stylesheets after wp-edit-post (https://github.com/woocommerce/woocommerce-blocks/pull/4097) 2021-04-27 11:17:43 +01:00
Mike Jolley 1166ff3a51 Switch to `rest_preload_api_request` for API hydration in cart and checkout blocks. (https://github.com/woocommerce/woocommerce-blocks/pull/4090)
* Introduce hydrate_api_request

* Consume preloadedApiRequests

* no need to set false here
2021-04-27 11:16:23 +01:00
renovate[bot] bd7cad31e8 Update dependency @testing-library/react to v11.2.6 (https://github.com/woocommerce/woocommerce-blocks/pull/4063)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-27 11:04:36 +01:00
Thomas Roberts e6c7f2b6c0 Check for element before trying to click it in cart backend test (https://github.com/woocommerce/woocommerce-blocks/pull/4087) 2021-04-27 09:39:31 +01:00
Thomas Roberts 583113e373 Remove woocommerce as a dependency and install @woocommerce/e2e-utils (https://github.com/woocommerce/woocommerce-blocks/pull/4078)
* Remove woocommerce as a dependency and install @woocommerce/e2e-utils

* Remove reference to woocommerce package from tsconfig and jest config
2021-04-26 16:31:30 +01:00
Raluca Stan 8ee5e816a0 Rename onCheckoutBeforeProcessing to onCheckoutValidationBeforeProcessing (https://github.com/woocommerce/woocommerce-blocks/pull/4039) 2021-04-26 17:27:22 +02:00
Thomas Roberts 10d11e0748 Convert Product components to TS (https://github.com/woocommerce/woocommerce-blocks/pull/4098)
* Update package-lock.json

* Move Block Type Settings into Block Type Classes (https://github.com/woocommerce/woocommerce-blocks/pull/4059)

* 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

* Rename product backorder badge to tsx

* Rename Policies component to tsx

* Convert Product badge to TS

* Convert Product Details to TypeScript

* Convert ProductImage to TypeScript

* Convert ProductLowStockBadge to TypeScript

* Move ItemData into ProductResponse type def file

* Add type defs directory to tsconfig

* Import types for ProductResponseItemData in ProductDetails

* Convert ProductMetaData to TypeScript

* Convert ProductSaleBadge to TypeScript

* Type component props to their interfaces

* Ensure components have an explicit return type of JSX.Element set

* Export PLACEHOLDER_IMG_SRC as string

* Add null to component return type

* Import PLACEHOLDER_IMG_SRC from correct location

Co-authored-by: Mike Jolley <mike.jolley@me.com>
2021-04-26 13:20:30 +01:00
Thomas Roberts 5871d86d7f Update `Button` component to ts (https://github.com/woocommerce/woocommerce-blocks/pull/4091)
* Convert Button to TypeScript

* Add alias of @types/wordpress__components

* Make ButtonProps extend the wp/components button's base props

* Update package-lock.json

* Extend Button.ButtonProps instead of only BaseProps

* Add return type to Button component
2021-04-26 10:49:57 +01:00
Mike Jolley 114cdf3e98 Create AssetsController and BlockTypesController (replaces Assets.php and Library.php) (https://github.com/woocommerce/woocommerce-blocks/pull/4094)
* Removed deprecated register_block_script method

* Move assets class content to AssetsController

Co-Authored-By: Bartosz Budzanowski <17271089+budzanowski@users.noreply.github.com>

* Refactor Library into BlockTypesController

* Add new classes to bootstrap

* @since $VID:$

* Add deprecated Library and Assets classes

* Update comments

* final class

* Move redirect_to_field

Co-authored-by: Bartosz Budzanowski <17271089+budzanowski@users.noreply.github.com>
2021-04-26 10:37:10 +01:00