From 364d923b52e608c5dc43edecc512aba0f868936a Mon Sep 17 00:00:00 2001 From: Greg Fodor <gfodor@gmail.com> Date: Fri, 30 Mar 2018 11:27:22 -0700 Subject: [PATCH] Create pge done --- src/react-components/hub-create-panel.js | 38 ++++++++++++++++++------ 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/react-components/hub-create-panel.js b/src/react-components/hub-create-panel.js index 237a4fe04..aad8e0b0e 100644 --- a/src/react-components/hub-create-panel.js +++ b/src/react-components/hub-create-panel.js @@ -21,15 +21,16 @@ class HubCreatePanel extends Component { this.state = { name: generateHubName(), environmentIndex: Math.floor(Math.random() * props.environments.length), - expanded: true + expanded: false }; } createHub = async e => { e.preventDefault(); + const environment = this.props.environments[this.state.environmentIndex]; const payload = { - hub: { name: this.state.name, default_environment_gltf_bundle_url: this.state.environmentBundleUrl } + hub: { name: this.state.name, default_environment_gltf_bundle_url: environment.bundle_url } }; const res = await fetch("/api/v1/hubs", { @@ -47,6 +48,31 @@ class HubCreatePanel extends Component { return new RegExp(HUB_NAME_PATTERN).test(this.state.name) && new RegExp(hubAlphaPattern).test(this.state.name); }; + setToEnvironmentOffset = offset => { + const numEnvs = this.props.environments.length; + + this.setState(state => ({ + environmentIndex: ((state.environmentIndex + offset) % this.props.environments.length + numEnvs) % numEnvs + })); + }; + + setToNextEnvironment = e => { + e.preventDefault(); + this.setToEnvironmentOffset(1); + }; + + setToPreviousEnvironment = e => { + e.preventDefault(); + this.setToEnvironmentOffset(-1); + }; + + shuffle = () => { + this.setState({ + name: generateHubName(), + environmentIndex: Math.floor(Math.random() * this.props.environments.length) + }); + }; + render() { const { formatMessage } = this.props.intl; @@ -54,12 +80,6 @@ class HubCreatePanel extends Component { return <div />; } - const environmentChoices = this.props.environments.map(e => ( - <option key={e.bundle_url} value={e.bundle_url}> - {e.meta.title} - </option> - )); - const environment = this.props.environments[this.state.environmentIndex]; const environmentImageSrcSet = environment.meta.images.find(i => i.type === "preview-thumbnail").srcset; @@ -85,7 +105,7 @@ class HubCreatePanel extends Component { e.preventDefault(); if (this.state.expanded) { - this.setState({ name: generateHubName() }); + this.shuffle(); } else { this.setState({ expanded: true }); } -- GitLab