diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e8a7bdc9233fd51106428497c2259ef63a4bc2dc..92e75cd2778d3eaaa4b2818e48f99649be1191d6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -12,7 +12,8 @@ "antd": "^4.21.0", "react": "^18.1.0", "react-dom": "^18.1.0", - "react-router-dom": "^6.3.0" + "react-router-dom": "^6.3.0", + "swr": "^1.3.0" }, "devDependencies": { "@types/react": "^18.0.12", @@ -2198,6 +2199,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swr": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz", + "integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==", + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -3763,6 +3772,12 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "swr": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz", + "integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==", + "requires": {} + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index f15169587e15cac033815bad516988dfa3744295..5a6f0849f08ee9f2ed5d29accf071f7fae9eb384 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,7 +12,8 @@ "antd": "^4.21.0", "react": "^18.1.0", "react-dom": "^18.1.0", - "react-router-dom": "^6.3.0" + "react-router-dom": "^6.3.0", + "swr": "^1.3.0" }, "devDependencies": { "@types/react": "^18.0.12", diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 2c8bdc9e30aa2dbbe55707dfec5a587cae67d35c..9b3f9a6a9bb5ca9a72fd23f58249b1a6374ab6b4 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -6,11 +6,12 @@ import { Routes, Route, Outlet, Link, BrowserRouter } from "react-router-dom"; import { NavigationBar } from "./components/NavigationBar"; import { About } from "./components/About"; import React from "react"; -import { Browse } from "./components/Browse"; +import { BrowseMovies } from "./components/BrowseMovies"; import { SearchPage } from "./components/SearchPage"; import { ErrorPage } from "./components/ErrorPage"; import { MoviePage } from "./components/MoviePage"; import { DirectorPage } from "./components/DirectorPage"; +import { BrowseDirectors } from "./components/BrowseDirectors"; function App() { return ( @@ -19,7 +20,8 @@ function App() { <Routes> <Route path="/" element={<MainPage />}></Route> - <Route path="/browse" element={<Browse />}></Route> + <Route path="/movies" element={<BrowseMovies />}></Route> + <Route path="/directors" element={<BrowseDirectors/>}></Route> <Route path="/search" element={<SearchPage />}></Route> <Route path="/about" element={<About />}></Route> <Route path="/movie/:id" element={<MoviePage></MoviePage>}></Route> diff --git a/frontend/src/components/BrowseDirectors.tsx b/frontend/src/components/BrowseDirectors.tsx new file mode 100644 index 0000000000000000000000000000000000000000..48cc949dbd6cbee7c8c5f2add7fa9d50d9de885a --- /dev/null +++ b/frontend/src/components/BrowseDirectors.tsx @@ -0,0 +1,100 @@ +import { Space, Card, Table } from "antd"; +import React from "react" +import { Link } from "react-router-dom"; +import { DirectorIO } from "./Preview" + +//TODO replace by API CALL - get ALL directors +const exampleDirectors: DirectorIO[] = [{ + id: "123", + name: "Karel", + surname: "Macka", + birthdate: "20.2.1987", + }, + { + id: "456", + name: "Jan", + surname: "Vomacka", + birthdate: "20.12.1990", + }, + { + id: "890", + name: "Karel", + surname: "Vomacka", + birthdate: "1.2.1987", + }, + { + id: "666", + name: "Pan", + surname: "Natas", + birthdate: "20.2.1687", + }, +] + + + + + + +export const BrowseDirectors = () => { + + const columns = [ + { + title: "Name", + dataIndex: "name", + sorter: (a:DirectorIO, b:DirectorIO) => { + //surname has higher priority + if(a.surname < b.surname){return -1;} + if(a.surname > b.surname){return 1;} + + if(a.name < b.name){return -1;} + if(a.name > b.name){return 1;} + return 0; + + + }, + + render: (text: string, record: DirectorIO) => ( + <Link to={`/director/${record.id}`}> + <a>{record.name} {record.surname}</a> + </Link> + ), + }, + + { + title: "Birthdate", + className: "birthdate", + dataIndex: "birthdate", + sorter: (a:DirectorIO, b:DirectorIO) => { + const first = a.birthdate.split('.').reverse(); + const second = b.birthdate.split('.').reverse(); + if(first[0] > second[0]){return 1 ;} + if(first[0] < second[0]){return -1 ;} + + if(first[1] > second[1]){return 1 ;} + if(first[1] < second[1]){return -1 ;} + + if(first[2] > second[2]){return 1 ;} + if(first[2] < second[2]){return -1 ;} + return 0;}, + } + + ]; + + + + + + return ( + <div className="browse-container"> + <Space direction="vertical" size="middle" style={{ padding: "4%" }}> + <Table + columns={columns} + dataSource={exampleDirectors} + > + + </Table> + + </Space> + </div> + ); +} \ No newline at end of file diff --git a/frontend/src/components/Browse.tsx b/frontend/src/components/BrowseMovies.tsx similarity index 90% rename from frontend/src/components/Browse.tsx rename to frontend/src/components/BrowseMovies.tsx index 74024c623b320d8946662c00698a366e8bda6a75..14bbe8360096d5ff6a078977bf656d8ff912a2df 100644 --- a/frontend/src/components/Browse.tsx +++ b/frontend/src/components/BrowseMovies.tsx @@ -10,6 +10,8 @@ const gridStyle: React.CSSProperties = { textAlign: "center", }; + +// TODO replace this with API call for all categories with movies inside const categories: CategoryIO[] = [ { id: "12345", @@ -23,7 +25,7 @@ const categories: CategoryIO[] = [ picture: "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse3.mm.bing.net%2Fth%3Fid%3DOIP.Jo6M-3oyAlMsB4-F__Z9bwHaHa%26pid%3DApi&f=1", published: "1.1.2000", - runTimeMinutes: 120, + runtimeMinutes: 120, director: { id: "123456789", name: "Karel", @@ -39,7 +41,7 @@ const categories: CategoryIO[] = [ picture: "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimages01.kaleidescape.com%2Ftransformed%2Fcovers%2F1134x1624s%2F189%2F18976008.jpg&f=1&nofb=1", published: "1.1.2002", - runTimeMinutes: 150, + runtimeMinutes: 150, director: { id: "123456789", name: "Karel", @@ -61,7 +63,7 @@ const categories: CategoryIO[] = [ picture: "https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F2ht1mik98ka4dogie28vqc4y.wpengine.netdna-cdn.com%2Fwp-content%2Fuploads%2F2015%2F10%2FWho-Killed-Capt-Alex.jpg&f=1&nofb=1", published: "8.8.2015", - runTimeMinutes: 60, + runtimeMinutes: 60, director: { id: "2323", name: "Pastor", @@ -73,7 +75,7 @@ const categories: CategoryIO[] = [ }, ]; -export const Browse = () => { +export const BrowseMovies = () => { return ( <div className="browse-container"> <Space direction="vertical" size="middle" style={{ padding: "4%" }}> diff --git a/frontend/src/components/DirectorPage.tsx b/frontend/src/components/DirectorPage.tsx index 4b85ccafe910f8b00625bcc041709d122f54483b..7e90902d6530ac09accb7ed115ed92789783f1f6 100644 --- a/frontend/src/components/DirectorPage.tsx +++ b/frontend/src/components/DirectorPage.tsx @@ -2,6 +2,8 @@ import { Descriptions } from "antd"; import React from "react"; import { DirectorIO } from "./Preview"; + +// TODO replace this with API call by director id const exampleDirector: DirectorIO = { name: "Karel", surname: "Vomacka", diff --git a/frontend/src/components/MainPage.tsx b/frontend/src/components/MainPage.tsx index 849c1a02d3c260b436065e2db6186d653a13aa10..3165f24b6c3e715ae23648a836371b3467f12ca0 100644 --- a/frontend/src/components/MainPage.tsx +++ b/frontend/src/components/MainPage.tsx @@ -19,7 +19,6 @@ const MainPage = () => ( textAlign: "center", }} > - Ant Design ©2018 Created by Ant UED </Footer> </Layout> ); diff --git a/frontend/src/components/MoviePage.tsx b/frontend/src/components/MoviePage.tsx index ed9458c75d631f86a54edd3adccaa06b1fecb85d..0c360c9e3e055446251a44951f0211ec598888c9 100644 --- a/frontend/src/components/MoviePage.tsx +++ b/frontend/src/components/MoviePage.tsx @@ -5,8 +5,8 @@ import { MovieIO } from "./Preview"; export const MoviePage = () => { const { id, name } = useParams(); - //need to fetch /channel/${id} here to preview data - + + //replace this with /channel/${id} API call const exampleMovie: MovieIO = { id: "789", name: "Saw", @@ -15,7 +15,7 @@ export const MoviePage = () => { picture: "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse3.mm.bing.net%2Fth%3Fid%3DOIP.Jo6M-3oyAlMsB4-F__Z9bwHaHa%26pid%3DApi&f=1", published: "1.1.2000", - runTimeMinutes: 120, + runtimeMinutes: 120, director: { id: "123456789", name: "Karel", @@ -47,7 +47,7 @@ export const MoviePage = () => { {exampleMovie.published} </Descriptions.Item> <Descriptions.Item label="Runtime" span={2}> - {exampleMovie.runTimeMinutes} minutes + {exampleMovie.runtimeMinutes} minutes </Descriptions.Item> </Descriptions> <Descriptions title="Director" bordered style={{ padding: "5%" }}> diff --git a/frontend/src/components/NavigationBar.tsx b/frontend/src/components/NavigationBar.tsx index 92102d45e66a0414f288711d4f0c4af4b89bf307..207026c4739299a0044ad7e70bb447bee8efbe96 100644 --- a/frontend/src/components/NavigationBar.tsx +++ b/frontend/src/components/NavigationBar.tsx @@ -8,15 +8,19 @@ import { Link } from "react-router-dom"; export const NavigationBar = () => { return ( <div className="navigation-bar"> - <Header> + <Header style={{display: "flex"}}> + <Image src={logo} width={48} height={48} style={{width:"48", height: "48"}} preview={false}></Image> <Menu theme="dark" mode="horizontal" defaultSelectedKeys={["2"]}> - <Image src={logo} width={50} preview={false}></Image> + <Menu.Item> <Link to="/">Home</Link> </Menu.Item> <Menu.Item> - <Link to="/browse">Browse</Link> + <Link to="/movies">Movies</Link> + </Menu.Item> + <Menu.Item> + <Link to="/directors">Directors</Link> </Menu.Item> <Menu.Item> <Link to="/search">Search</Link> diff --git a/frontend/src/components/Preview.tsx b/frontend/src/components/Preview.tsx index 7dc187d872a3354f52f9fb8ff15ec1578a08cec8..bcbb38ac64bc76db1434081f855209518e99075f 100644 --- a/frontend/src/components/Preview.tsx +++ b/frontend/src/components/Preview.tsx @@ -1,4 +1,4 @@ -import { Card, Carousel, Image, Space } from "antd"; +import { Card, Carousel, Divider, Image, Space } from "antd"; import Meta from "antd/lib/card/Meta"; import Title from "antd/lib/skeleton/Title"; import React from "react"; @@ -25,7 +25,7 @@ export interface MovieIO { intro: string; picture: string; published: string; - runTimeMinutes: number; + runtimeMinutes: number; director: DirectorIO; } @@ -36,7 +36,7 @@ export interface DirectorIO { birthdate: string; } -//example +//example - TODO replace this with API preview call - get POPULAR movies (probably 6 is enough) export const cardsDataExample: MovieIO[] = [ { id: "1", @@ -44,7 +44,7 @@ export const cardsDataExample: MovieIO[] = [ name: "Auta", intro: "auta ve filmu", published: "7.8.2005", - runTimeMinutes: 125, + runtimeMinutes: 125, director: { id: "xd123", name: "Kenny", @@ -59,7 +59,7 @@ export const cardsDataExample: MovieIO[] = [ name: "V tom domě straší", intro: "jo ten dum je docela spooky", published: "4.4.1994", - runTimeMinutes: 80, + runtimeMinutes: 80, picture: "https://images-na.ssl-images-amazon.com/images/S/pv-target-images/9a996123e0b01f618ab2291b479f9d5034de354b2d1bb58979ddc6937588dfa8._RI_V_TTW_.jpg", director: { @@ -75,7 +75,7 @@ export const cardsDataExample: MovieIO[] = [ name: "Pokémon", intro: "Gotta catch them all.", published: "9.9.1970", - runTimeMinutes: 600, + runtimeMinutes: 600, picture: "https://www.obchod.crew.cz/im/coc/1280/0/content/629080/cover_image.1607432614.jpg", director: { @@ -91,7 +91,7 @@ export const cardsDataExample: MovieIO[] = [ name: "Gympl", intro: "VO SEDUMNÁCT METRŮ?", published: "2.2.2005", - runTimeMinutes: 96, + runtimeMinutes: 96, picture: "https://img.csfd.cz/files/images/user/profile/162/847/162847510_91e839.jpg", director: { @@ -107,7 +107,7 @@ export const cardsDataExample: MovieIO[] = [ name: "Příběh hraček", intro: "Hmm the floor here is made of floor", published: "4.5.1999", - runTimeMinutes: 90, + runtimeMinutes: 90, picture: "https://m.media-amazon.com/images/M/MV5BMDU2ZWJlMjktMTRhMy00ZTA5LWEzNDgtYmNmZTEwZTViZWJkXkEyXkFqcGdeQXVyNDQ2OTk4MzI@._V1_.jpg", director: { @@ -124,7 +124,107 @@ export const cardsDataExample: MovieIO[] = [ intro: "Jedu dál stále s tebou víme kam cesty vedou je to fajn fajn fajn je to fajn fajnový", published: "17.11.1989", - runTimeMinutes: 50, + runtimeMinutes: 50, + picture: + "https://img.csfd.cz/files/images/user/profile/164/556/164556101_d8e43b.jpg", + director: { + id: "xx787", + name: "Zdenda", + surname: "Pohlreich", + birthdate: "4.4.1985", + }, + }, +]; + +//example - TODO replace this with API preview call - get RECENT movies (probably 6-7 is enough) +export const cardsDataExample2: MovieIO[] = [ + { + id: "1", + originalName: "Cars", + name: "Auta", + intro: "auta ve filmu", + published: "7.8.2005", + runtimeMinutes: 125, + director: { + id: "xd123", + name: "Kenny", + surname: "Omega", + birthdate: "9.9.1980", + }, + picture: "https://upload.wikimedia.org/wikipedia/en/3/34/Cars_2006.jpg", + }, + { + id: "2", + originalName: "Monster House", + name: "V tom domě straší", + intro: "jo ten dum je docela spooky", + published: "4.4.1994", + runtimeMinutes: 80, + picture: + "https://images-na.ssl-images-amazon.com/images/S/pv-target-images/9a996123e0b01f618ab2291b479f9d5034de354b2d1bb58979ddc6937588dfa8._RI_V_TTW_.jpg", + director: { + id: "xp234", + name: "Bray", + surname: "Wyatt", + birthdate: "unknown", + }, + }, + { + id: "3", + originalName: "Pokemon", + name: "Pokémon", + intro: "Gotta catch them all.", + published: "9.9.1970", + runtimeMinutes: 600, + picture: + "https://www.obchod.crew.cz/im/coc/1280/0/content/629080/cover_image.1607432614.jpg", + director: { + id: "xc456", + name: "Kazuchika", + surname: "Okada", + birthdate: "17.2.1984", + }, + }, + { + id: "4", + originalName: "Gympl", + name: "Gympl", + intro: "VO SEDUMNÁCT METRŮ?", + published: "2.2.2005", + runtimeMinutes: 96, + picture: + "https://img.csfd.cz/files/images/user/profile/162/847/162847510_91e839.jpg", + director: { + id: "xs789", + name: "Tomáš", + surname: "Vorel", + birthdate: "někdy minulé století", + }, + }, + { + id: "5", + originalName: "Toy Story", + name: "Příběh hraček", + intro: "Hmm the floor here is made of floor", + published: "4.5.1999", + runtimeMinutes: 90, + picture: + "https://m.media-amazon.com/images/M/MV5BMDU2ZWJlMjktMTRhMy00ZTA5LWEzNDgtYmNmZTEwZTViZWJkXkEyXkFqcGdeQXVyNDQ2OTk4MzI@._V1_.jpg", + director: { + id: "xl753", + name: "Tomohiro", + surname: "Ishii", + birthdate: "19.9.1970", + }, + }, + { + id: "6", + name: "Smoke", + originalName: "Kouř", + intro: + "Jedu dál stále s tebou víme kam cesty vedou je to fajn fajn fajn je to fajn fajnový", + published: "17.11.1989", + runtimeMinutes: 50, picture: "https://img.csfd.cz/files/images/user/profile/164/556/164556101_d8e43b.jpg", director: { @@ -137,10 +237,34 @@ export const cardsDataExample: MovieIO[] = [ ]; const Preview: React.FC = () => ( - <div> - <h1>Popular movies</h1> - <Space> + <Space className="preview" direction="vertical" style={{display: "flex"}}> + <Card title="Popular movies" > + <Space style={{ display: 'flex', padding: "5 %", justifyContent: "flex-end", width:"fit-content", overflow: "auto"}}> + {cardsDataExample.map((movie) => { + return ( + <> + <Link to={`/movie/${movie.id}`}> + <Card + hoverable + style={{ + width: "240px", + }} + cover={<img alt={movie.name} src={movie.picture} />} + > + <Meta title={movie.name} description={movie.originalName} /> + </Card> + </Link> + </> + ); + })} + </Space> + </Card> + <Divider/> + + <Card title="Recent movies" > + <Space style={{ display: 'flex', padding: "5 %", justifyContent: "flex-end", width:"fit-content", overflow: "auto"}}> + {cardsDataExample2.map((movie) => { return ( <> <Link to={`/movie/${movie.id}`}> @@ -158,28 +282,8 @@ const Preview: React.FC = () => ( ); })} </Space> - - <Carousel autoplay> - <div> - <h3 style={contentStyle}>Avengers</h3> - </div> - <div> - <h3 style={contentStyle}>Morbius</h3> - </div> - <div> - <h3 style={contentStyle}>Princezna a Bubeník</h3> - </div> - <div> - <h3 style={contentStyle}>Scary Movie</h3> - </div> - <div> - <h3 style={contentStyle}>Scary Movie 2</h3> - </div> - <div> - <h3 style={contentStyle}>Scary Movie 3</h3> - </div> - </Carousel> - </div> + </Card> + </Space> ); export default Preview; diff --git a/frontend/src/components/SearchPage.tsx b/frontend/src/components/SearchPage.tsx index 44b2978bf04ac960425008b128c4a894e12e19f3..91e4b06e978148a371d2e7ef2cfa7eb1b7005495 100644 --- a/frontend/src/components/SearchPage.tsx +++ b/frontend/src/components/SearchPage.tsx @@ -6,6 +6,8 @@ import { cardsDataExample, MovieIO } from "./Preview"; const { Search } = Input; + +//TODO replace with result of input search and API call const resultsExample: MovieIO[] = [ { id: "789", @@ -14,12 +16,12 @@ const resultsExample: MovieIO[] = [ intro: "Jigsaw is the bad guy and this is the game", picture: "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse3.mm.bing.net%2Fth%3Fid%3DOIP.Jo6M-3oyAlMsB4-F__Z9bwHaHa%26pid%3DApi&f=1", - published: "1.1.2000", - runTimeMinutes: 120, + published: "1.6.2000", + runtimeMinutes: 120, director: { id: "123456789", name: "Karel", - surname: "Vomacka", + surname: "Macka", birthdate: "20.2.1987", }, }, @@ -31,7 +33,7 @@ const resultsExample: MovieIO[] = [ picture: "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimages01.kaleidescape.com%2Ftransformed%2Fcovers%2F1134x1624s%2F189%2F18976008.jpg&f=1&nofb=1", published: "1.1.2002", - runTimeMinutes: 150, + runtimeMinutes: 150, director: { id: "123456789", name: "Karel", @@ -44,17 +46,24 @@ const resultsExample: MovieIO[] = [ //for searching movies export const SearchPage = () => { const [pressed, setPressed] = useState(false); + const [searchValue, setSearch] = useState(''); //function that happens when search button is pressed const onSearch = (value: string) => { - console.log(value); + console.log(searchValue); // just debug tool setPressed(true); - }; // API request search goes here + }; // API request search goes here - request search with value inside variable "searchValue" + //columns stays the same const columns = [ { title: "Name", dataIndex: "name", + sorter: (a:MovieIO, b:MovieIO) => { + if(a.name < b.name){return -1;} + if(a.name > b.name){return 1;} + return 0; + }, render: (text: string, record: MovieIO) => ( <Link to={`/movie/${record.id}`}> <a>{record.name}</a> @@ -65,18 +74,54 @@ export const SearchPage = () => { title: "Original name", className: "original-name", dataIndex: "originalName", + sorter: (a:MovieIO, b:MovieIO) => { + if(a.originalName < b.originalName){return -1;} + if(a.originalName > b.originalName){return 1;} + return 0; + }, }, { + title: "Release Date", dataIndex: "published", + sorter: (a:MovieIO, b:MovieIO) => { + const first = a.published.split('.').reverse(); + const second = b.published.split('.').reverse(); + if(first[0] > second[0]){return 1 ;} + if(first[0] < second[0]){return -1 ;} + + if(first[1] > second[1]){return 1 ;} + if(first[1] < second[1]){return -1 ;} + + if(first[2] > second[2]){return 1 ;} + if(first[2] < second[2]){return -1 ;} + return 0; + } }, { title: "Runtime", - dataIndex: "runTimeMinutes", + dataIndex: "runtimeMinutes", + sorter: (a:MovieIO, b:MovieIO) => a.runtimeMinutes - b.runtimeMinutes, }, { - title: "Director Surname", + title: "Director", dataIndex: ["director", "surname"], + sorter: (a:MovieIO, b:MovieIO) => { + //surname has higher priority + if(a.director.surname < b.director.surname){return -1;} + if(a.director.surname > b.director.surname){return 1;} + + if(a.director.name < b.director.name){return -1;} + if(a.director.name > b.director.name){return 1;} + return 0; + + + }, + render: (text: string, record: MovieIO) => ( + <Link to={`/director/${record.director.id}`}> + <a>{record.director.name} {record.director.surname}</a> + </Link> + ), }, ]; return ( @@ -90,6 +135,7 @@ export const SearchPage = () => { allowClear enterButton="Search" size="large" + onChange={(e) => setSearch(e.target.value)} onSearch={onSearch} width="400 px" /> @@ -103,7 +149,7 @@ export const SearchPage = () => { onRow={(record, rowIndex) => { return { onClick: (event) => { - console.log(record.id); + console.log(record.id); //remove later }, }; //here change to view movie }}