Prevent fullscreen break when loading scene (#3828)

This commit is contained in:
WithoutPants
2023-06-22 09:50:40 +10:00
committed by GitHub
parent f65e87773c
commit 873d4dade6

View File

@@ -541,6 +541,17 @@ const SceneLoader: React.FC = () => {
const { configuration } = useContext(ConfigurationContext); const { configuration } = useContext(ConfigurationContext);
const { data, loading, error } = useFindScene(id ?? ""); const { data, loading, error } = useFindScene(id ?? "");
const [scene, setScene] = useState<GQL.SceneDataFragment | undefined>(
data?.findScene ?? undefined
);
// only update scene when loading is done
useEffect(() => {
if (!loading) {
setScene(data?.findScene ?? undefined);
}
}, [data, loading]);
const queryParams = useMemo( const queryParams = useMemo(
() => new URLSearchParams(location.search), () => new URLSearchParams(location.search),
[location.search] [location.search]
@@ -752,32 +763,34 @@ const SceneLoader: React.FC = () => {
} }
} }
if (loading) return <LoadingIndicator />; if (!scene && loading) return <LoadingIndicator />;
if (error) return <ErrorMessage error={error.message} />; if (error) return <ErrorMessage error={error.message} />;
const scene = data?.findScene; if (!loading && !scene)
if (!scene) return <ErrorMessage error={`No scene found with id ${id}.`} />; return <ErrorMessage error={`No scene found with id ${id}.`} />;
return ( return (
<div className="row"> <div className="row">
<ScenePage {scene && (
scene={scene} <ScenePage
setTimestamp={setTimestamp} scene={scene}
queueScenes={queueScenes ?? []} setTimestamp={setTimestamp}
queueStart={queueStart} queueScenes={queueScenes ?? []}
onDelete={onDelete} queueStart={queueStart}
onQueueNext={onQueueNext} onDelete={onDelete}
onQueuePrevious={onQueuePrevious} onQueueNext={onQueueNext}
onQueueRandom={onQueueRandom} onQueuePrevious={onQueuePrevious}
continuePlaylist={continuePlaylist} onQueueRandom={onQueueRandom}
loadScene={loadScene} continuePlaylist={continuePlaylist}
queueHasMoreScenes={queueHasMoreScenes} loadScene={loadScene}
onQueueLessScenes={onQueueLessScenes} queueHasMoreScenes={queueHasMoreScenes}
onQueueMoreScenes={onQueueMoreScenes} onQueueLessScenes={onQueueLessScenes}
collapsed={collapsed} onQueueMoreScenes={onQueueMoreScenes}
setCollapsed={setCollapsed} collapsed={collapsed}
setContinuePlaylist={setContinuePlaylist} setCollapsed={setCollapsed}
/> setContinuePlaylist={setContinuePlaylist}
/>
)}
<div className={`scene-player-container ${collapsed ? "expanded" : ""}`}> <div className={`scene-player-container ${collapsed ? "expanded" : ""}`}>
<ScenePlayer <ScenePlayer
key="ScenePlayer" key="ScenePlayer"