Skip to content
Snippets Groups Projects
SearchPage.tsx 3.34 KiB
Newer Older
import { AudioOutlined } from "@ant-design/icons";
import { Card, Input, List, Space, Table, Typography } from "antd";
import React, { useState } from "react";
import { Link } from "react-router-dom";
import { cardsDataExample, MovieIO } from "./Preview";

const { Search } = Input;

Tomáš Havlíček's avatar
Tomáš Havlíček committed

//TODO replace with result of input search and API call
const resultsExample: MovieIO[] = [
  {
    id: "789",
    name: "Saw",
    originalName: "Saw",
    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,
    director: {
      id: "123456789",
      name: "Karel",
      surname: "Vomacka",
      birthdate: "20.2.1987",
    },
  },
  {
    id: "999",
    name: "Saw 2",
    originalName: "Saw 2",
    intro: "The sequel to the first one",
    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,
    director: {
      id: "123456789",
      name: "Karel",
      surname: "Vomacka",
      birthdate: "20.2.1987",
    },
  },
];

//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(searchValue); // just debug tool
    setPressed(true);
  }; // API request search goes here - request search with value inside variable "searchValue"
  //columns stays the same
  const columns = [
    {
      title: "Name",
      dataIndex: "name",
      render: (text: string, record: MovieIO) => (
        <Link to={`/movie/${record.id}`}>
          <a>{record.name}</a>
        </Link>
      ),
    },
    {
      title: "Original name",
      className: "original-name",
      dataIndex: "originalName",
    },
    {
      title: "Release Date",
      dataIndex: "published",
    },
    {
      title: "Runtime",
      dataIndex: "runTimeMinutes",
    },
    {
      title: "Director Surname",
      dataIndex: ["director", "surname"],
    },
  ];
      <Space
        direction="vertical"
        style={{ display: "flex", padding: 24, textAlign: "center" }}
      >
        <Search
          placeholder="input search text"
          allowClear
          enterButton="Search"
          size="large"
          onChange={(e) => setSearch(e.target.value)}
          onSearch={onSearch}
          width="400 px"
        />
      </Space>
      {pressed && (
        <Space
          direction="vertical"
          style={{ display: "flex", padding: 24, textAlign: "left" }}
        >
          <Table
            onRow={(record, rowIndex) => {
              return {
                onClick: (event) => {
                  console.log(record.id);
                },
              }; //here change to view movie
            }}
            columns={columns}
            dataSource={resultsExample}
            bordered
            title={() => "Results"}
          />
        </Space>
      )}