From 10fd62bbb89e69a7575e6162ca59a7c9089c7d3d Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Sun, 12 Dec 2021 14:54:23 +0000 Subject: [PATCH] Update everything to honor new scoreBucket --- client/package.json | 2 +- client/pnpm-lock.yaml | 8 ++-- .../_playtype/folders/FolderSelectPage.tsx | 5 ++- .../_playtype/folders/FolderTablePage.tsx | 6 +-- .../_playtype/folders/SpecificFolderPage.tsx | 41 ++++++++++++++----- client/src/components/util/useBucket.tsx | 16 ++++++++ 6 files changed, 59 insertions(+), 19 deletions(-) create mode 100644 client/src/components/util/useBucket.tsx diff --git a/client/package.json b/client/package.json index a119078a6..c86c84454 100644 --- a/client/package.json +++ b/client/package.json @@ -82,7 +82,7 @@ "resolve": "1.12.0", "resolve-url-loader": "3.1.0", "socicon": "3.0.5", - "tachi-common": "0.3.18" + "tachi-common": "0.3.19" }, "devDependencies": { "@types/humanize-duration": "3.25.1", diff --git a/client/pnpm-lock.yaml b/client/pnpm-lock.yaml index 73a9297ee..24bf998a4 100644 --- a/client/pnpm-lock.yaml +++ b/client/pnpm-lock.yaml @@ -84,7 +84,7 @@ specifiers: serve: 11.2.0 socicon: 3.0.5 style-loader: 1.0.0 - tachi-common: 0.3.18 + tachi-common: 0.3.19 terser-webpack-plugin: 1.4.1 ts-pnp: 1.1.4 typescript: 4.3.5 @@ -156,7 +156,7 @@ dependencies: resolve: 1.12.0 resolve-url-loader: 3.1.0 socicon: 3.0.5 - tachi-common: 0.3.18 + tachi-common: 0.3.19 devDependencies: '@types/humanize-duration': 3.25.1 @@ -11241,8 +11241,8 @@ packages: strip-ansi: 6.0.0 dev: true - /tachi-common/0.3.18: - resolution: {integrity: sha512-Qom4IbPtLv83+6mW2OU3+thdqZIGrcUJaH9vhTWN6FoFTw60l0FjtBGsB7343qwsuK7l9JqcEaEJ/psKTDZb1w==} + /tachi-common/0.3.19: + resolution: {integrity: sha512-N3/n9emh2X9pA+3jQ1UfkLX9V8hk/oHGE1GPlkReRmyIR9gRAxhf3uZCiorPqibSkPzx9LrGLJcO52FR5NQ8oA==} dependencies: monk: 7.3.4 transitivePeerDependencies: diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx index 8fc323802..c3c73fd0e 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx @@ -10,6 +10,7 @@ import Loading from "components/util/Loading"; import Muted from "components/util/Muted"; import useApiQuery from "components/util/query/useApiQuery"; import SelectButton from "components/util/SelectButton"; +import { useBucket } from "components/util/useBucket"; import useUGPTBase from "components/util/useUGPTBase"; import { UserContext } from "context/UserContext"; import React, { useContext, useMemo, useState } from "react"; @@ -89,7 +90,9 @@ export function FolderInfoComponent({ }: Props & { folder: FolderDocument; folderStats: FolderStatsInfo }) { const gptConfig = GetGamePTConfig(game, playtype); - const [elements, setElements] = useState<"grade" | "lamp">(gptConfig.scoreBucket); + const scoreBucket = useBucket(game, playtype); + + const [elements, setElements] = useState<"grade" | "lamp">(scoreBucket); const base = useUGPTBase({ reqUser, game, playtype }); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx index ddbec68f7..49975bdcf 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx @@ -10,6 +10,7 @@ import Loading from "components/util/Loading"; import Muted from "components/util/Muted"; import useApiQuery from "components/util/query/useApiQuery"; import SelectButton from "components/util/SelectButton"; +import { useBucket } from "components/util/useBucket"; import { UserContext } from "context/UserContext"; import React, { useContext, useEffect, useMemo, useState } from "react"; import { Form, InputGroup } from "react-bootstrap"; @@ -218,10 +219,9 @@ function TableBarChart({ dataMap: Map; }) { const gptConfig = GetGamePTConfig(table.game, table.playtype); + const bucket = useBucket(table.game, table.playtype); - const [mode, setMode] = useState<"grades" | "lamps">( - gptConfig.scoreBucket === "grade" ? "grades" : "lamps" - ); + const [mode, setMode] = useState<"grades" | "lamps">(bucket === "grade" ? "grades" : "lamps"); const colours = useMemo(() => { if (mode === "grades") { diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx index d1a8e2f9a..8d10a8eaa 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx @@ -10,6 +10,7 @@ import Loading from "components/util/Loading"; import Muted from "components/util/Muted"; import useApiQuery from "components/util/query/useApiQuery"; import SelectButton from "components/util/SelectButton"; +import { useBucket } from "components/util/useBucket"; import { useFormik } from "formik"; import { nanoid } from "nanoid"; import React, { useEffect, useMemo, useState } from "react"; @@ -111,9 +112,6 @@ export default function SpecificFolderPage({ reqUser, game, playtype }: Props) { return (
-
- -
{folderInfoHeader}
@@ -660,15 +658,38 @@ function FolderDatasetToTierlistInfo( } function FolderInfoHeader({ game, playtype, reqUser, folderDataset, data }: InfoProps) { + const scoreBucket = useBucket(game, playtype); + const [view, setView] = useState<"grade" | "lamp">(scoreBucket); + return ( - +
+
+ + + Score Info + + + + Lamp Info + +
+
+
+ +
+ + {view === "grade" ? ( + + ) : ( + <> + )}
); } diff --git a/client/src/components/util/useBucket.tsx b/client/src/components/util/useBucket.tsx new file mode 100644 index 000000000..d66e23ac1 --- /dev/null +++ b/client/src/components/util/useBucket.tsx @@ -0,0 +1,16 @@ +import { UGPTSettingsContext } from "context/UGPTSettingsContext"; +import { useContext } from "react"; +import { Game, GetGamePTConfig } from "tachi-common"; +import { Playtype } from "types/tachi"; + +export function useBucket(game: Game, playtype: Playtype) { + const { settings } = useContext(UGPTSettingsContext); + + if (!settings?.preferences.scoreBucket) { + const gptConfig = GetGamePTConfig(game, playtype); + + return gptConfig.scoreBucket; + } + + return settings.preferences.scoreBucket; +}