Commit Graph

153 Commits

Author SHA1 Message Date
Maikel David Pérez Gómez a4ed336a0d
Variation attributes can not be enabled in Attributes section and Non Variations attributes cannot be enabled in Variation Options section (#39770)
* Disabled attributes used in different section

* Let the attribute input field to disable some items within the dropdown list

* Define disabled attribute ids and message

* Filter non variable attributes as disabled to be used under variations options

* Filter variable attributes as disabled to be used under attributes

* Add changelog file

* Fix linter error

* Add tooltip option to menu item and use it for attribute and variations

* Fix some rebase conflicts

* Add changelog file

---------

Co-authored-by: Lourens Schep <lourensschep@gmail.com>
2023-08-21 15:39:31 -04:00
Fernando Marichal 3f17b9b13b
Allow users to select multiple items from the media library while adding images (#39741)
* Allow select multiple items

* Add changelog

* Fix TS error
2023-08-21 12:10:30 -03:00
Fernando Marichal 278366def9
Disable tabs in parent product page with variations (#39675)
* Add warning block

* Delete warning block

* Add notice component

# Conflicts:
#	packages/js/product-editor/src/style.scss

* Add page notice

# Conflicts:
#	packages/js/product-editor/src/blocks/tab/edit.tsx

* Add `isOptionsNoticeVisible` to tab

* Add utils functions

* Remove warning

* Add notice visibility to tab

* Add notice visibility to pricing, inventory, shipping

* Add changelog

* Remove warning

* Change button text

* Add check to hasAttributesUsedForVariations

* Fix tests

# Conflicts:
#	packages/js/product-editor/src/components/tabs/test/tabs.spec.tsx

* Create notice block and move notice from tabs

* Fix product-notice block declaration

* Remove title from array

* Fix notices

* Fix styles

* Change error to error-type

* Revert "Add notice visibility to pricing, inventory, shipping"

This reverts commit 140703d49e.

* Remove import

* Revert "Fix tests"

This reverts commit 96036c5a6c.

* Remove duplicated function

* Add changelog

* Remove `isSelectedTabApplicableForOptionsNotice`

* Remove styles out of scope

* Fix notice props

* Rename block

* Remove selectedTab

* Update packages/js/product-editor/src/blocks/notice/edit.tsx

Co-authored-by: louwie17 <lourensschep@gmail.com>

* Fix lint

---------

Co-authored-by: louwie17 <lourensschep@gmail.com>
2023-08-18 11:14:02 -03:00
louwie17 c11b11631b
Add/39443 attribute filters (#39685)
* Add not filterable and not visible icons to attribute list

* Fix types

* Add changelogs

* Fix lint errors
2023-08-16 14:49:52 -04:00
Sam Seay 45c49dc232
Add a workflow to separate out eslint and annotate PRs. (#39704) 2023-08-15 18:21:51 +12:00
louwie17 3edd1bd823
Auto delete unused variations when auto generating variations (#39733)
* Add auto delete functionality for variations

* Add the remove confirmation modal

* Update delete unmatched product variation logic

* Add tests

* Add changelogs

* Fix lint errors

* Fix lint errors
2023-08-14 16:35:16 -03:00
louwie17 71e8b699db
Convert simple to variable product and auto add variations (#39673)
* Auto create variations and move product to variable when adding variation options

* Delete unused components

* Add tour to variation options

* Remove unneeded options

* Add changelog

* Fix types

* Fix lint errors

* Fix broken tests

* FIlter out option tags when not included in attributes

* Don't invalidate variations data when no new variations are created
2023-08-11 11:15:05 -03:00
Fernando Marichal 91fadfd8fe
[Product Block Editor] Remove additional create term modal (#39610)
* Remove additional create term modal

# Conflicts:
#	packages/js/product-editor/src/components/attribute-term-input-field/attribute-term-input-field.tsx

# Conflicts:
#	packages/js/product-editor/src/style.scss

* Add changelog

* Fix list refresh and add loading state

* Remove duplicated "invalidateResolutionForStoreSelector"

* Add modal and `autoCreateOnSelect`

* Update packages/js/product-editor/src/components/attribute-term-input-field/attribute-term-input-field.tsx

Co-authored-by: louwie17 <lourensschep@gmail.com>

* Add Attributes `invalidateResolution`

* Improve error handling

* Add term_exists error

* Fix lint errors

* Fix isOpen variable

* Fix lint

---------

Co-authored-by: louwie17 <lourensschep@gmail.com>
2023-08-10 14:21:28 -03:00
Maikel David Pérez Gómez 3ffe7b8376
Create variation items block (#39657)
* Create and register product-variation-items-field block

* Create variations-table component

* Use variations-table component in variation-items block

* Remove last border bottom from the variation options list

* Add changelog file

* Add changelog file
2023-08-09 16:06:59 -03:00
louwie17 592b4feb5e
Fix attribute terms disappearing in list (#39620)
* Fix enhance attribute logic

* Add changelog

* Fix test

* Add auto create global attribute term and fix bug with terms for global attribute

* Fix test and update changelogs

* Add invalidate resolution call and error notice

* Revert auto create on select changes
2023-08-09 10:41:47 -03:00
louwie17 75d64ee063
Create global attributes by default (#39548)
* Add support to attribute control for creating global attributes

* Add create global attribute to variation block

* Add changelog

* Invalidate the attributeTerm search after creating a new attribute term
2023-08-08 12:54:11 -03:00
Maikel David Pérez Gómez 8d8d315d66
Focus the first attribute field when opening the modal (#39549)
* Focus the first attribute field on modal shown

* Add changelog file

* Remove setTimeout to focus the attribute dropdown field
2023-08-08 10:50:11 -04:00
Maikel David Pérez Gómez b546e4fb17
Manage default variation option (#39570)
* Add default attributes property to the Product type

* Add change log file

* Set default attributes when click add from the attribute options modal

* Add Set default value checkbox to the edit attribute modal

* Manage default attributes when update or delete an attribute option

* Show Set default value only when the editing attribute is used for variations

* Add change log file
2023-08-08 10:41:26 -04:00
Maikel David Pérez Gómez d3702c53ba
Add product visibility blocks (#39477)
* Add catalog visibility block

* Add product search visibility block

* Add changelog files

* Fix linter errors

* Remove non necesary block

* Add catalog_visibility property to the Product type
2023-08-08 09:58:00 -03:00
Sam Seay e8c3808527
Upgrade TypeScript to v5.1 (#39531) 2023-08-08 16:35:31 +12:00
Joshua T Flowers 63ca33ae35
Fix toolbar button text not showing in WP 6.3 (#39572)
* Fix toolbar button text not showing in WP 6.3

* Add changelog entry
2023-08-04 16:23:09 -05:00
Maikel David Pérez Gómez b5db405265
Feedback bar is mis-aligned; transient notices overlap (#39233)
* Fix the feedback bar alignment to be centered

* Move the transient notices to the top of the feedback bar

* Add changelog file

* Remove feedback bar animation
2023-08-03 10:06:45 -04:00
louwie17 1212fcb689
Add new variation modal (#39522)
* Hook up add new variations options modal

* Fix duplicate logic and test

* Add changelog

* Match local attributes by name case incentive

* Remove console log

* Make use of some function instead of findIndex
2023-08-02 14:29:09 -03:00
louwie17 86788fcaed
Pass down height of inserter panel to allow for scrolling (#39491)
* Pass down height of inserter panel to allow for scrolling

* Add changelog
2023-07-31 12:36:07 -03:00
Nathan Silveira 403c8ba8b8
[ Product Block Editor ] Create Variation options block (#39256)
* Add support for variable products

* Add 'hello world' block to variations tab

* Add product-section block to template

* Add AttributeControl component to screen

* Add changelog

* Change labels

* Make a copy of AttributeControl to VariationOptionsControl to allow the fields to evolve separately in future

* Fix tests

* Add changelog to woocommerce

* Fix alert error

* Remove copied control and start adapting attribute control to handle both scenarios

* Add -field to block name

* Revert "Add -field to block name"

This reverts commit 50e1ee66e27ffb2df22ea7f6a4f78d1577a273f5.

* Revert "Revert "Add -field to block name""

This reverts commit eee0441c6532f9fa8cf8383d9699fd503dd054ae.

* Extract more labels

* Hide drag handle in variation options
2023-07-28 14:40:18 -03:00
Nathan Silveira bf97630ad0
[Product Block Editor] Add require password block field (#39464)
* Add post password to API

* Add changelog

* Fix phpcs issue

* Remove post_password from tests

* Add additional property to test

* Increment number of properties in product schema

* Update the post when post_password changes

* Start adding password block

* Add css and import it

* Refactor attributes and erase password when checkbox is unchecked

* Add changelogs

* Remove unused imports

* Rename 'fields' to 'field'

* Refactor CSS

* Remove example object
2023-07-28 14:05:03 -03:00
Nathan Silveira 8020f3407b
[Block Product Editor]: Only run name validation if the field has been edited (#39320)
Only run name validation if the field has edit
2023-07-20 10:42:01 -04:00
Maikel David Pérez Gómez 776d567f30
Create the Organization tab (#39232)
* Add Organization to the right of General tab

* Add Product catalog and Attributes sections to the Organization tab

* Add Categories and Disable product reviews blocks to Product catalog section

* Add attributes block to the attributes section

* Add changelog files

* Fix php linter error

* Remove Categories and Attributes blocks from the General tab

* Change Disable product reviews by Enable product reviews
2023-07-19 10:11:03 -04:00
Maikel David Pérez Gómez 24a655aec4
Allow the user to delete the description (#39229) 2023-07-14 11:00:03 -04:00
Fernando Marichal bbd727c257
Add header buttons to the description editor modal (#39156)
* Add header buttons to the description editor modal

# Conflicts:
#	packages/js/product-editor/src/components/iframe-editor/header-toolbar/header-toolbar.scss
#	packages/js/product-editor/src/components/iframe-editor/header-toolbar/header-toolbar.tsx

# Conflicts:
#	packages/js/product-editor/src/components/iframe-editor/header-toolbar/header-toolbar.tsx

* Remove isModalActionsBarVisible

# Conflicts:
#	packages/js/product-editor/src/components/iframe-editor/header-toolbar/header-toolbar.tsx

* Fix styles and removed comment

# Conflicts:
#	packages/js/product-editor/src/components/iframe-editor/header-toolbar/header-toolbar.tsx

* Add changelog

* Fix styles

* Fix gap between buttons
2023-07-14 11:18:16 -03:00
Matt Sherman a706bd666b
Product Editor: Fix description modal editor scrolling (#39212)
* Scroll modal editor

* Set editor to always 100% height

* Only scroll editor canvas

* Scroll sidebar

* Clip inserter

* Comment for inserter clipper

* Move iframe editor css

* Remove unused const

* Changelog
2023-07-13 10:40:02 -04:00
Matt Sherman 408cf8d53c
Product Editor: Add "Copy all content" menu item to description editor modal (#39199)
* Copy all content menu item skeleton

* Add blocks to editor context

* Show notice on copy success

* Use store to get blocks to copy

* Remove blocks from editor context (decided to use store instead)

* Changelog

* Disable menu item if no content
2023-07-13 10:39:34 -04:00
Matt Sherman a51f384021
Product Editor: Disable autocomplete on product name field (#39211) 2023-07-13 10:09:59 -04:00
Matt Sherman 17f83af095
Product Editor: Add help menu item to description modal editor (#39178)
* More menu skeleton

* Help menu item

* Tracks event for help menu item

* Remove invalid/unused ref from MoreMenu

* Changelog
2023-07-11 13:19:53 -04:00
Nathan Silveira e85491bdea
Focus on name field when mounting and update summary field UI (#39050)
* Move placeholder of summary to help text at bottom of the component

* Focus the name field when mounting

* Add changelog

* Create 'autoFocus' block attribute instead of using useEffect

* Add changelog
2023-07-11 09:48:26 -03:00
Maikel David Pérez Gómez 96c0c5bd74
On-/offboarding copy updates (#39055)
* Change the modal's description test in the first step of the product block editor tour

* Change the modal's description text in the first step of the product block editor guide

* Change the modal's description text in the second step of the product block editor guide

* Change the modal's title and description text in the third step of the product block editor guide

* Change the modal's description text in the four step of the product block editor guide

* Enhance the Options menu of the product block editor

* Add slide up animation and translucent background to the feedback bottom bar

* Change de CES's modal heading text in the product block editor

* Change the notice message after the feedback is being sent from the CES Modals

* Enhance leave feedback modal checkbox labels

* Change leave feedback modal submit button text

* Show success notice after submit the leave feedback modal

* Add changelog files

* Change the illustration in the first step of the feature tour

* Change the modal's title and description text in the first step of the product block editor tour for old users

* Change the modal's title and description text in the first step of the product block editor guide for old users

* Change the modal's title and description text in the third step of the product block editor guide for old users

* Fix unit tests

* Change the customer effort score changelog description

* Change footer forward button to primary and backward button to tertiary in the tour guide modal
2023-07-10 14:51:55 -04:00
Maikel David Pérez Gómez 714e50bf4c
Create variations block with empty state (#39038)
* Create and register woocommerce/product-variations-fields block

* Hide or show the empty state or inner blocks if the product has attributes

* Add changelog files

* Fix php linter errors
2023-07-07 17:15:54 -03:00
Nathan Silveira ee900c9b33
Add button on toolbar to toggle show/hide block inspector (#39090)
* Add button on toolbar to toggle show/hide block inspector

* Move changelog

* Copy drawerright icon from @wordpress/icons
2023-07-07 12:14:41 -03:00
Maikel David Pérez Gómez ecd1795b44
Add the list view component and button to the modal editor (#38809)
* Add document overview opened state to the EditorContext

* Create document overview toolbar button

* Add document overview button to the header toolbar

* Create document overview sidebar

* Register document overview sidebar styles

* Set document overview sidebar visible when document overview button is pressed

* Add changelog file
2023-06-27 10:08:08 -04:00
Joshua T Flowers 6bbc4dad1a
Add missing tracks events to product editor (#38728)
* Only record product update on already published products

* Add source into published product tracks event

* Add missing tracks options to product update event

* Track tab clicks in the editor

* Add source to tab clicks

* Record tracks on preview click

* Add events for media gallery, description, and attributes

* Add tracks events to more menu

* Replace new_product_page with source

* Add changelog entry

* Fix lint errors

* Add tracks for About the Editor menu item

* Add onClick event to AboutTheEditor menu item

* Use dropdown option event for classic editor menu click
2023-06-21 09:38:04 -07:00
Matt Sherman 7004396617
Set attributes to visible by default (#38777)
* Default visible to true if not explicitly set

* Refactor onAddingAttributes to reduce complexity

* Changelog

* Improve hasTermsOrOptions based on review suggestion
2023-06-16 18:02:16 -04:00
Fernando Marichal a40543c16d
Fix styles for modals (#38775)
* Fix obw modal

* Fix modal styles

* Add changelog

* Add changelogs

* Move __selection and __errors
2023-06-16 15:48:33 -03:00
Matt Sherman 9a6d9533c9
Keep showing product editor feedback bar after feedback modal shown (#38773)
* Show feedback bar even after feedback is given

* Changelog
2023-06-16 11:51:18 -04:00
Joshua T Flowers 3ad98ec8b4
Add tool selector option to iframe editor (#38686)
* Add tool selector option to iframe editor

* Fix lint errors
2023-06-15 16:29:12 -07:00
Joshua T Flowers ce770bbfd2
Fix empty state for currency inputs in product editor (#38697) 2023-06-15 09:32:57 -07:00
Matt Sherman de6f77d8be
Fix transient notices overlapping product editor footer (take 2) (#38698)
* Use WooFooterItem for Footer

* Use WooFooterItem fill for TransientNotices

* Adjust TransientNotices styling to work in footer

* Fix footer width when in setup wizard

* Change export of TransientNotices from default to named

* Add border to footer

* Changelog

* Changelog

* Mock WooFooterItem to allow unit tests to pass

* Fix lint error in test
2023-06-14 16:32:28 -04:00
Fernando Marichal 47481490d8
CES modal modifications (#38643)
* Add extraFields prop

# Conflicts:
#	packages/js/product-editor/src/components/product-mvp-ces-footer/product-mvp-ces-footer.tsx

* Add changelog

* Add changelogs

* Fix styles

# Conflicts:
#	packages/js/product-editor/src/components/product-mvp-ces-footer/style.scss

* Add extraFields validation

* Remove files

* Add styles and js

* Modify the other share feedback form

* Change modal title

* Fix feedback-bar

* Fix return

* Fix params types

* Rename `extraFields` to `getExtraFieldsToBeShown`

* Fix styles

* Fix error handling

* Fix styles

* Rename prop

* Fix error message
2023-06-14 11:25:51 -03:00
Matt Sherman 0f8d274d7f
Remove editor-styles-wrapper class from product editor (#38681)
* Remove editor-styles-wrapper class from product editor

* Override default block margins and layout applied for themes without a theme.json file

* Changelog
2023-06-12 18:56:57 -04:00
Joshua T Flowers 93262ac019
Add editor history and undo/redo toolbar buttons (#38573)
* Add editor history and undo/redo behavior

* Add option to limit max editor history

* Move inserter properties to editor context

* Move editor toolbar to separate folder

* Add changelog entry

* Remove no longer needed editor provider
2023-06-12 14:23:22 -07:00
Joshua T Flowers 90e4ddbf29
Update product editor CES modal to match new designs (#38592)
* Add new fields and copy update to product CES modal

* Update styling for product CES modal

* Record email in tracks callback if provided

* Fix modal header spacing

* Fix record callback types

* Add optional tag styling

* Allow submitting form when a reason has been selected

* Fix modal padding bottom

* Update modal width to match designs

* Add changelog entries

* Update margin for legend

* Add props to doc comment

* Make className prop optional

* Update tests for recording score with email
2023-06-12 10:58:00 -07:00
Maikel David Pérez Gómez 72f7e6ebbb
Publishing product in classic editor redirects back to new editor (#38551)
* Changes the feature given it's id and a toggle value as a query param

* Swap classic editor and new product block editor url when product_block_editor feature changes

* Turn off the product_block_editor feature when user choose to use the classic editor

* Add changelog files

* Fix linter errors

* Add nonce to each feature change request

* Change the hooks name for better readability

* Use get_current_screen function to better identify if the current screen is the product creation or edition

* Add wp_die if the nonce verification failed

* Change regex for explode/parse_url for better reading
2023-06-09 11:18:40 -04:00
Matt Sherman dadc0eb777
Show feedback footer on product editor page (#38599) 2023-06-08 20:56:07 -04:00
Joshua T Flowers e09e8b8ab0
Show "Save draft" instead of "Saved" on initial product page (#38609) 2023-06-08 15:32:49 -07:00
Joshua T Flowers 4569fda5c1
Add iframe editor header toolbar and block inserter (#38549)
* Add initial toolbar and secondary sidebar

* Style the sidebar and inserter panel

* Adjust toolbar and modal paddings

* Move header toolbar styles to separate file

* Make header toolbar class names consistent with component

* Dont use experimental insertion index and fall back to default insertion point

* Add changelog entry
2023-06-08 12:14:25 -07:00
Maikel David Pérez Gómez 338bf6e45e
Product route not updated after save initially failed and succeeded after (#38507)
* Enhance error handling

* Use last persisted product status to show a right publish button label and notices

* Use last persisted product status to show a right preview button label and notices

* Use last persisted product status to show a right save draft button label and notices

* Uses the last persisted product to better compare it with the most recently updated product so the buttons can behave correctly

* Add changelog file

* Fix getProductErrorMessage unit test

* Fix notice message when create / update the product

* Get product id from within each button hook
2023-06-08 14:22:07 -04:00