import * as React from "react"; import * as GQL from "src/core/generated-graphql"; import { StashService } from "src/core/StashService"; import { Form } from "react-bootstrap"; type ValidTypes = GQL.SlimMovieDataFragment; export type MovieSceneIndexMap = Map; export interface IProps { movieSceneIndexes: MovieSceneIndexMap; onUpdate: (value: MovieSceneIndexMap) => void; } export const SceneMovieTable: React.FunctionComponent = ( props: IProps ) => { const { data } = StashService.useAllMoviesForFilter(); const items = !!data && !!data.allMovies ? data.allMovies : []; let itemsFilter: ValidTypes[] = []; if (!!props.movieSceneIndexes && !!items) { props.movieSceneIndexes.forEach((index, movieId) => { itemsFilter = itemsFilter.concat(items.filter(x => x.id === movieId)); }); } const storeIdx = itemsFilter.map(movie => { return props.movieSceneIndexes.get(movie.id); }); const updateFieldChanged = (movieId: string, value: string) => { const newMap = new Map(props.movieSceneIndexes); newMap.set(movieId, value); props.onUpdate(newMap); }; function renderTableData() { return ( {itemsFilter!.map((item, index: number) => ( {item.name} Scene number: ) => updateFieldChanged(item.id, e.currentTarget.value) } > {["", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"].map( opt => ( ) )} ))} ); } return (
{renderTableData()}
); };