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,14 +763,15 @@ 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">
{scene && (
<ScenePage <ScenePage
scene={scene} scene={scene}
setTimestamp={setTimestamp} setTimestamp={setTimestamp}
@@ -778,6 +790,7 @@ const SceneLoader: React.FC = () => {
setCollapsed={setCollapsed} setCollapsed={setCollapsed}
setContinuePlaylist={setContinuePlaylist} setContinuePlaylist={setContinuePlaylist}
/> />
)}
<div className={`scene-player-container ${collapsed ? "expanded" : ""}`}> <div className={`scene-player-container ${collapsed ? "expanded" : ""}`}>
<ScenePlayer <ScenePlayer
key="ScenePlayer" key="ScenePlayer"