Skip to content
Snippets Groups Projects
Commit 4091789a authored by Tomáš Havlíček's avatar Tomáš Havlíček
Browse files

feat: added sorting in search results

parent 2f9d5447
No related branches found
No related tags found
No related merge requests found
......@@ -25,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",
......@@ -41,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",
......@@ -63,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",
......
......@@ -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%" }}>
......
......@@ -25,7 +25,7 @@ export interface MovieIO {
intro: string;
picture: string;
published: string;
runTimeMinutes: number;
runtimeMinutes: number;
director: DirectorIO;
}
......@@ -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,7 @@ 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: {
......
......@@ -16,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",
},
},
......@@ -33,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",
......@@ -59,6 +59,11 @@ export const SearchPage = () => {
{
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>
......@@ -69,18 +74,53 @@ 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 (
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment