* 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)
* Remove RawHTML used for notice translations
* Revert "Remove RawHTML used for notice translations"
This reverts commit e28e082c2eefd8c29e982ee34ac27f99267171c3.
* Escape translation strings before using them
* Add translator notices
* Make all reviews block share the same frontend script
* Create 'All Reviews' block
* Create All Reviews no reviews placeholder
* Create EditorContainerBlock and move some shared logic there
* Update icon
* Address PR feedback
* export new @woocommerce/settings external on `wc.blockSettings` global
- This handles reading data from the dom and assigning it to the global used in all packages dependent on `@woocommerce/settings` which is registered as an external pointing to the global.
- ensures that server data is only loaded on a route if needed.
* switch all direct imports of constants to use new `@woocommerce/settings` external
* enqueu new `wc-block-settings` script and attach inline data to it.
* fix test configuration and adjust test to use new external
* fix bad merge resolution after rebase
* switch constants import to `@woocommerce/settings` external after rebase
* reorder imports for convention
* improve method name
* Create withReviews base HOC
* Add tests
* Make Reviews by Category use withReviews HOC
* Move componentDidUpdate and debounce dependency to decouple HOC from components
* Spaces
* Rename 'delayMethod' to 'delayFunction'
* Refactor withReviews HOC
* Update tests
* Minor fixes
* Undo fix being handled in woocommerce/woocommerce-blocks#884
* Remove hardcoded from withReviews
* Update delay comment
* Use callbacks instead of announceUpdates prop
* Move props check to a 'shouldReplaceReviews' method
* Fix productId propType
* Move per_page and offset args to 'getArgs'
* Update withReviews displayName
* Fix tests
* Add callback propsTypes
* Use is-shallow-equal
* 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
* 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
* Reset 'loaded' state in Featured Product and Category blocks
* Minor code improvements
* Remove state from ApiErrorPlaceholder
* Move getProduct to a HOC
* Undo changes in Featured Category
* Update proptypes
* Move error messages to <ApiErrorPlaceholder>
* Reorder props
* Move lifecycle methods to HOC
* Make <FeaturedProduct> component presentational
* Move withProduct to js/hocs
* Create NAMESPACE constant in utils
* Create getProduct util function
* Set 'error' and 'product' state to null instead of 'false' when they have no value
* Prevent getImageSrcFromProduct and getImageIdFromProduct returning an error when 'product' is not an object
* Add HOC tests
* Use 'toBe' and 'toBeNull' jest expect methods instead of 'toEqual' when possible
* Export HOCs from index
* Move mock implementation to beforeEach
* unqiueID helper to replace compose
* move get categories function to own file
* fix svg styling
* remove lodash dependency
* Refactor block/edit to use less dependencies
* Babel config to skip wp.element
* update comments
* Update assets/js/blocks/product-categories/frontend.js
ie11 compatible for each on nodelist
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* move id generation to constructor
* simplify webpack config
* Remove components CSS dependency
* use HOC for component ID
* Correct case on ComponentId
* Introduced WGPB_Extend_Core class to modify shortcodes and API requests of core
* Require the new class
* WC_REST_Blocks_Products_Controller_V2 to override the wc-blocks API to support new tags properties
* Register new products by tag block type
* Modify utils to support tags and tag_operators
* Add ProductTagControl to handle tag searching
* Add the actual products by tag block
* Set limitTags to 100
* Create Package class and use in main plugin file
* Move and refactor library class - split asset methods into new Assets class.
* Add jetpack autoloader dependency
* fix tests
* Update from master
* AbstractBlock class for general block registration
* remove test autoloader so tests do not break
* Create AbstractProductGrid
* FeaturedProduct
* HandpickedProducts
* ProductBestSellers
* ProductCategory
* ProductNew
* ProductOnSale
* ProductTopRated
* ProductsByAttribute
* Remove old base and render functions
* Allow non-dynamic blocks and register category block
* Fix products-by-attribute due to wrong naming
* Remove no dev
* test phpunit dir
* Update testing framework
* Update with new abstract classes and build in API
* Undo edit to attribute block
* Move edit mode
* No need to support shortcodes
* correct linting errors
* Update tests/bootstrap.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Update code comment to make more sense.
* Correct test package
* docblock
* Fix cancel button class
* Fix classname schema
* Set loading state so spinner is shown
* Add placeholder element when no tags are selected
* No tags placeholder
* Update rest endpoints
* Duplicate SearchListControl into ProductSearchListControl component
* Undo control copy; it's not needed
* Variation search + counts showing
* Dropdown styling (also fixed SVG icon markup in SCSS file)
* Style the variation count
* Handle variation display on frontend and backend
* Fixed selection callbacks hooray
* Extend v3 api to return name. Use v3 API for featured product block.
* Switch description based on type
* Fix isSelected check
* Define a11yProps
* Variations rest endpoint
* Remove isTertiary
* REST endpoints with variation handling
* Handle variation data frontend
* Handle variation data in editor
* renamed description schema
* tweak variation display
* Update assets/js/components/product-control/style.scss
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Flip icon direction
* Use classnames
* fix isSingle warning
* standards
* Only try to load variations if product has them
* Create Package class and use in main plugin file
* Move and refactor library class - split asset methods into new Assets class.
* Add jetpack autoloader dependency
* fix tests
* Update from master
* AbstractBlock class for general block registration
* remove test autoloader so tests do not break
* Create AbstractProductGrid
* FeaturedProduct
* HandpickedProducts
* ProductBestSellers
* ProductCategory
* ProductNew
* ProductOnSale
* ProductTopRated
* ProductsByAttribute
* Remove old base and render functions
* Allow non-dynamic blocks and register category block
* Fix products-by-attribute due to wrong naming
* Remove no dev
* test phpunit dir
* Update testing framework
* Update package name
* Classname changes from master
* get_schema_string/classname from master
* Update tests/bootstrap.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Update src/BlockTypes/AbstractProductGrid.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Add alignButtons handling and styling to grid-base
* Add ToggleControl and alignButtons attribute to handpicked products
* Pass alignButtons to the blocks with sharedattributes
* Add alignButtons to shared-attributes.js
* Add alignButtons to products-by-attributes block
* Add alignButtons to attributes on the PHP side
* Add alignButtons control to grid-layout-control
* Remove alignButtons from deprecated definitions
* has-aligned-buttons
* Update comment
* package lock
* Product Categories List: add a placeholder on save
This is saved to the database so that we have a placeholder view while waiting for the categories component to render.
* Use `classList.remove` for better readability
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Add the hierarchy display to the dropdown
* Add navigation for when a category is selected in the dropdown
* Use forEach from lodash for ie11 compat
* Switch to a button-click navigation pattern for better keyboard support
* Try the hidden attribute on option
* Add `isPreview` prop to be used when in editor preview
* Add product category link to the categories object
* Add the link to the `a` if we're not in the preview mode
* Add initial work for Product Categories List block
* Add empty category toggle
* Add option to show list as a dropdown
* Fix console warnings
* Only show proptypes linter warning if the component declares proptypes
* Add frontend script to render the product categories
* Split wcSettings & wc_product_block_data globals so that the later can be used from the frontend
* Remove wp dependencies, these are added by the webpack script now
* Capture all "woo packages" into a separate script chunk
These require `wcSettings`, which can't be available on the frontend - but we do need vendors on the frontend.
* Rewrite component into a function
* Fix validation error on editor reload
* Use the `name` prop in place of writing out the string
* Pull out `orderby` schema into reusable function
* Correct version tag
* Extract some more schema property defs into shared functions
* Move the `print_script_settings` function so the schema-related functions follow the block registration
* Set all the schema functions to be `protected`
* Remove version tags from docs
* Fix default rows fallback value
* Move the contentVisibility schema into a separate function
This attribute is common even amongst blocks that don’t use shareAttributes, so we should make it reusable
* Add dynamic rendering + SSR to Hand-picked Products block
* Add block deprecation
* Update the posts_per_page to include all selected products
* remove php insertion of block category
* Add an SVG icon for the woo logo
* Add block-category.js to import into blocks
This creates the category icon complete with a Woo SVG icon
* Import block-category to all blocks that use it
* Style woocommerce blocks in woo purple
* Lint error
* fillRule case
* Update propTypes
* Use foreground prop instead of css
* Convert Woo Logo to ICON type component
* Add shared blocks.js to house the category code
* Calculate width from height
* Add grid block base class to handle rendering all grid blocks
Using code from the shortcode handler to create the query, subclass into newest product to show use
* Update preview content to match rendering from the new grid block handler
* Fix the categories query builder
* Update order of rating/price
* Remove center alignment
* Extract rating & button into separate functions
* Wrap the content in a link
* Add the current class names for better theme support
* Fix some styling in editor preview & frontend
* Add back the deprecated cols support for existing blocks
* Add multiple-rows class, style tweaks
* Switch Newest Products to dynamic rendering, deprecate existing shortcode method
* Add “On Sale” flag
* Switch “On Sale Products” to dynamic rendering
* Fix reusable block preview
* Add correct classes to On Sale Products
* Remove dynamic blocks from CSS hidden content rules
Content is not output to browser now, so we don’t need to hide it
* Fix undefined parameters
* Fix attributes for on sale
* Add deprecation comment, use more descriptive function name
* Addressing review feedback
* Update test: classnames have changed, image now wrapped in div
* Disable HTML editing for dynamic blocks
* Moved rendering logic into block library
* Try using ServerSideRender component for preview
* Define the schema for contentVisibility
This ensures the API correctly uses boolean instead of “true”/“false” strings
* Move the star rating CSS to the general grid-blocks section
* Remove the list styling, which is added back by core GB styles
* Fix stylelint issues
* Add grid block base class to handle rendering all grid blocks
Using code from the shortcode handler to create the query, subclass into newest product to show use
* Update preview content to match rendering from the new grid block handler
* Fix the categories query builder
* Update order of rating/price
* Remove center alignment
* Extract rating & button into separate functions
* Wrap the content in a link
* Add the current class names for better theme support
* Fix some styling in editor preview & frontend
* Add back the deprecated cols support for existing blocks
* Add multiple-rows class, style tweaks
* Switch Newest Products to dynamic rendering, deprecate existing shortcode method
* Add “On Sale” flag
* Switch “On Sale Products” to dynamic rendering
* Fix reusable block preview
* Add correct classes to On Sale Products
* Remove dynamic blocks from CSS hidden content rules
Content is not output to browser now, so we don’t need to hide it
* Fix undefined parameters
* Fix attributes for on sale
* Add deprecation comment, use more descriptive function name
* Addressing review feedback
* Update test: classnames have changed, image now wrapped in div
* Disable HTML editing for dynamic blocks
* Moved rendering logic into block library
* Remove unnecessary !important on styles
* Add FocalPointPicker to featured product block
* Disable the media icon if no product is selected
* Use the focal point on the frontend display
* Check for `FocalPointPicker` before using it (compat for WP 5.1)
* Check if focalPoint attribue is an array before trying to use it
* Category block: open category panel when no categories
When no categories are selected, open the category panel on initial
render.
* Add check for editMode
Don't open categories if in edit mode because the block itself has a
category selection.
* Fix html in preview of product titles
Previously the html wasn't rendered in the preview for product titles.
This renders the html.
* Update test snapshot
* Also decode html for featured preview name.
* Un-escape HTML for featured post title render
* Add transforms for shared attributes.
This adds transforms for the 5 blocks which share attributes:
- woocommerce/product-best-sellers
- woocommerce/product-category
- woocommerce/product-new
- woocommerce/product-on-sale
- woocommerce/product-top-rated
* Use createBlock directly and rowColumnBlockTypes
This adds rowColumnBlockTypes as an array of woocommerce/* block types
that use row and column layouts
* Move block types into utils, and use without
This uses lodash instead of without instead of difference
It also moves the block types from an index into the shared-attributes
in utils.
* Component: GridContentControl for controlling visibility of product content
* Add the content control to all grid blocks
* Use CSS to hide the content on the front end
* Fix missing translation functions
* 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.
* Try using Button block for the product button
* Use the permalink for the selected product
* Fix use of templateLock prop
* Fix button component alignment
* Add “attribute selection” step before allowing terms to be selected
* Update query builder
* Use shortcode to render block
* Styling for child list items
* 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
* 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`
* 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)
* 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
* 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
* 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
* 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
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.