UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 4.31 kB
function _extends(){return(_extends=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r,n=arguments[e];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}import React from"react";import{resolveDefaultStyle,resolveRegionBasedPrice}from"../../utility/ecommerce";import{fireGlobalEvent}from"../../utility/utility";import PIMStyles from"./ProductImageManager.module.scss";import{Product}from"/layout/product";const Module=r=>{const[t,e]=React.useState(!1),[n,i]=React.useState({}),[o,c]=React.useState(null);var[u,a]=React.useState(null),s=React.useRef(),l=React.useRef();const d=React.useRef(),p=React.useRef(),[g,y]=React.useState(!1);var f=React.useRef();const m=React.useRef();React.useEffect(()=>{t||(r.setDefaultPriceHtml(),e(!0))},[t,e,r.product]),resolveDefaultStyle(r.product,n,i,o,c);var v=React.useCallback(e=>{var t;e&&e.currentTarget&&e.currentTarget.value&&(i(e.currentTarget.value),t=r.product.styles.find(t=>t.sid===e.currentTarget.value))&&t.option&&t.option[0]&&t.option[0].sid&&c(t.option[0].sid)}),R=React.useCallback(t=>{c(t.currentTarget.value??""),r.changeCurrentOption(t)}),b=React.useCallback(t=>{var e;console.log(t,"edit"),t&&t.currentTarget&&t.currentTarget.getAttribute&&t.currentTarget.getAttribute("modif")&&(e=t.currentTarget.getAttribute("modif"),t.currentTarget,"edit"===e)&&r.handleEdit&&(r.handleEdit(r.product),setTimeout(()=>{r.nameRef.current.value=r?.product?.name,r.product.styles&&r.product.styles[0]&&(r.styleInput.current.value=r.product.styles[0].style,r.setEditingSelectedStyle(r.product.styles[0].sid),setTimeout(()=>{console.log(r,r.product.styles[0].option&&r.product.styles[0].option[0]),r.product.styles[0].option&&r.product.styles[0].option[0]&&(r.optionInput.current&&(t=r.product.styles[0].option[0].option??"",console.log(t),r.optionInput.current.value=t),r.setEditingSelectedOption(r.product.styles[0].option[0].sid),r.quantityInput.current.value=r.product.styles[0].option[0].quantity,r.priceInput.current.value=r.product.styles[0].price,console.log(r.product.detailmeta),r.product.detailmeta&&(d.current&&(d.current.value=r.product.detailmeta.ticket),p.current)&&(p.current.value=r.product.detailmeta.livestream),r.setEditingOptionsMeta(r.product.detailmeta));var t=document.getElementById(r.product.id);if(t?.offsetTop&&window?.scrollTo&&r._isMobile)try{window.scrollTo({behavior:"smooth",top:t.offsetTop-5})}catch(t){}},250))},250))}),E=React.useCallback(async t=>{fireGlobalEvent(t,r._LocalEventEmitter)}),S=React.useCallback(t=>g?(y(!1),!1):(y(!0),!0)),C=React.useCallback(t=>{const e=r.changeCurrentCurrency(r.editing,t.currentTarget.value);e&&(m.current.innerHTML=e,t=Object.entries(r.regionsData).find(t=>t[1].currency===e))&&t[1]&&(r.setCurrentDefinePriceCurrency(t[1]),r.setDefaultPriceHtml(t[1]))}),T=React.useCallback(t=>{var e,t=t.currentTarget.value;r.editing&&(e={...r.editingOptionsMeta})&&r.setEditing&&(e.description=t,(t={...r.editing}).detailmeta=e,r.setEditing(t),e)&&r.setEditingOptionsMeta&&r.setEditingOptionsMeta(e)});const O=n&&r.product&&r.product.styles&&r.product.styles.find(t=>t.sid===n)?r.product.styles.find(t=>t.sid===n):null;var h=O&&O.option?o?O.option.find(t=>t.sid===o):O.option[0]||null:null,P=r.product&&r.product.owner&&r._loggedIn&&r._loggedIn.identifier&&r._loggedIn.identifier===r.product.owner,I=React.useMemo(()=>resolveRegionBasedPrice(r,O),[r.product,O,"$"]),M=r?.editing?.id&&r?.product?.id&&r.editing.id===r.product.id,k=M&&r?.editingOptionsMeta||!M&&r.product.detailmeta;return React.createElement("div",{className:`${M?PIMStyles.currentlyEditingProductContainer:"Product_col"} `+r.className,id:r.product&&r.product.id?r.product.id:"",selectedstyle:O?.sid?O.sid:"",currentoption:h?.sid?h.sid:""},React.createElement(Product,_extends({},r,{isEditing:M,useEditingOptions:k,validStyleObject:O,validOptionObject:h,isAdmin:P,handleEdit:b,currentPrice:I,handleFireGlobalEvent:E,selectedStyle:n,currentOption:o,handleUpdateProductDescription:T,descriptionInputRef:f,isSettingCurrency:g,handleSetIsSettingCurrency:S,currentCurrencyRef:m,isTicketRef:d,isLivestreamRef:p,warning:u,setWarning:a,setSelectedStyleHandler:v,changeCurrentOption:R,handleChangeCurrentCurrency:C,optionSelect:s,styleSelect:l})))};export default Module;