* Add initial component to auto load fills from API config
* Add changelog
* Update logic to make use of new store and re-usable components
* Add changelog
* Add loading state for product form data to add/edit product pages
* Add product tour container and modal
* Fix modal open class name
* Add product tour
* Add changelog entry
* Move product tour state logic into hook
* Fix tour selectors for pricing and actions
* Add tests around product tour container
* Add tests around useProductTour hook
* Make tour responsive
* Use tabs instead of spaces
* Fix more scss lint errors
* Remove extra whitespace
* Working prototype of product details via slotfill
* Raising default order for product slot-fills
* Move logic to details field name component
* Adding order prop to all fills.
* Adding components changelog
* Adding changelog
* Deleting obsolete product details section files
* Reducing spacing between slot filled fields
* Move attribution fetching to separate hook
* Add changelog entry
* Set all attributes on update of subset of attributes
* Move filtering logic to hook
* Remove tests that filter attribute by type inside the component
* Rename AttributeField to AttributeControl and props from attributes to value
* Add Charge sales tax on sub section to pricing section when enable taxes is set to yes
* Add tax classes datastore
* Load tax classes in pricing section
* Set empty value when tax class is standard rate
* Add changelog files
* Add custom resolver to use slug as id for tax classes
* Add helper text and learn more link to tax class radio group
* Add callback to confirm whether or not the prevent leaving page prompt should trigger
* Move prevent leaving logic to util and add tests
* Add changelog entry
* Add navigation changelog entry
* Fix WooCommerce data mock
* Revert desctructuring of nav properties
* Auto generate variations on option changes
* Add changelog entry
* Move product variation generation to hook
* Create product auto draft if not yet created
* Allow auto-draft and trash statuses for products
* Update form context with product ID to allow fetching variations
* Fix product ID usage in variations
* Reset form after initial product creation
* Use form value name for display instead of persisted name for auto drafts
* Add additional test around auto draft title
* Fix up updateItem query in CRUD data store
* Add product variation form header
* Fix gaps for variation and parent product actions
* Hide preview button on mobile for product variations
* Add changelog entry
* Add data package changelog entry
* Fix lint errors
* Support passing in filter and new attribute properties to AttributeField
* Changelog
* Pass addButtonLabel as prop
* Add OptionsSection to options tab
* Refactor more to create Attributes and Options fields
* Refactor a couple of things
* Refactor globalAttributeHelperMessage
* Remove `Used for filters` checkbox
* Remove `hydrationComplete`
* Add subtitle to empty state component
* Fix 'Add option' button
* Fix tests
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* Truncate attribute option name to a max of 32 chars in variations list
* Use PRODUCT_VARIATION_TITLE_LIMIT to truncate attribute option names
* Fix up lint error
Co-authored-by: Joshua Flowers <joshuatf@gmail.com>
* Convert getCheckboxTracks into generic function because of a type mismatch
* Add image to product variation and export types
* Add single image field
* Integrate SingleImageField in variation details section
* Add changelog file
* Add comment suggestions
* Fix set image onFileUploadChange
* Persist product variation order on product save
* Add batchUpdate to product variations datastore
* Add useVariationOrders hook to manage the ordering logic
* Add local ordering logic to variations field
* Persist variation orders on product save
* Add changelog file
* Add comments suggestions
* Add more comment seggestions
* Add method to get product variation title from data
* Conditionally add variation to page header
* Fix CRUD data store id query on selector
* Make getProductVariation calls and data types consistent to prevent multiple calls
* Add changelog entries
* Update product link type to avoid page refresh
* Expose function to truncate title to 32 character limit
* Add className prop to Sortable
* Add styles
* Add `rows` class
* Add changelogs
* Remove `row-#` class
* Fix min-height
* Set task list item min height
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Add aria-label for simple select dropdown
* Add changelog
* Use placeholder value
* Allow aria label prop and use label as a fallback
* Update test snapshot
* Add changelog
* Add svg icons and show them in variations list
* The visibility icon should reflect the current visibility status
* Clicking the visibility icon should toggle on or off the variation visibility and persist these settings on refresh
* Price and quantity should be fade when the variant is not visible
* Add changelog
* Hovering the visibility icon should display a tooltip indicating what clicking this button will do
* Fix linter error
* Fix spinner opacity if button is disabled
* Add className support to ListItem
* Refactor to extract AttributeListItem component
* Use AttributeListItem component in AttributeField
* Extract AttributeEmptyState from AttributeField
* Use AttributeEmptyState in AttributeField
* Add default value for label prop on AddAttributeListItem
* Add props for labels in AddAttributeModal
* Add props for labels in EditAttributeModal
* Add changelog
* Add pagination to variations list
* Apply styles for pagination paddings and to keep it at the bottom of the section card
* Returning back per page option from 2 to 25
* Fix pagination label text from uppercase to normal and font styles
* Update variation footer gap
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Add exit settings page tracker
* Add exception for when user hits the save button
* Update settings and add icon support
* Add changelog
* Add dismiss track for when user dismisses CES modal
* Add changelog
* Add tests for staticFormDataToObject function
* Fix imports of test file
* Add product variations section
* Add variations list
* Add util to get product stock status
* Add variation specific attribute type
* Add currency code to header column
* Fix up variations header width
* Add variations loading state
* Add changelog entries
* Convert spaces to tabs
* Fix status typo
* Fix up return type for stock status
* Add product form tabs to layout
* Move product sections to respective tabs
* Add tab styling
* Add changelog entry
* Scroll to top on tab change
* Update font weight on active or inactive tabs
* Add blank EOL
* Add exit page tracker logic and implement it for product pages
* Add changelog
* Fix lint errors and add comments
* Add ces_location prop
* Add mock to fix broken test
* Add CES exit page survey tests
* Fix a bug with React pages redirects and update actions
* Fix test
* Fix lint
* Add default inside location prop
* Remove exit prefix within action
* Address PR feedback and make sure its not triggered on save
* Update copy of exit feedback notice
* Add changelog
* Update name of param
* Fix lint error
* Use hasFinishedResolution vs isResolved in customerEffortScoreTracks
* Extract new component 'ProductForm', to reduce duplicated code between add-product-page and edit-product-page
* Add changelog
* Try to merge add-product-page and edit-product-page into a single product-page: running into some issues probably with the controller
* Revert "Try to merge add-product-page and edit-product-page into a single product-page: running into some issues probably with the controller"
This reverts commit bc30b67ef2.
* Add ability to show CES modal through share Feedback button
* Make use of showCesModal in footer
* Update CES action for share feedback
* Update changes to support second CES question
* Add changelog
* Address some PR feedback
* Add product mvp ces footer
* Add changelog
* Reset action option name after CES action
* Make sure we make use of cesAction
* Add close button
* Fix formatting
* Fix css styling issues
* Add icon to success notice
* Add product mvp CES hook and modify logic a little bit
* Update the CES product action name
* Address PR feedback and fix styling for smaller screens
* Add second question to CES product footer and update options
* Add changelog
* Fix lint error
* Fix tests
* Add updated versions of sr-only and not-sr-only mixins
* Improve element stacking in modals on tablet and mobile
* Add comment suggestion
* Change sr-only for screen-reader-only which is more descriptive
* Record an event 'product_view_product_click' when the 'View Product' link is clicked after creating or updating a product
* Add product_view_product_dismiss tracks events (WIP, not currently working)
* Add changelog
* Fix whitespace in addEventListener and remove console.logs
* Change link tag id to be more specific and comply with CSS guidelines
Move HTML code out of translation function
* Run phpcs in class-wc-admin-post-types
* Add tinyMCE types to add global tinymce variable in typescript code
* Add additional data in getProductData
TODO: I'm not sure if it's possible, or if it makes sense, to include stock_quantity_update in the object
* Add code review suggestions, including:
* Create isElementVisible function to backfill jQuery implementation
* Fix wrong value for is_downloadable, is_virtual, manage_stock
* Fix wrong radix
* Update menu_order implementation
* Add missing ? to weight
* Add stock_quantity_update implementation which is not working as intended
Since the page reloads after product update, the initialStockValue is updated as well
* Remove stock_quantity_update property and adjust is_downloadable, is_virtual, and manage_stock for consistency
* Currency symbol is fixed on the left side of the price input field
* Currency symbol has a different color from the input field value (Gutenberg-700)
* Input value is aligned right
* On focus, we highlight the field's content so the user can quickly clear or overwrite the placeholder text
* On focus, the user can press the up and down arrow keys to increase or decrease the value by 1
* Add changelog
* Remove unnecesary stepUp function
* Add a blank space between the emoji and the message within a notice popup
* Apply comment suggestions
* Remove duplicated text in the snackbar message after publishing a product
* Update product title in smaller viewports
* Move secondary product actions to menu group on mobile
* Hide settings menu on smaller viewports
* Add changelog entry
* Mark note as read when viewing
* Show unread note count
* Add ability to fetch read or unread notes
* Count unread notes on server side to avoid pagination limits
* Add changelog entry
* Add data changelog entry
* Add check for note actions before checking length
* Add changelog entry
* Mark note as read after 3s delay
* Set initial values prop from reset form function as optional
* Fix unsaved modal propmt to not be shown during form submission
* Reset form on save draft and before navigation starts
* Add comments ssuggestions
* Add initial add new option
* Hook in create attribute modal to add attribute field
* Add unit tests for the create attribute modal
* Add extra test to attribute input field
* Add changelog
* Add custom attribute term input field and support for custom attributes
* Fix tets
* Add track for custom attribute creation
* Fix changes after merge conflict
* Revert one change
* Fix lint error
* Seperate out some logic and make use of null as empty object versus id: undefined
* Add isNewAttributeListItem helper function
* Make use of helper function for create new markup
* Add css class to change the input width based on the screen's width
* Changelog
* Move class from pricing-section.scss to product-page.scss and use breakpoint 960px mixin
* Move className from currencyInputProps to InputControl
* Improve changelog
* Move 'half-width-field' class to currencyInputProps instead of adding it manually for the two currency fields
* Add 'half-width-field' class to SKU and Shipping Class
Sent as a parameter to getInputProps and getSelectControlProps to avoid overwriting any additional className
* Update changelog
* Add experimental open menu when user click the select control input element
* Open categories menu list when the user click the category field
* Fix linter error
* Move open menu from click to focus event
* Fix linter errors
* Add icons
* Add classic editor url
* Remove welcome guide link and icon
* Add initial settings menu
* Fix up button styling
* Move product settings to its own folder
* Remove unnecessary registerPlugin call
* Use number type control for menu order field
* Add tests around product settings component
* Allow reviews by default on all new products
* Alphabetize product properties
* Add changelog entry
* Add data changelog entry
* Convert indentation to tabs
* Fix up scss linting errors
* Remove whitespace
* Add initial category field component with new typeahead
Move search logic to useCategorySearch hook
Add initial add new category logic
Add parent category field to add new category modal
Adding some debug changes
Update category control to make use of internal selectItem function of select control
Add changelogs
Update pagesize back to 100
Add placeholder
Empty placeholder
Fix input and icon sizes
Fix input underline
Add max height and scroll to category dropdown
Add sorting of category items
Auto open parents when traversing up the tree using arrow keys
Add several comments
Add some initial unit tests for the category field component
Add tests for useCategorySearch hook and fixed minor bug
Update styling and autoselect parent if child is selected
Fix styling issues for the select control dropdown inside a modal
Fix issue with creating new category with parent
Add function comment and fixed border styling
* Fix up some issues after the rebase
* Some small fixes for the Category creation
* Fix up some styling issues around the add-new-item
* Add changelogs
* Remove unneeded export of toggle button props
* Fix create category error and tests in attribute field
* Fix some minor bugs and styling changes that came up during PR feedback
* Fix tests
* Make use of $gap variable for css
* Add product status badge
* Update status method to return keys
* Add tests around product status
* Add styling to badge
* Add changelog entry
* Change product status keys to enum
* Add enum return type to product status function
* Fix up lint errors
* Convert indentation to tabs
* Move shared product header components to separate file
* Fill header title with product name
* Create method to get product title
* Add tests around title
* Add changelog entry
* Remove unnecessary plugin registration
* Add scheduled sale fields to product form
* Close DateTimePickerControl's dropdown when blurring from input.
* Log when onChange is called for Controlled stories
* Handle when input changes occur but the end date is the same
* Fix DateTimePickerControl usage when uncontrolled
* Fix handling when blur happens before debounced onChange
* Fix business details tabs when Gutenberg is active
Fix business details tabs when Gutenberg is active
Fix business details tabs when Gutenberg is active
* Add changelog
* Add create attribute term modal
* Add back filter missed during rebase
* Add changelog
* Fix lint error
* Address some feedback from PR review
* Prevent first modal from closing if closing the second modal when clicking outside
* Fix double click toolbar behavior
* Fix initial block selection on editor load
* Add placeholder option to RichTextEditor
* Add image and video blocks
* Set toolbar height
* Allow inserter to be shown
* Allow media uploads in rich text editor
* Add changelog entries
* Fix media upload
* Check for existence of selected blocks before checking length
* Pass blocks to avoid race in detecting initially empty blocks
* Add sold individually inventory option
* Add backorder purchase options
* Add margin around collapsible content areas
* Add changelog entry
* Add tests around inventory section
* Fix up checkbox props after rebase
* Check for disabled track quantity toggle
* Update manage stock test
* Fix nested radio control label margin
* Disable product inventory toggle when inventory management is disabled
* Export conditional wrapper as experimental component
* Conditionally show the tooltip
* Add comment explaining the tooltip overlay
* Add components changelog entry
* Display tooltip on hover any portion of toggle or label
* Add changelog entry
* Fix scss lint error
* Center tooltip over label and toggle
* Fix up input props after rebase
* Add wrapper around field to maintain block item formatting
* Show a dismissible snackbar if the server responds an error
* Removed the default value New shipping class from the Name field and replaced it with a placeholder: e.g. Fragile products
* Only used the category's name when the user creates a new shipping class for the first time
* Fix linter errors
* Update grammar error
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Add empty initial values to form field to prevent controlled/uncontrolled react error
* Tune error handling
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Allow additional props to be passed to the Form getInputProps method
* Remove getTextControlProps
* Pass additional shared props through getInputProps in shipping
* Simplify checkbox props
* Unwrap currency props
* Use onBlur event to sanitize prices
* Add changelog entry
* Add option to get checkbox props to form context helpers
* Update checkbox tracks handler naming and typing
* Fix up usage of getInputProps
* Add helper sanitize method
* Use sanitize helper method for product input fields
* Fix inventory input props after rebase
* Fix shipping typo
* Fix up form types after rebase
* Align all checkboxes on product page
* Rename new checkbox helper to getCheckboxControlProps
* Add helper method to get select control props
* Add data changelog entry
* Check for product name length on blur
* Add initial value for name to prevent uncontrolled value
* Add initial value for sku
* Add initial add attribute modal
* Add async select control component and add attribute terms
* Make use of AsyncSelectControl for attributes
* Rearranged the add attribute form to make removing easier
* Make sure add button is disabled if fields are empty
* Remove the use of AsyncSelectControl for now
* Add disabled option and fix merge conflict
* Add attribute modal tests
* Remove unused trigger drag
* Add popover slot
* Small update to select control and fix multi selection in term field
* Add tests for attribute and attribute term fields
* Add changelogs
* Small fix after merge conflict
* Fix some styling and issue with select control when clearing item
* Fix lint error
* Fix up some styling issues after rebase
* Fix formatting, some styling issues, and address some PR feedback
* And confirmation dialog for closing the modal.
* Select the current new added shipping class
* Extracting constants into the right file
* Add unit tests
* Use setValue instead onChange to select the shipping class of the product
* Add label prop to rich text editor
* Create feature class and enqueue styles
* Add description editor and parsing
* Fix up incorrect context for product data
* Add styling to rich text editors in product form
* Fix editor initialization on new product
* Add changelog entries
* Use trunk lock file
* Add component changelog entry
* Update lock file
* Register block store provider in tests
* Fix up phpcs errors in product feature file
* Add initial category field component with new typeahead
Move search logic to useCategorySearch hook
Add initial add new category logic
Add parent category field to add new category modal
Adding some debug changes
Update category control to make use of internal selectItem function of select control
Add changelogs
Update pagesize back to 100
Add placeholder
Empty placeholder
Fix input and icon sizes
Fix input underline
Add max height and scroll to category dropdown
Add sorting of category items
Auto open parents when traversing up the tree using arrow keys
Add several comments
Add some initial unit tests for the category field component
Add tests for useCategorySearch hook and fixed minor bug
Update styling and autoselect parent if child is selected
Fix styling issues for the select control dropdown inside a modal
Fix issue with creating new category with parent
Add function comment and fixed border styling
Prune out create new category logic
Fix minor css issue with border
Revert some of the select control changes and make use of the custom type
Fix up some styling changes
* Fix type conflict
* Revert change in state reducer
* Add cursor pointer
* Fix styling errors
* Fix broken category tests
* Fix merge conflict
* Ensure Payments menu is dismissed after choosing no
Now it gets also dismissed on modal close
* Add a new requirement
Check if the store has another payment gateway installed to be eligible for the promotion.
* Add changelog entry
* Fix not using strict comparison for in_array
* Update is_another_payment_gateway_installed
To use a static list instead of PaymentGatewaySuggestions
* Add manage stock section to product inventory section
* Fix up h4 styles in form sections
* Check if stock management is enabled in store settings
* Fix up more styles in form
* Extract inventory validation and add new validation rules
* Add changelog entry
* Add changelog entry
* Remove sku related validation
* Add product inventory section and sku control
* Add validation and errors
* Add changelog entry
* Add dependencies comment block
* Call input props onBlur for product name field
* Remove slug validation
* Watch product name value change in inventory section
* Fix up usePrevious hook TS
* Revert watching changes by previous touched status
* Add initial attribute list with dragging and removing functionality
* Fix sortable styling and remove the default selected logic
* Fix css formatting
* Add changelogs
* Add missing question mark
* Add tests
* Some minor CSS updates and move some logic to a util function
* Fix lint issues and add extra test
* Remove custom styles from FormSection component and use Card and CardBody instead
* Add dimension fields formating using the woo number global settings
* Load size units to show it as a suffix of shipping dimensions fields
* Fix card styles according the disign and pass props manually to BaseControl
* Add shipping dimensions image
* Apply comment suggestions