Remove final react-router props

This commit is contained in:
Infinite 2020-01-12 22:02:43 +01:00
parent 0e717d6aae
commit 0cb61d14be
3 changed files with 16 additions and 22 deletions
ui/v2.5/src
components/scenes/SceneDetails
models

View File

@ -1,9 +1,9 @@
import { Card, Spinner, Tab, Tabs } from 'react-bootstrap'; import { Card, Spinner, Tab, Tabs } from 'react-bootstrap';
import queryString from "query-string"; import queryString from "query-string";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import { useParams, useLocation, useHistory } from 'react-router-dom';
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { StashService } from "src/core/StashService"; import { StashService } from "src/core/StashService";
import { IBaseProps } from "src/models";
import { GalleryViewer } from "src/components/Galleries/GalleryViewer"; import { GalleryViewer } from "src/components/Galleries/GalleryViewer";
import { ScenePlayer } from "../ScenePlayer/ScenePlayer"; import { ScenePlayer } from "../ScenePlayer/ScenePlayer";
import { SceneDetailPanel } from "./SceneDetailPanel"; import { SceneDetailPanel } from "./SceneDetailPanel";
@ -12,28 +12,26 @@ import { SceneFileInfoPanel } from "./SceneFileInfoPanel";
import { SceneMarkersPanel } from "./SceneMarkersPanel"; import { SceneMarkersPanel } from "./SceneMarkersPanel";
import { ScenePerformerPanel } from "./ScenePerformerPanel"; import { ScenePerformerPanel } from "./ScenePerformerPanel";
interface ISceneProps extends IBaseProps {} export const Scene: React.FC = () => {
const { id = 'new' } = useParams();
export const Scene: React.FC<ISceneProps> = (props: ISceneProps) => { const location = useLocation();
const [timestamp, setTimestamp] = useState<number>(0); const history = useHistory();
const [autoplay, setAutoplay] = useState<boolean>(false); const [timestamp, setTimestamp] = useState<number>(getInitialTimestamp());
const [scene, setScene] = useState<Partial<GQL.SceneDataFragment>>({}); const [scene, setScene] = useState<Partial<GQL.SceneDataFragment>>({});
const { data, error, loading } = StashService.useFindScene(props.match.params.id); const { data, error, loading } = StashService.useFindScene(id);
const queryParams = queryString.parse(location.search);
const autoplay = queryParams?.autoplay === 'true';
useEffect(() => ( useEffect(() => (
setScene(data?.findScene ?? {}) setScene(data?.findScene ?? {})
), [data]); ), [data]);
useEffect(() => { function getInitialTimestamp() {
const queryParams = queryString.parse(props.location.search); const params = queryString.parse(location.search);
if (!!queryParams.t && typeof queryParams.t === "string" && timestamp === 0) { const timestamp = params?.t;
const newTimestamp = parseInt(queryParams.t, 10); return Number.parseInt(Array.isArray(timestamp) ? timestamp[0] : timestamp ?? '0', 10);
setTimestamp(newTimestamp); }
}
if (queryParams.autoplay && typeof queryParams.autoplay === "string") {
setAutoplay(queryParams.autoplay === "true");
}
});
function onClickMarker(marker: GQL.SceneMarkerDataFragment) { function onClickMarker(marker: GQL.SceneMarkerDataFragment) {
setTimestamp(marker.seconds); setTimestamp(marker.seconds);
@ -85,7 +83,7 @@ export const Scene: React.FC<ISceneProps> = (props: ISceneProps) => {
<SceneEditPanel <SceneEditPanel
scene={modifiedScene} scene={modifiedScene}
onUpdate={(newScene) => setScene(newScene)} onUpdate={(newScene) => setScene(newScene)}
onDelete={() => props.history.push("/scenes")} onDelete={() => history.push("/scenes")}
/> />
</Tab> </Tab>
</Tabs> </Tabs>

View File

@ -1,3 +0,0 @@
import { RouteComponentProps } from "react-router";
export interface IBaseProps<M = any> extends RouteComponentProps<M> {}

View File

@ -1 +0,0 @@
export * from "./base-props";