UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 6.05 kB
function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a,l=arguments[t];for(a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e}).apply(this,arguments)}import React from"react";import{v4 as uuidv4}from"uuid";import Tooltip from"@mui/material/Tooltip";import AdminStyles from"./Admin.module.scss";import{fetchPost}from"@tycoonsystems/tycoon-modules/utility/fetch";import Simulator from"./build/simulator";const Module=a=>{const[t,l]=React.useState(!1),[e,n]=React.useState(null);var[o,,]=React.useState(null),[,,]=React.useState(null),[,,]=React.useState(null);const[c,i]=React.useState(null),[r,m]=React.useState(null),[s,u]=React.useState(-1),[d,p]=React.useState("/"),[R,g]=React.useState("navigate");var b=React.useRef();const E=React.useRef(),f=b?.current?.value??a.apiUrl,y=(React.useEffect(()=>{var e;t||(e=uuidv4(),n(e),l(!0))},[t]),React.useEffect(()=>{-1===s&&!c&&f&&a.domainKey&&a._loggedIn&&(u((new Date).getTime()),y(f,a.domainKey,a._loggedIn))},[e,f,a.domainKey,a._loggedIn]),async(e,t,a,l=null)=>{if(a.identifier&&a.hash&&t){t={identifier:a.identifier,hash:a.hash,template:l,getBy:"id"},a=await fetchPost(e+"/p/gettemplate",null,null,t);if(a&&a.hasOwnProperty("status")){if("disauthenticated"==a.status)return logout(),"disauthenticated";if("failed"==a.status)return!1;if("success"==a.status&&a.data)return console.log(a.data),a.data?.design&&(i(a.data.design),m(a.data.design)),a}}return!1}),v=React.useCallback(e=>{if(e?.currentTarget?.getAttribute("url")){const t=e.currentTarget.getAttribute("url");t&&E?.current&&(e=""+a?.domainUrl+t,E.current.value=e,p("/"),setTimeout(()=>{p(t)},250))}});var b=React.useMemo(()=>{var e=E?.current?.value.match(/^(?:https?:\/\/)?[^\/]*(\/[^?\s]*)/);return e&&e[1]?""+e[1]:"/"},[d,E?.current]),S=React.useCallback(e=>{e?.currentTarget?.getAttribute("modif")&&(e=e.currentTarget.getAttribute("modif"))&&g(e)}),h=React.useCallback(e=>{!e?.key||"Enter"!=e.key&&13!=e.charCode||T()});const T=()=>{p("/"),setTimeout(()=>{p(E?.current?.value??"/"),a._LocalEventEmitter.dispatch("simulator_wrapper",{dispatch:"resetServerProps"})},250)};var A=""+(b?.substring?b.substring(1,b.length):"");return console.log("Design",r,b),React.createElement("div",{className:a.className+" Admin_Build_Container"},o?React.createElement("p",{className:"error",style:{marginTop:".5rem"},onClick:handleCloseError},o):null,React.createElement("h3",null,"Build"),React.createElement("div",{className:"Admin_Build_InternalContainer"},React.createElement("div",{className:""+AdminStyles.containerTwoSmallRight},React.createElement("div",{className:"Editor_Container Editor_MaxWidth"},React.createElement("div",{className:"flex gap-p5 al-cen",style:{marginBottom:".5rem"}},React.createElement(Tooltip,{title:"Working environment URL",placement:"bottom"},React.createElement("input",{type:"text",defaultValue:a?.domainUrl,ref:E,style:{borderRadius:".25rem",width:"-webkit-fill-available",borderWidth:"0",padding:".125rem .5rem"},onKeyDown:h,placeholder:"www.yourplatform.com"})),React.createElement("button",{onClick:T},"Go")),React.createElement(Simulator,_extends({schema:r},a,{simulatedPage:b,simulatedUrl:E?.current?.value??"",simulatedPageName:A,currentSimulated:d}))),React.createElement("div",{className:AdminStyles.containerRight+" "+AdminStyles.buildRightContainer},React.createElement("div",{style:{marginBottom:".5rem"}},React.createElement("div",{className:""+AdminStyles.buildPagesContainerHorizontal},React.createElement(Tooltip,{title:"Navigate",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("navigate"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"navigate"},React.createElement("div",{className:"material-icons"},"mouse"))),React.createElement(Tooltip,{title:"Move Elements",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("move"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"move"},React.createElement("div",{className:"material-icons"},"pan_tool"))),React.createElement(Tooltip,{title:"Type",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("type"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"type"},React.createElement("div",{className:"material-icons"},"format_color_text"))),React.createElement(Tooltip,{title:"Delete Element",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("delete"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"delete"},React.createElement("div",{className:"material-icons"},"delete"))),React.createElement(Tooltip,{title:"Undo",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("undo"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"undo"},React.createElement("div",{className:"material-icons"},"undo"))),React.createElement(Tooltip,{title:"Set Props",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("settings"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"props"},React.createElement("div",{className:"material-icons"},"settings"))),React.createElement(Tooltip,{title:"Download Schema",placement:"bottom"},React.createElement("button",{className:AdminStyles.buttonTool+" "+("download"===R?AdminStyles.buttonToolSelected:null),onClick:S,modif:"props"},React.createElement("div",{className:"material-icons"},"download"))))),React.createElement("div",null,React.createElement(Tooltip,{title:"Click component to add to schema",placement:"bottom"},React.createElement("h4",{style:{fontWeight:"600"}},"Components"))),React.createElement("div",null,React.createElement("h4",{style:{fontWeight:"600"}},"Pages"),React.createElement("div",{className:""+AdminStyles.buildPagesContainer},r?.content?.config?.platform?.pages?.map?r.content.config.platform.pages.map((e,t)=>React.createElement("div",null,React.createElement("button",{onClick:v,url:e?.url??""},e?.url??""))):null))))))};export default Module;