UNPKG

mfe-customer

Version:

Subscription page with Checkout

139 lines (131 loc) 4.13 kB
import React, { useState } from "react"; import RequestService from "@ozoneuniverse/mfe-components/dist/components/request-manager"; import { querys } from "../../querys"; import { useParams, useHistory } from "react-router-dom"; export const withLogin = (Component) => (props) => { let history = useHistory(); const { metaverseName } = useParams(); const [errorLogin, setErrorLogin] = useState(false); const [isLogged, setIsLogged] = useState(false); const onLogin = (values) => { setErrorLogin(false); const { metaverse } = values; const variables = { input: { email: metaverse.email, password: metaverse.password, metaverseWorldName: metaverseName, }, }; RequestService.makeMutation( querys["getOwnerLogin"], "getOwnerLogin", variables ).then((response) => { const { error, data } = response.data.metaverseOwnerLogin; if (!error) { RequestService.queryGetGraphQL(querys["getScenes"]).then((response) => { const { success, data } = response.data.getMetaverseUserScenes; if (success && data.length > 0) { history.push( `/metaverse/${metaverseName}/${data[0].metaverseUserSceneName}` ); } else { } }); setIsLogged(true); } else { //console.error('error Login fail'); setErrorLogin(true); } }); }; const onSelectScene = (values) => { const nameScene = "test"; const variables = { input: { metaverseUserSceneName: nameScene, metaverseSceneId: `${metaverseName}-${nameScene}`, }, }; RequestService.makeMutation(querys["addScene"], "addScene", variables).then( (response) => { const { success, data } = response.data.addMetaverseUserScene; if (success && data) { const { metaverseUserSceneId, metaverseUserSceneName } = data; addAssets({ metaverseUserSceneId, metaverseUserSceneName }).then( () => { history.push( `/metaverse/${metaverseName}/${metaverseUserSceneName}` ); } ); } else { } } ); }; const addAssets = ({ metaverseUserSceneId, metaverseUserSceneName }) => { const assets = [ { url: "AssetPack.gltf", name: "AssetPack", }, { url: "HighPack.gltf", name: "HighPack", }, { url: "SignPack.gltf", name: "SignPack", }, { url: "TeleportFloor.gltf", name: "TeleportFloor", }, ]; const baseURL = "https://assets2022.s3.amazonaws.com/Dragon/demo/artGallery/"; return Promise.all( assets.map((element) => { return new Promise((resolve, reject) => { RequestService.makeMutation( querys["addAssetIntoScene"], "addAssetIntoScene", { input: { metaverseUserSceneId, metaverseUserSceneAssetName: element.name, metaverseUserSceneAssetUrl: baseURL + element.url, metaverseUserSceneAssetRotationX: 0, metaverseUserSceneAssetRotationY: 0, metaverseUserSceneAssetRotationZ: 0, metaverseUserSceneAssetScaleX: 1, metaverseUserSceneAssetScaleY: 1, metaverseUserSceneAssetScaleZ: 1, metaverseUserSceneAssetPositionX: 0, metaverseUserSceneAssetPositionY: 0, metaverseUserSceneAssetPositionZ: 0, }, } ).then((response) => { // const { success, data } = response.data.addMetaverseUserSceneAsset; // if (success && data) { // console.log("asset add", response); // } else { // } resolve(true); }); }); }) ); }; const actionsLogin = { metaverseName, onLogin, errorLogin, isLogged, onSelectScene, }; return <Component {...props} {...actionsLogin} />; };