open scene call to action

This commit is contained in:
Brandon Thomas committed 2024-02-28 19:46:54 -05:00
1 parent 1d20e67e5f
commit 24cb7d49a1
3 files changed
+28 -3

No files matched your search

@@ -4,23 +4,30 @@ import "./Scene3D.scss";
// See the following page for Storyteller Engine's query param documentation:
// https://www.notion.so/storytellerai/Studio-Iframe-Query-Params-a748a9929ec3404780c3884e7fb89bdb
//
// You can supply either an `objectId` or a `sceneMediaFileToken` when loading in studio mode.
interface Scene3DProps {
mode: string;
fullScreen?: boolean;
urlParams?: string;
objectId?: string;
sceneMediaFileToken?: string;
}
export default function Scene3D({
mode,
fullScreen = false,
objectId,
sceneMediaFileToken,
urlParams,
}: Scene3DProps) {
let engineUrl = `https://engine.fakeyou.com?mode=${mode}`;
if (objectId) {
if (sceneMediaFileToken) {
const sceneUrlRef = `remote://${sceneMediaFileToken}.scn.ron`;
engineUrl += `&scene=${sceneUrlRef}`;
} else if (objectId) {
engineUrl += `&objectId=${objectId}`;
}
@@ -746,7 +746,7 @@ class PageContainer extends React.Component<
/>
</Route>
<Route path="/studio">
<Route path="/studio/:mediaToken?">
<StorytellerStudioListPage
sessionWrapper={this.props.sessionWrapper}
sessionSubscriptionsWrapper={
@@ -4,6 +4,7 @@ import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session
import { StudioNotAvailable } from "v2/view/_common/StudioNotAvailable";
import { Scene3D } from "components/common";
import { usePrefixedDocumentTitle } from "common/UsePrefixedDocumentTitle";
import { useParams } from "react-router-dom";
interface Props {
sessionWrapper: SessionWrapper;
@@ -11,15 +12,32 @@ interface Props {
}
function StorytellerStudioListPage(props: Props) {
const { mediaToken } = useParams<{ mediaToken: string }>();
usePrefixedDocumentTitle("Storyteller Studio");
if (!props.sessionWrapper.canAccessStudio()) {
return <StudioNotAvailable />;
}
let engineParams = {};
if (mediaToken) {
engineParams = {
sceneMediaFileToken: mediaToken
};
} else {
engineParams = {
objectId: "sample-room.gltf"
};
}
return (
<>
<Scene3D fullScreen={true} mode="studio" objectId="sample-room.gltf" />
<Scene3D
fullScreen={true}
mode="studio"
{...engineParams} />
</>
);
}