From e40f07211f5f15dcb138e2520a76d13afd3c0cfd Mon Sep 17 00:00:00 2001 From: FifthWit Date: Thu, 30 Jan 2025 10:44:30 -0600 Subject: formatted with prettier --- frontend/src/components/Summary.tsx | 265 ++++++++++++++++++++++++------------ 1 file changed, 176 insertions(+), 89 deletions(-) (limited to 'frontend/src/components/Summary.tsx') diff --git a/frontend/src/components/Summary.tsx b/frontend/src/components/Summary.tsx index 4bcaa6a..1ba166a 100644 --- a/frontend/src/components/Summary.tsx +++ b/frontend/src/components/Summary.tsx @@ -2,49 +2,67 @@ import React from 'react'; import ReactMarkdown from 'react-markdown'; import { MapSummary } from '@customTypes/Map'; -import "@css/Maps.css" +import '@css/Maps.css'; interface SummaryProps { - selectedRun: number + selectedRun: number; setSelectedRun: (x: number) => void; data: MapSummary; } -const Summary: React.FC = ({ selectedRun, setSelectedRun, data }) => { - +const Summary: React.FC = ({ + selectedRun, + setSelectedRun, + data, +}) => { const [selectedCategory, setSelectedCategory] = React.useState(1); const [historySelected, setHistorySelected] = React.useState(false); function _select_run(idx: number, category_id: number) { - let r = document.querySelectorAll("button.record"); - r.forEach(e => (e as HTMLElement).style.backgroundColor = "#2b2e46"); - (r[idx] as HTMLElement).style.backgroundColor = "#161723" - + let r = document.querySelectorAll('button.record'); + r.forEach(e => ((e as HTMLElement).style.backgroundColor = '#2b2e46')); + (r[idx] as HTMLElement).style.backgroundColor = '#161723'; if (data && data.summary.routes.length !== 0) { - idx += data.summary.routes.filter(e => e.category.id < category_id).length // lethimcook + idx += data.summary.routes.filter( + e => e.category.id < category_id + ).length; // lethimcook setSelectedRun(idx); } - }; + } function _get_youtube_id(url: string): string { const urlArray = url.split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/); - return (urlArray[2] !== undefined) ? urlArray[2].split(/[^0-9a-z_-]/i)[0] : urlArray[0]; - }; + return urlArray[2] !== undefined + ? urlArray[2].split(/[^0-9a-z_-]/i)[0] + : urlArray[0]; + } function _category_change() { - const btn = document.querySelectorAll("#section3 #category span button"); - btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" }); + const btn = document.querySelectorAll('#section3 #category span button'); + btn.forEach(e => { + (e as HTMLElement).style.backgroundColor = '#2b2e46'; + }); // heavenly father forgive me for i have sinned. TODO: fix this bullshit with dynamic categories - const idx = selectedCategory === 1 ? 0 : data.map.is_coop ? selectedCategory - 3 : selectedCategory - 1; - (btn[idx] as HTMLElement).style.backgroundColor = "#202232"; - }; + const idx = + selectedCategory === 1 + ? 0 + : data.map.is_coop + ? selectedCategory - 3 + : selectedCategory - 1; + (btn[idx] as HTMLElement).style.backgroundColor = '#202232'; + } function _history_change() { - const btn = document.querySelectorAll("#section3 #history span button"); - btn.forEach((e) => { (e as HTMLElement).style.backgroundColor = "#2b2e46" }); - (historySelected ? btn[1] as HTMLElement : btn[0] as HTMLElement).style.backgroundColor = "#202232"; - }; + const btn = document.querySelectorAll('#section3 #history span button'); + btn.forEach(e => { + (e as HTMLElement).style.backgroundColor = '#2b2e46'; + }); + (historySelected + ? (btn[1] as HTMLElement) + : (btn[0] as HTMLElement) + ).style.backgroundColor = '#202232'; + } React.useEffect(() => { _history_change(); @@ -61,119 +79,188 @@ const Summary: React.FC = ({ selectedRun, setSelectedRun, data }) return ( <> -
-
- -

{data.summary.routes[selectedRun].history.score_count} - {data.summary.routes[selectedRun].history.score_count === 1 ? ` portal` : ` portals`}

- {data.map.is_coop ? // TODO: make this part dynamic - ( - - - - - - ) - : - ( - - - - - - - - ) - } - +
+
+ +

+ + {data.summary.routes[selectedRun].history.score_count} + + {data.summary.routes[selectedRun].history.score_count === 1 + ? ` portal` + : ` portals`} +

+ {data.map.is_coop ? ( // TODO: make this part dynamic + + + + + + ) : ( + + + + + + + )}
-
- -
- {data.summary.routes.filter(e => e.category.id === selectedCategory).length === 0 ?
There are no records for this map.
: +
+
+ {data.summary.routes.filter(e => e.category.id === selectedCategory) + .length === 0 ? ( +
There are no records for this map.
+ ) : ( <> -
+
Date Record First Completion

-
- +
{data.summary.routes .filter(e => e.category.id === selectedCategory) .map((r, index) => ( - ))}
- } + )}
-
- {data.summary.routes.filter(e => e.category.id === selectedCategory).length === 0 ?
There are no records for this map.
: -
+
+ {data.summary.routes.filter(e => e.category.id === selectedCategory) + .length === 0 ? ( +
There are no records for this map.
+ ) : ( +
{/*
{graph(1)}
{graph(2)}
{graph(3)}
*/}
- } + )}
- - -
-
-
+
+
+
Difficulty - {data.summary.routes[selectedRun].rating === 0 && (N/A)} - {data.summary.routes[selectedRun].rating === 1 && (Very easy)} - {data.summary.routes[selectedRun].rating === 2 && (Easy)} - {data.summary.routes[selectedRun].rating === 3 && (Medium)} - {data.summary.routes[selectedRun].rating === 4 && (Hard)} - {data.summary.routes[selectedRun].rating === 5 && (Very hard)} + {data.summary.routes[selectedRun].rating === 0 && N/A} + {data.summary.routes[selectedRun].rating === 1 && ( + Very easy + )} + {data.summary.routes[selectedRun].rating === 2 && ( + Easy + )} + {data.summary.routes[selectedRun].rating === 3 && ( + Medium + )} + {data.summary.routes[selectedRun].rating === 4 && ( + Hard + )} + {data.summary.routes[selectedRun].rating === 5 && ( + Very hard + )}
- {data.summary.routes[selectedRun].rating === 1 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 2 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 3 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 4 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 5 ? (
) : (
)} + {data.summary.routes[selectedRun].rating === 1 ? ( +
+ ) : ( +
+ )} + {data.summary.routes[selectedRun].rating === 2 ? ( +
+ ) : ( +
+ )} + {data.summary.routes[selectedRun].rating === 3 ? ( +
+ ) : ( +
+ )} + {data.summary.routes[selectedRun].rating === 4 ? ( +
+ ) : ( +
+ )} + {data.summary.routes[selectedRun].rating === 5 ? ( +
+ ) : ( +
+ )}
-
+
Completion Count
{data.summary.routes[selectedRun].completion_count}
-
-
- {data.summary.routes[selectedRun].showcase !== "" ? - - : ""} +
+
+ {data.summary.routes[selectedRun].showcase !== '' ? ( + + ) : ( + '' + )}

Route Description

- + {data.summary.routes[selectedRun].description}
- ); }; -- cgit v1.2.3