mirror of
https://github.com/stashapp/stash.git
synced 2025-12-21 15:53:49 +01:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import React from "react";
|
|
import * as GQL from "src/core/generated-graphql";
|
|
import { SceneQueue } from "src/models/sceneQueue";
|
|
import { SceneCard } from "./SceneCard";
|
|
import { useContainerDimensions } from "../Shared/GridCard/GridCard";
|
|
|
|
interface ISceneCardsGrid {
|
|
scenes: GQL.SlimSceneDataFragment[];
|
|
queue?: SceneQueue;
|
|
selectedIds: Set<string>;
|
|
zoomIndex: number;
|
|
onSelectChange: (id: string, selected: boolean, shiftKey: boolean) => void;
|
|
}
|
|
|
|
export const SceneCardsGrid: React.FC<ISceneCardsGrid> = ({
|
|
scenes,
|
|
queue,
|
|
selectedIds,
|
|
zoomIndex,
|
|
onSelectChange,
|
|
}) => {
|
|
const [componentRef, { width }] = useContainerDimensions();
|
|
return (
|
|
<div className="row justify-content-center" ref={componentRef}>
|
|
{scenes.map((scene, index) => (
|
|
<SceneCard
|
|
key={scene.id}
|
|
containerWidth={width}
|
|
scene={scene}
|
|
queue={queue}
|
|
index={index}
|
|
zoomIndex={zoomIndex}
|
|
selecting={selectedIds.size > 0}
|
|
selected={selectedIds.has(scene.id)}
|
|
onSelectedChanged={(selected: boolean, shiftKey: boolean) =>
|
|
onSelectChange(scene.id, selected, shiftKey)
|
|
}
|
|
/>
|
|
))}
|
|
</div>
|
|
);
|
|
};
|