Apply scene queuing for all scene listviews (#1332)

* Apply queue population for all scene list views
* Add missing localisation strings
This commit is contained in:
WithoutPants
2021-04-28 09:27:47 +10:00
committed by GitHub
parent fe0c5615a6
commit 210feb4034
10 changed files with 134 additions and 95 deletions

View File

@@ -123,8 +123,8 @@ export const SceneList: React.FC<ISceneList> = ({
if (queryResults.data.findScenes.scenes.length > index) {
const { id } = queryResults!.data!.findScenes!.scenes[index];
// navigate to the image player page
const queue = SceneQueue.fromListFilterModel(filterCopy, index);
queue.playScene(history, id, { autoPlay: true });
const queue = SceneQueue.fromListFilterModel(filterCopy);
queue.playScene(history, id, { sceneIndex: index, autoPlay: true });
}
}
}
@@ -143,15 +143,6 @@ export const SceneList: React.FC<ISceneList> = ({
setIsExportDialogOpen(true);
}
async function sceneClicked(
sceneId: string,
sceneIndex: number,
filter: ListFilterModel
) {
const queue = SceneQueue.fromListFilterModel(filter, sceneIndex);
queue.playScene(history, sceneId);
}
function maybeRenderSceneGenerateDialog(selectedIds: Set<string>) {
if (isGenerateDialogOpen) {
return (
@@ -207,27 +198,34 @@ export const SceneList: React.FC<ISceneList> = ({
if (!result.data || !result.data.findScenes) {
return;
}
const queue = SceneQueue.fromListFilterModel(filter);
if (filter.displayMode === DisplayMode.Grid) {
return (
<SceneCardsGrid
scenes={result.data.findScenes.scenes}
queue={queue}
zoomIndex={zoomIndex}
selectedIds={selectedIds}
onSelectChange={(id, selected, shiftKey) =>
listData.onSelectChange(id, selected, shiftKey)
}
onSceneClick={(id, index) => sceneClicked(id, index, filter)}
/>
);
}
if (filter.displayMode === DisplayMode.List) {
return <SceneListTable scenes={result.data.findScenes.scenes} />;
return (
<SceneListTable scenes={result.data.findScenes.scenes} queue={queue} />
);
}
if (filter.displayMode === DisplayMode.Wall) {
return <WallPanel scenes={result.data.findScenes.scenes} />;
return (
<WallPanel scenes={result.data.findScenes.scenes} sceneQueue={queue} />
);
}
if (filter.displayMode === DisplayMode.Tagger) {
return <Tagger scenes={result.data.findScenes.scenes} />;
return <Tagger scenes={result.data.findScenes.scenes} queue={queue} />;
}
}