diff --git a/src/api/scene.js b/src/api/scene.js index 8e60b670..0c9f2c70 100644 --- a/src/api/scene.js +++ b/src/api/scene.js @@ -54,6 +54,27 @@ const updateScene = async (sceneId, userUID, sceneData, title, version) => { } }; +const updateSceneIdAndTitle = async (sceneId, title) => { + try { + const userScenesRef = collection(db, 'scenes'); + const sceneDocRef = doc(userScenesRef, sceneId); + + const sceneSnapshot = await getDoc(sceneDocRef); + if (sceneSnapshot.exists()) { + await updateDoc(sceneDocRef, { + title: title, + updateTimestamp: serverTimestamp() + }); + + console.log('Firebase updateDoc (sceneId and title) fired'); + } else { + throw new Error('No existing sceneSnapshot exists.'); + } + } catch (error) { + throw new Error(error); + } +}; + const isSceneAuthor = async ({ sceneId, authorId }) => { if (!sceneId || !authorId) { console.log('sceneId or authorId is not provided in isSceneAuthor'); @@ -111,5 +132,6 @@ export { getUserScenes, generateSceneId, isSceneAuthor, - getCommunityScenes + getCommunityScenes, + updateSceneIdAndTitle }; diff --git a/src/components/Main.js b/src/components/Main.js index 691dc161..7e7df92c 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -14,6 +14,7 @@ import { injectCSS } from '../lib/utils'; import { SignInModal } from './modals/SignInModal'; import { ProfileModal } from './modals/ProfileModal'; import { ScenesModal } from './modals/ScenesModal'; +import { SceneEditTitle } from './components/SceneEditTitle'; THREE.ImageUtils.crossOrigin = ''; // Megahack to include font-awesome. injectCSS( @@ -185,6 +186,8 @@ export default class Main extends Component { render() { const scene = this.state.sceneEl; const isEditor = !!this.state.inspectorEnabled; + const sceneData = AFRAME.scenes[0].getAttribute('metadata', 'sceneTitle'); + return (