mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Add display autoplay and playlist continue options (#1921)
* Add display autoplay and playlist continue options * Include continue parameter in scene links
This commit is contained in:
@@ -24,6 +24,7 @@ import { ExportDialog } from "../Shared/ExportDialog";
|
||||
import { SceneCardsGrid } from "./SceneCardsGrid";
|
||||
import { TaggerContext } from "../Tagger/context";
|
||||
import { IdentifyDialog } from "../Dialogs/IdentifyDialog/IdentifyDialog";
|
||||
import { ConfigurationContext } from "src/hooks/Config";
|
||||
|
||||
interface ISceneList {
|
||||
filterHook?: (filter: ListFilterModel) => ListFilterModel;
|
||||
@@ -38,6 +39,7 @@ export const SceneList: React.FC<ISceneList> = ({
|
||||
}) => {
|
||||
const intl = useIntl();
|
||||
const history = useHistory();
|
||||
const config = React.useContext(ConfigurationContext);
|
||||
const [isGenerateDialogOpen, setIsGenerateDialogOpen] = useState(false);
|
||||
const [isIdentifyDialogOpen, setIsIdentifyDialogOpen] = useState(false);
|
||||
const [isExportDialogOpen, setIsExportDialogOpen] = useState(false);
|
||||
@@ -114,7 +116,11 @@ export const SceneList: React.FC<ISceneList> = ({
|
||||
// populate queue and go to first scene
|
||||
const sceneIDs = Array.from(selectedIds.values());
|
||||
const queue = SceneQueue.fromSceneIDList(sceneIDs);
|
||||
queue.playScene(history, sceneIDs[0], { autoPlay: true });
|
||||
const autoPlay =
|
||||
config.configuration?.interface.autostartVideoOnPlaySelected ?? false;
|
||||
const cont =
|
||||
config.configuration?.interface.continuePlaylistDefault ?? false;
|
||||
queue.playScene(history, sceneIDs[0], { autoPlay, continue: cont });
|
||||
}
|
||||
|
||||
async function playRandom(
|
||||
@@ -127,7 +133,10 @@ export const SceneList: React.FC<ISceneList> = ({
|
||||
|
||||
const pages = Math.ceil(count / filter.itemsPerPage);
|
||||
const page = Math.floor(Math.random() * pages) + 1;
|
||||
const index = Math.floor(Math.random() * filter.itemsPerPage);
|
||||
|
||||
const indexMax =
|
||||
filter.itemsPerPage < count ? filter.itemsPerPage : count;
|
||||
const index = Math.floor(Math.random() * indexMax);
|
||||
const filterCopy = _.cloneDeep(filter);
|
||||
filterCopy.currentPage = page;
|
||||
filterCopy.sortBy = "random";
|
||||
@@ -136,7 +145,15 @@ export const SceneList: React.FC<ISceneList> = ({
|
||||
const { id } = queryResults!.data!.findScenes!.scenes[index];
|
||||
// navigate to the image player page
|
||||
const queue = SceneQueue.fromListFilterModel(filterCopy);
|
||||
queue.playScene(history, id, { sceneIndex: index, autoPlay: true });
|
||||
const autoPlay =
|
||||
config.configuration?.interface.autostartVideoOnPlaySelected ?? false;
|
||||
const cont =
|
||||
config.configuration?.interface.continuePlaylistDefault ?? false;
|
||||
queue.playScene(history, id, {
|
||||
sceneIndex: index,
|
||||
autoPlay,
|
||||
continue: cont,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user