edit.js
1 lines
| 1 | "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Edit=void 0;const i18n_1=require("@wordpress/i18n"),element_1=require("@wordpress/element"),block_editor_1=require("@wordpress/block-editor"),compose_1=require("@wordpress/compose"),url_1=require("@wordpress/url"),data_1=require("@wordpress/data"),data_2=require("@woocommerce/data"),classnames_1=__importDefault(require("classnames")),components_1=require("@wordpress/components"),core_data_1=require("@wordpress/core-data"),utils_1=require("../../utils"),edit_product_link_modal_1=require("../../components/edit-product-link-modal"),validation_context_1=require("../../contexts/validation-context");function Edit({attributes:e}){const t=(0,block_editor_1.useBlockProps)(),{editEntityRecord:r,saveEntityRecord:o}=(0,data_1.useDispatch)("core"),[n,a]=(0,element_1.useState)(!1),i=(0,core_data_1.useEntityId)("postType","product"),l=(0,data_1.useSelect)((e=>e("core").getEditedEntityRecord("postType","product",i))),[s,c]=(0,core_data_1.useEntityProp)("postType","product","sku"),[_,u]=(0,core_data_1.useEntityProp)("postType","product","name"),{permalinkPrefix:d,permalinkSuffix:m}=(0,data_1.useSelect)((e=>{const{getPermalinkParts:t}=e(data_2.PRODUCTS_STORE_NAME);if(i){const e=t(i);return{permalinkPrefix:null==e?void 0:e.prefix,permalinkSuffix:null==e?void 0:e.suffix}}return{}})),{ref:p,error:f,validate:E}=(0,validation_context_1.useValidation)("name",(async function(){return _&&_!==utils_1.AUTO_DRAFT_NAME?_.length>120?(0,i18n_1.__)("Please enter a product name shorter than 120 characters.","woocommerce"):void 0:(0,i18n_1.__)("This field is required.","woocommerce")}),[_]),k=null!=f?f:i&&["publish","draft"].includes(l.status)&&d&&(0,element_1.createElement)("span",{className:"woocommerce-product-form__secondary-text product-details-section__product-link"},(0,i18n_1.__)("Product link","woocommerce"),": ",(0,element_1.createElement)("a",{href:l.permalink,target:"_blank",rel:"noreferrer"},d,l.slug||(0,url_1.cleanForSlug)(_),m),(0,element_1.createElement)(components_1.Button,{variant:"link",onClick:()=>a(!0)},(0,i18n_1.__)("Edit","woocommerce"))),w=(0,compose_1.useInstanceId)(components_1.BaseControl,"product_name");return(0,element_1.createElement)(element_1.Fragment,null,(0,element_1.createElement)("div",{...t},(0,element_1.createElement)(components_1.BaseControl,{id:w,label:(0,element_1.createInterpolateElement)((0,i18n_1.__)("Name <required />","woocommerce"),{required:(0,element_1.createElement)("span",{className:"woocommerce-product-form__required-input"},(0,i18n_1.__)("*","woocommerce"))}),className:(0,classnames_1.default)({"has-error":f}),help:k},(0,element_1.createElement)(components_1.__experimentalInputControl,{id:w,ref:p,name:"name",autoFocus:e.autoFocus,placeholder:(0,i18n_1.__)("e.g. 12 oz Coffee Mug","woocommerce"),onChange:u,value:_&&_!==utils_1.AUTO_DRAFT_NAME?_:"",autoComplete:"off","data-1p-ignore":!0,onBlur:()=>{s||f||c((0,url_1.cleanForSlug)(_)),E()}})),n&&(0,element_1.createElement)(edit_product_link_modal_1.EditProductLinkModal,{permalinkPrefix:d||"",permalinkSuffix:m||"",product:l,onCancel:()=>a(!1),onSaved:()=>a(!1),saveHandler:async e=>{const{slug:t,permalink:n}=await o("postType","product",{id:l.id,slug:e});if(t&&n)return r("postType","product",l.id,{slug:t,permalink:n}),{slug:t,permalink:n}}})))}exports.Edit=Edit; |