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 { 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(
() => new URLSearchParams(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} />;
const scene = data?.findScene;
if (!scene) return <ErrorMessage error={`No scene found with id ${id}.`} />;
if (!loading && !scene)
return <ErrorMessage error={`No scene found with id ${id}.`} />;
return (
<div className="row">
<ScenePage
scene={scene}
setTimestamp={setTimestamp}
queueScenes={queueScenes ?? []}
queueStart={queueStart}
onDelete={onDelete}
onQueueNext={onQueueNext}
onQueuePrevious={onQueuePrevious}
onQueueRandom={onQueueRandom}
continuePlaylist={continuePlaylist}
loadScene={loadScene}
queueHasMoreScenes={queueHasMoreScenes}
onQueueLessScenes={onQueueLessScenes}
onQueueMoreScenes={onQueueMoreScenes}
collapsed={collapsed}
setCollapsed={setCollapsed}
setContinuePlaylist={setContinuePlaylist}
/>
{scene && (
<ScenePage
scene={scene}
setTimestamp={setTimestamp}
queueScenes={queueScenes ?? []}
queueStart={queueStart}
onDelete={onDelete}
onQueueNext={onQueueNext}
onQueuePrevious={onQueuePrevious}
onQueueRandom={onQueueRandom}
continuePlaylist={continuePlaylist}
loadScene={loadScene}
queueHasMoreScenes={queueHasMoreScenes}
onQueueLessScenes={onQueueLessScenes}
onQueueMoreScenes={onQueueMoreScenes}
collapsed={collapsed}
setCollapsed={setCollapsed}
setContinuePlaylist={setContinuePlaylist}
/>
)}
<div className={`scene-player-container ${collapsed ? "expanded" : ""}`}>
<ScenePlayer
key="ScenePlayer"