Commit Graph

173 Commits

Author SHA1 Message Date
Kelly Dwan 2a00a897d5 Components: Move SearchListControl to woocommerce/components (https://github.com/woocommerce/woocommerce-blocks/pull/442)
* Switch to using the SearchListControl from woocommerce/components

* Remove unused mixin
2019-02-21 13:07:08 -05:00
Kelly Dwan b14a37f7b5 Update CSS build process (https://github.com/woocommerce/woocommerce-blocks/pull/439)
* Split apart editor and frontend styles

* Remove the empty JS files after each build

* Pull out editor and style CSS files into two single, separate files
Rename products-grid CSS, add a “global” front end stylesheet

* Update style registration to use these two new global CSS files

* Merge style JS files into vendors before deleting them

* Remove empty file to fix lint error

* Check for file before reading from it

When watching, not all the file stubs are created, so this errors out.
2019-02-19 16:09:36 -05:00
Kevin Killingsworth ecb0f7741b Add catalog_visibility param to products api (https://github.com/woocommerce/woocommerce-blocks/pull/406)
* Add catalog_visibility param to products api

This adds a catalog_visibility=visible option to the product api which
will filter out any products that are excluded from the catalog.

* Add product_visibility phpunit test

* Add catalog_visibility for catalog, search, hidden

* Fix util js test

The util js test checks for query parameters, so this adds the
category_visibility = 'visible' param.

* Updated for comments

1. Added collection params
2. moved catalog_visibility default with others
2019-02-19 10:09:16 -06:00
Kelly Dwan a503af9e51 Add space between the icon and placeholder title (https://github.com/woocommerce/woocommerce-blocks/pull/421) 2019-02-18 09:48:34 -05:00
Kelly Dwan ee8e185e4d Featured Product: Remove ability to change source product (https://github.com/woocommerce/woocommerce-blocks/pull/415) 2019-02-12 10:04:36 -05:00
Kelly Dwan 299412bb0f Featured Product: Try using Button block for button (https://github.com/woocommerce/woocommerce-blocks/pull/398)
* Try using Button block for the product button

* Use the permalink for the selected product

* Fix use of templateLock prop

* Fix button component alignment
2019-02-08 18:57:58 -05:00
Kelly Dwan 1f880b309a ProductAttributeControl: Polish style, screen reader interaction (https://github.com/woocommerce/woocommerce-blocks/pull/412)
* Save attribute terms per attribute, so we don’t need to do duplicate API requests for previously fetched terms. Add spinner to loading items.

* Add count to API response

* Use terms count in displaying attribute type

* Update attribute selection code to collapse already-selected attributes

* Add a chevron icon indicating open-able attributes

* Center the loading indicator

* Remove count from attribute type & re-add it to the terms themselves
2019-02-08 14:57:56 -05:00
Kelly Dwan 388d083c2b Products by Attribute: Update block to use API, shortcode rendering (https://github.com/woocommerce/woocommerce-blocks/pull/405)
* Add “attribute selection” step before allowing terms to be selected

* Update query builder

* Use shortcode to render block

* Styling for child list items
2019-02-07 15:26:47 -05:00
Kelly Dwan 6bf837ff7a Featured Product: Allow to resize the block height (https://github.com/woocommerce/woocommerce-blocks/pull/397)
* Add ResizeableBox wrapper to component to adjust height

* Use the fixed height on the front end display of the block

* Fix display of resize handle

* Allow the default & min featured product heights to be customized by setting a new theme support keyword, `featured_block`.

* Use `min-height` on the front end display, so content is not clipped on smaller screens

* Add a wrapper div to the content, to prevent it from breaking out of the block display
2019-02-05 15:49:24 -05:00
Kevin Killingsworth dc2b4485f4 Add placeholder image for product preview (https://github.com/woocommerce/woocommerce-blocks/pull/382)
* Add placeholder image for product preview

This adds the designated placeholder image url from settings into the
wcSettings global for the blocks to use. Then uses the placeholder url
when a product doesn't have any images.

* Updated based on review notes

Using `$block_settings` instead of `$settings`
Using '' alt tag
Updated snapshot

* Add the placeholder global to test that it passes through to the preview
2019-02-01 10:45:53 -05:00
Kelly Dwan 017f0df5b7 Blocks: Restrict row/column values to only valid values (https://github.com/woocommerce/woocommerce-blocks/pull/386)
* Add a new LayoutControl component

* Use new LayoutControl to handle rows & columns settings

* Fix errors when rows or columns is empty (silently fall back to default to prevent breaking the block)

* Rename `LayoutControl` to `GridLayoutControl`
2019-01-31 17:55:54 -05:00
Kelly Dwan 5f4b6c74db Use defaultProps to set up the taxonomy control operators (https://github.com/woocommerce/woocommerce-blocks/pull/381) 2019-01-31 15:43:55 -05:00
Kelly Dwan ac96484f7a New block: Products by Attribute (https://github.com/woocommerce/woocommerce-blocks/pull/378)
* Add Products by Attribute block

* Remove attributes property from sharedAttributes

* Add operator control to Products Attribute selector

* Fix default operator queries

* Add the initial “edit mode” placeholder screen

* Style attribute selector better

* Add ‘edit mode’ toggle to toolbar

* Add orderby control
2019-01-30 16:27:56 -05:00
Kelly Dwan eee1359cc0 Fix translations, bundle complete JS translation files (https://github.com/woocommerce/woocommerce-blocks/pull/339)
* Update the translation file with strings in new JS files

* Automatically build the translation files when building the JS files

* Reorganize script+style registration so that all files for each block are grouped together

* Bundle the finished translations into the plugin

* Fix untranslated strings

* Remove the edit-blocks dependency from featured product CSS file (https://github.com/woocommerce/woocommerce-blocks/pull/342)
2019-01-17 11:58:53 -05:00
Kelly Dwan 7a67ad3c26 SearchListControl: Use the “radio” role for selecting just one item (https://github.com/woocommerce/woocommerce-blocks/pull/337) 2019-01-17 10:58:41 -05:00
renovate[bot] 0dfece4fd6 Update dependency @woocommerce/components to v1.4.0 (https://github.com/woocommerce/woocommerce-blocks/pull/333)
* Update dependency @woocommerce/components to v1.4.0

* Fix test snapshots
2019-01-16 18:58:37 -05:00
Kelly Dwan ea4996267c Add catOperator to remaining blocks (https://github.com/woocommerce/woocommerce-blocks/pull/328) 2019-01-15 13:52:34 -05:00
Kelly Dwan 6267b32772 Featured Product block: Allow custom background image selecton (https://github.com/woocommerce/woocommerce-blocks/pull/322)
* Add media icon to toolbar, save selected media ID and src as attributes

* Use the selected image instead of the product image, if set

* Unset the selected image when a new product is selected
2019-01-14 17:22:00 -05:00
Kelly Dwan 71b448f8b6 Build: Split out vendor files into separate, shared JS & CSS files (https://github.com/woocommerce/woocommerce-blocks/pull/314)
* Add splitchunks to webpack config to combine node_modules imports into a vendors script

* Move legacy CSS into legacy folder

* Get components css without needing to use relative path

* Add vendors css file
2019-01-14 15:33:17 -05:00
Kelly Dwan 162c55d0cc Hide the legacy products block from the block inserter (https://github.com/woocommerce/woocommerce-blocks/pull/143) 2019-01-14 15:03:12 -05:00
Kelly Dwan 2201fe7db7 Remove the “Filter by Attribute” panel from products by category block (https://github.com/woocommerce/woocommerce-blocks/pull/321) 2019-01-14 14:53:55 -05:00
Kelly Dwan 6f2719d36b Featured Product Block: Use real product short description (https://github.com/woocommerce/woocommerce-blocks/pull/315) 2019-01-14 14:53:30 -05:00
James Koster 9c414cac0a Featured Products style tweaks (https://github.com/woocommerce/woocommerce-blocks/pull/316)
* Update search list item padding

* Fix search list item radio alignment

* Star icon: Material -> Dashicons

* Featured product min height

* placeholder icon + explanation of explicit height value

* Fix linter errors

* Remove unnecessary Icon from block registration

* Remove the star icon
2019-01-14 14:37:35 -05:00
Kelly Dwan 0d720183aa Add "Featured Product" block preview (https://github.com/woocommerce/woocommerce-blocks/pull/308)
* Add classnames package

* Add background image & initial styles

* Only show inspector controls when not in edit-mode

* Add overlay color + opacity controls

* Add content alignment

* Fix display of content

* Add content toggles

* Update styles from feedback

* Display the "Featured Product" block on the frontend (https://github.com/woocommerce/woocommerce-blocks/pull/310)

* Add render_callback to dynamically render product

* Set a size for the product description

* Remove fallback placeholder image

* Reset the background color for the placeholder component

Previously this was overriding storefront's custom background color CSS

* Update nested conditional

* Remove unnecessary style

* "Featured Product" Block: Add link to the product to the block (https://github.com/woocommerce/woocommerce-blocks/pull/311)

* Featured Product Block: Add link to the product to the block

* Add a better link label for screen reader users

* Match core button styles, fix alignment of button-link
2019-01-13 12:22:15 -05:00
Kelly Dwan 64e46b8f8e Add ProductControl, update SearchListControl to pick a "single item" (https://github.com/woocommerce/woocommerce-blocks/pull/304)
* Add a prop to turn on “single choice” mode

* Create new ProductControl to select a single product

* Remove align from shared attributes

This is given to us by default for using supports.align

* Add Featured Product block

* Fix spelling mistake & copy-paste issue

* Fix lint warning

* Add featured product script to build process, register block in PHP
2019-01-10 14:01:49 -05:00
Kelly Dwan 6a1c1490cb Split blocks into separate JS files (https://github.com/woocommerce/woocommerce-blocks/pull/305)
This lets us use the functionality of `register_block_type` to automatically enqueue the scripts and styles used by blocks in the editor, and eventually, styles on the frontend as well. Also adds cssnano to minify our CSS.
2019-01-10 13:16:37 -05:00
Kelly Dwan 86874a64e6 Icons: add star and radio button icons, organize folder (https://github.com/woocommerce/woocommerce-blocks/pull/303)
* Split out icons into individual files, add radio icons

* Add star icon

* Fix SVG output in tests
2019-01-09 15:33:10 -05:00
Kelly Dwan 79574a6450 Products by Category: don't show products if no category is selected, better message (https://github.com/woocommerce/woocommerce-blocks/pull/281)
* Prevent Products by Category from showing all products when no category is selected

* Update string when no categories are selected

* Update button text

* Revert button change, Done is more appropriate
2019-01-04 16:34:37 -05:00
Kelly Dwan bc53626f1d Hide the selected items section until the content is loaded (https://github.com/woocommerce/woocommerce-blocks/pull/282)
This will prevent the inaccurate “0 items selected” message
2019-01-03 11:16:00 -05:00
Kelly Dwan 03eaddd197 New block: add "Hand-picked Products" block (https://github.com/woocommerce/woocommerce-blocks/pull/276)
* Add ProductsControl component to search and select products

* Add “Hand-picked Products” block

* Update hand-picked & new product icons

* Prevent API request when no products are selected

* Remove rows setting

* Update shortcode/query helpers for the handpicked products

* Remove shortcode from post if no product IDs are passed

Rendering a shortcode with `ids=‘’` will show all products, as if the ids param wasn’t there. The expected outcome would be no products are shown, we we achieve by removing the shortcode.

* Remove unused rows attribute

* Update accessible spoken notice

* Add a variable to hold whether there are selected products

* Fix copy-paste comments
2018-12-21 19:10:17 -05:00
Kelly Dwan 6d06990123 Visually hide the “any”/“all” categories selector when less than 2 categories are selected (https://github.com/woocommerce/woocommerce-blocks/pull/279) 2018-12-21 12:45:07 -05:00
Kelly Dwan 32b5b07c23 Add ProductAttributeControl for selecting product attributes (https://github.com/woocommerce/woocommerce-blocks/pull/266)
* Add initial attribute selector control

* Make the attribute group name unselectable

* Update selected map to reflect attribute syntax

* Add the attributes selector to the product category block

* Update copy-paste comment

* Update variable name to be more clear

* Move & rename the attribute selector in Products by Category

* Reorganize the API calls to fetch attributes + attribute terms
2018-12-20 17:26:51 -05:00
Kelly Dwan c8775aa4e1 Fix the spacing around the “edit mode” of Products by Category (https://github.com/woocommerce/woocommerce-blocks/pull/273) 2018-12-19 17:35:41 -05:00
Kelly Dwan ba8ce223cf Use em-dashes to indent child categories/attributes instead of padding (https://github.com/woocommerce/woocommerce-blocks/pull/265) 2018-12-19 17:34:28 -05:00
Kelly Dwan 18f99101e2 Fix multiple API calls returning out of order, causing set rows to be incorrect (https://github.com/woocommerce/woocommerce-blocks/pull/264) 2018-12-19 17:18:13 -05:00
Kelly Dwan aa9f543834 Add new SearchListItem component (https://github.com/woocommerce/woocommerce-blocks/pull/258)
* Add new SearchListItem component

Extract the custom functionality from product categories, for re-use in product attributes

* Fix error when no breadcrumbs are set

* Update snapshot

* Remove unnecessary key
2018-12-19 11:56:44 -05:00
David Levin 5af019bcd7 New Block: Add "Newest Products" Block (https://github.com/woocommerce/woocommerce-blocks/pull/255)
* add newest products block

* update class name in index.js and product-new.js

* Add a new WooCommerce block category and include all blocks within.

* Fix shortcode product order

* Show block category on all post types
2018-12-18 14:45:49 -05:00
Kelly Dwan 48cd95d64d Move icon components to a shared component, add New Releases SVG (https://github.com/woocommerce/woocommerce-blocks/pull/257) 2018-12-17 15:51:10 -05:00
Kelly Dwan 3bccfda459 Category Selection: Add support for category operator (https://github.com/woocommerce/woocommerce-blocks/pull/251)
* Add core breakpoint 480px, remove non-core breakpoints

* Add the optional operator & save callback

* Add the catOperator as a valid attribute

* Enable cat operator for Products by Category

* Add cat_operator support the products API endpoint

* Enable cat_operator in the shortcode and query utils

* Pluralize the “nothing found” string if we have multiple categories

* Fix style in the inspector panel

* Add category operator support to the Best Sellers product block

* Add cat_operator support to On Sale Products block

* Update label & margin
2018-12-17 15:16:01 -05:00
Michael Rogowski fef17476c8 Fix undefined error when selecting a product without an image (https://github.com/woocommerce/woocommerce-blocks/pull/254)
prior to this commit, an 'individual product' block would produce
an error if associated with a product with no image.
2018-12-17 15:15:32 -05:00
Kelly Dwan 395888a521 Fix mix of tabs/spaces 2018-12-15 11:41:39 -05:00
David Levin 0c9e3eb6ba resolving conflicts 2018-12-14 18:12:13 -08:00
David Levin 1bf9ab1fb5 resolve conflicts 2018-12-14 18:08:58 -08:00
David Levin 3b770feb90 remove unnecessary function from get-shortcode.js 2018-12-14 17:48:46 -08:00
Kelly Dwan 381752734b New Block: Add "On Sale Products" block (https://github.com/woocommerce/woocommerce-blocks/pull/239)
* Add “On Sale Products” block

* Remove categories requirement from fetching products on mount
2018-12-14 18:47:16 -05:00
David Levin cae9799ffc update ordering by rating 2018-12-14 12:21:56 -08:00
David Levin d30761ba2f Add top rated products block 2018-12-14 11:45:19 -08:00
Kelly Dwan 58f3764c36 Move product order list into a shared component (https://github.com/woocommerce/woocommerce-blocks/pull/238) 2018-12-14 09:57:32 -05:00
Kelly Dwan 43675515af Block: Add new "Best Selling Products" block (https://github.com/woocommerce/woocommerce-blocks/pull/221)
* Move from a JS file per block registration to one file registering all blocks

This will let webpack combine shared libraries, like gridicons

* Move global block settings to the “before all scripts” section

These shouldn’t be tied to a specific block file, since they’re used across all blocks

* Register both block types

We can also remove the scripts, since we enqueue these below

* Update getShortcode & getQuery to handle different block types

* Pass block type name to getQuery

* Update shared attributes - edit_mode is not a universal option, but categories will be

Categories is shared, but orderby is not

* Add “Best Selling Products” block

* Add a shared class name for product grid blocks

* Fix failing tests
2018-12-13 12:19:55 -05:00
Kelly Dwan e3dab1cbcc Product preview: Update "Add to cart" button to inherit theme's button styles (https://github.com/woocommerce/woocommerce-blocks/pull/223)
* Remove button styling & add classes to inherit style from core button

* Update to CSS grid

* Prevent warnings when running autoprefixer

* Update spacing in preview

* Update snapshots to reflect button markup change

* Switch to flexbox for IE 11 support

* Remove CSS grid autoprefixer support

* Fix spacing on preview items

* Fix stylelint issue

* Remove unnecessary rule
2018-12-13 12:19:06 -05:00