import React from 'react'; import ReactMarkdown from 'react-markdown'; import { MapSummary } from '@customTypes/Map'; import '@css/Maps.css'; interface SummaryProps { selectedRun: number; setSelectedRun: (x: number) => void; data: MapSummary; } 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'; if (data && data.summary.routes.length !== 0) { 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]; } function _category_change() { 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'; } 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'; } React.useEffect(() => { _history_change(); }, [historySelected]); React.useEffect(() => { _category_change(); _select_run(0, selectedCategory); }, [selectedCategory]); React.useEffect(() => { _select_run(0, selectedCategory); }, []); 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.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.
) : (
{/*
{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 === 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 !== '' ? ( ) : ( '' )}

Route Description

{data.summary.routes[selectedRun].description}
); }; export default Summary;