// @ts-nocheck /* eslint-disable jsx-a11y/control-has-associated-label */ import React from "react"; import { Table, Button, Form } from "react-bootstrap"; import { Link } from "react-router-dom"; import * as GQL from "src/core/generated-graphql"; import NavUtils from "src/utils/navigation"; import TextUtils from "src/utils/text"; import { Icon } from "src/components/Shared/Icon"; import { FormattedMessage } from "react-intl"; import { objectTitle } from "src/core/files"; interface ISceneListTableProps { scenes: GQL.SlimSceneDataFragment[]; queue?: SceneQueue; selectedIds: Set; onSelectChange: (id: string, selected: boolean, shiftKey: boolean) => void; } export const SceneListTable: React.FC = ( props: ISceneListTableProps ) => { const renderTags = (tags: GQL.SlimTagDataFragment[]) => tags.map((tag) => (
{tag.name}
)); const renderPerformers = (performers: Partial[]) => performers.map((performer) => (
{performer.name}
)); const renderMovies = (scene: GQL.SlimSceneDataFragment) => scene.movies.map((sceneMovie) => !sceneMovie.movie ? undefined : (
{sceneMovie.movie.name}
) ); const renderSceneRow = (scene: GQL.SlimSceneDataFragment, index: number) => { const sceneLink = props.queue ? props.queue.makeLink(scene.id, { sceneIndex: index }) : `/scenes/${scene.id}`; let shiftKey = false; const file = scene.files.length > 0 ? scene.files[0] : undefined; const title = objectTitle(scene); return ( {title}
{title}
{scene.rating100 ? scene.rating100 : ""} {file?.duration && TextUtils.secondsToTimestamp(file.duration)} {renderTags(scene.tags)} {renderPerformers(scene.performers)} {scene.studio && (
{scene.studio.name}
)} {renderMovies(scene)} {scene.gallery && ( )} ); }; return (
{props.scenes.map(renderSceneRow)}
); };