{"version":3,"sources":["Search.js","Player.js","Statistic.js","App.js","index.js"],"names":["Search","statistics","players","useState","searchTerm","setSearchTerm","searchEngine","useMemo","fullList","map","s","type","value","name","concat","p","Fuse","minMatchCharLength","ignoreLocation","shouldSort","keys","searchResults","search","renderRow","index","style","isScrolling","isVisible","key","parent","x","to","item","id","size","leftIcon","as","FaUserCircle","FaArrowAltCircleRight","transform","variant","my","display","textAlign","width","height","onChildScroll","scrollTop","registerChild","placeholder","onChange","event","target","ref","disableHeight","autoHeight","onScroll","rowCount","length","rowHeight","rowRenderer","Player","playerId","playerStats","useQuery","a","axios","get","data","sort","b","rank","placeholderData","playerName","find","mt","fontWeight","mb","src","replaceAll","mr","isNumeric","i","Statistic","ranking","playerDict","Object","assign","App","path","render","routeProps","match","params","queryClient","QueryClient","theme","extendTheme","initialColorMode","useSystemColorMode","ReactDOM","StrictMode","config","QueryClientProvider","client","resetCSS","document","getElementById"],"mappings":"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","file":"static/js/main.63dbb61b.chunk.js","sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport Fuse from \"fuse.js\";\r\n\r\nimport { Button, Center, Heading, Icon, Input } from \"@chakra-ui/react\";\r\nimport { FaUserCircle, FaArrowAltCircleRight } from \"react-icons/fa\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { AutoSizer, WindowScroller, List } from \"react-virtualized\";\r\n\r\nconst Search = ({ statistics, players }) => {\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n\r\n const searchEngine = useMemo(() => {\r\n const fullList = statistics\r\n .map((s) => {\r\n return {\r\n type: \"statistic\",\r\n value: s,\r\n searchTerm: `${s.type} ${s.name}`,\r\n };\r\n })\r\n .concat(\r\n players.map((p) => {\r\n return {\r\n type: \"player\",\r\n value: p,\r\n searchTerm: p.name,\r\n };\r\n })\r\n );\r\n\r\n return new Fuse(fullList, {\r\n minMatchCharLength: 3,\r\n ignoreLocation: true,\r\n shouldSort: true,\r\n keys: [\"searchTerm\"],\r\n });\r\n }, [statistics, players]);\r\n\r\n const searchResults = useMemo(() => {\r\n return searchEngine.search(`'\"${searchTerm}\"'`);\r\n }, [searchEngine, searchTerm]);\r\n\r\n const renderRow = ({\r\n index, // Index of row\r\n isScrolling, // The List is currently being scrolled\r\n isVisible, // This row is visible within the List (eg it is not an overscanned row)\r\n key, // Unique key within array of rendered rows\r\n parent, // Reference to the parent List (instance)\r\n style, // Style object to be applied to row (to position it);\r\n // This must be passed through to the rendered row element.\r\n }) => {\r\n const x = searchResults[index];\r\n\r\n return (\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n variant=\"ghost\"\r\n my=\"0.5\"\r\n display=\"block\"\r\n textAlign=\"left\"\r\n width=\"100%\"\r\n >\r\n {x.item.searchTerm}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {({ height, isScrolling, onChildScroll, scrollTop, registerChild }) => (\r\n <>\r\n \r\n
📈
\r\n
\r\n setSearchTerm(event.target.value)}\r\n />\r\n
\r\n \r\n {({ width }) => (\r\n \r\n )}\r\n \r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Search;\r\n","import React from \"react\";\r\nimport { useQuery } from \"react-query\";\r\nimport axios from \"axios\";\r\nimport {\r\n Center,\r\n Heading,\r\n Image,\r\n Table,\r\n Thead,\r\n Tbody,\r\n Tr,\r\n Th,\r\n Td,\r\n} from \"@chakra-ui/react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Player = ({ playerId, players }) => {\r\n const playerStats = useQuery(\r\n `player ${playerId}`,\r\n async () => {\r\n const { data } = await axios.get(`/api/players/${playerId}`);\r\n data.sort((a, b) => a.rank - b.rank);\r\n return data;\r\n },\r\n {\r\n placeholderData: [],\r\n }\r\n );\r\n\r\n const playerName = players.data.find((x) => x.id === playerId).name;\r\n\r\n return (\r\n <>\r\n \r\n \r\n
📈
\r\n \r\n
\r\n \r\n Stonks for\r\n \r\n \r\n \r\n {playerName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {playerStats.data.map((x, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
StatisticRankValue
\r\n \r\n {x.type} {x.name}\r\n \r\n {x.rank}{x.value}
\r\n \r\n );\r\n};\r\n\r\nexport default Player;\r\n","import React, { useMemo } from \"react\";\r\nimport { useQuery } from \"react-query\";\r\nimport axios from \"axios\";\r\nimport {\r\n Center,\r\n Heading,\r\n Table,\r\n Thead,\r\n Tbody,\r\n Tr,\r\n Th,\r\n Td,\r\n} from \"@chakra-ui/react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Statistic = ({ type, name, players }) => {\r\n const ranking = useQuery(\r\n `statistic ${type} ${name}`,\r\n async () => {\r\n const { data } = await axios.get(`/api/statistics/${type}/${name}`);\r\n return data;\r\n },\r\n {\r\n placeholderData: [],\r\n }\r\n );\r\n\r\n const playerDict = useMemo(() => {\r\n return Object.assign({}, ...players.data.map((x) => ({ [x.id]: x.name })));\r\n }, [players]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n
📈
\r\n \r\n
\r\n \r\n Stonks for\r\n \r\n \r\n {type} {name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ranking.data.map((x, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
PlayerRankValue
\r\n \r\n {playerDict[x.playerId]}\r\n \r\n {x.rank}{x.value}
\r\n \r\n );\r\n};\r\n\r\nexport default Statistic;\r\n","import React from \"react\";\r\nimport { useQuery } from \"react-query\";\r\nimport axios from \"axios\";\r\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\r\nimport { Container } from \"@chakra-ui/react\";\r\n\r\nimport Search from \"./Search\";\r\nimport Player from \"./Player\";\r\nimport Statistic from \"./Statistic\";\r\n\r\nconst App = () => {\r\n const statistics = useQuery(\r\n \"statistics\",\r\n async () => {\r\n const { data } = await axios.get(\"/api/statistics\");\r\n return data;\r\n },\r\n {\r\n placeholderData: [],\r\n }\r\n );\r\n\r\n const players = useQuery(\r\n \"players\",\r\n async () => {\r\n const { data } = await axios.get(\"/api/players\");\r\n return data;\r\n },\r\n {\r\n placeholderData: [],\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import { ChakraProvider, ColorModeScript, extendTheme } from \"@chakra-ui/react\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nimport App from \"./App.js\";\n\nimport \"./index.css\";\nimport \"react-virtualized/styles.css\";\n\nconst queryClient = new QueryClient();\n\nconst config = {\n initialColorMode: \"light\",\n useSystemColorMode: false,\n};\nconst theme = extendTheme(config);\n\nReactDOM.render(\n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}