diff --git a/src/assets/DevYARGIcon.png b/src/assets/DevYARGIcon.png new file mode 100644 index 0000000..cfa81ef Binary files /dev/null and b/src/assets/DevYARGIcon.png differ diff --git a/src/components/Sidebar/Versions/List.tsx b/src/components/Sidebar/Versions/List.tsx index 9c73a66..4ca8dbd 100644 --- a/src/components/Sidebar/Versions/List.tsx +++ b/src/components/Sidebar/Versions/List.tsx @@ -11,6 +11,7 @@ const VersionsList: React.FC = () => { + diff --git a/src/components/Sidebar/Versions/YARG.tsx b/src/components/Sidebar/Versions/YARG.tsx index 60d2bf9..a8e9aa8 100644 --- a/src/components/Sidebar/Versions/YARG.tsx +++ b/src/components/Sidebar/Versions/YARG.tsx @@ -3,10 +3,11 @@ import { YARGStates, useYARGVersion } from "@app/hooks/useYARGVersion"; import BaseVersion from "./Base"; import NightlyYARGIcon from "@app/assets/NightlyYARGIcon.png"; import StableYARGIcon from "@app/assets/StableYARGIcon.png"; +import DevYARGIcon from "@app/assets/DevYARGIcon.png"; import { NavLink } from "react-router-dom"; interface Props { - channel: "stable" | "nightly"; + channel: "stable" | "nightly" | "newEngine"; } const YARGVersion: React.FC = ({ channel }: Props) => { @@ -19,6 +20,8 @@ const YARGVersion: React.FC = ({ channel }: Props) => { return StableYARGIcon; case "nightly": return NightlyYARGIcon; + case "newEngine": + return DevYARGIcon; } } @@ -28,6 +31,8 @@ const YARGVersion: React.FC = ({ channel }: Props) => { return "Stable"; case "nightly": return "Nightly"; + case "newEngine": + return "New Engine"; } } diff --git a/src/hooks/useYARGRelease.ts b/src/hooks/useYARGRelease.ts index df1fcd0..8565eda 100644 --- a/src/hooks/useYARGRelease.ts +++ b/src/hooks/useYARGRelease.ts @@ -2,7 +2,7 @@ import { useQuery } from "@tanstack/react-query"; import { Endpoints } from "@octokit/types"; import { invoke } from "@tauri-apps/api/tauri"; -export type YARGChannels = "stable"|"nightly"; +export type YARGChannels = "stable" | "nightly" | "newEngine"; type ReleaseData = Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"]; export type ExtendedReleaseData = ReleaseData & { @@ -12,7 +12,8 @@ export type ExtendedReleaseData = ReleaseData & { export const useYARGRelease = (channel: YARGChannels) => { const repositoryName = { "stable": "YARG", - "nightly": "YARG-BleedingEdge" + "nightly": "YARG-BleedingEdge", + "newEngine": "YARG-NewEngine" }; return useQuery({ @@ -20,7 +21,7 @@ export const useYARGRelease = (channel: YARGChannels) => { queryFn: async (): Promise => await fetch( `https://api.github.com/repos/YARC-Official/${repositoryName[channel]}/releases/latest`) .then(res => res.json()), - select: (data): ExtendedReleaseData => ({...data, channel: channel}) + select: (data): ExtendedReleaseData => ({ ...data, channel: channel }) }).data as ExtendedReleaseData; }; diff --git a/src/routes/YARG/NewEngine.tsx b/src/routes/YARG/NewEngine.tsx new file mode 100644 index 0000000..f7b0658 --- /dev/null +++ b/src/routes/YARG/NewEngine.tsx @@ -0,0 +1,22 @@ +import LaunchPage from "@app/components/Launch/LaunchPage"; +import { useYARGRelease } from "@app/hooks/useYARGRelease"; +import { useYARGVersion } from "@app/hooks/useYARGVersion"; +import DevYARGIcon from "@app/assets/DevYARGIcon.png"; + +function StableYARGPage() { + const releaseData = useYARGRelease("newEngine"); + const yargVersion = useYARGVersion(releaseData, "newEngine"); + + return (<> + + This is the YARG v0.12 test channel! v0.12 is a massive update that will completely revamp the hit + engine, add profiles, add practice mode, add replays, and a lot more! + + This version does not represent the final product of v0.12, and is incomplete. Expect lots of bugs + and incomplete features. + + } websiteUrl="https://github.com/YARC-Official/YARG-NewEngine" icon={DevYARGIcon} /> + ); +} + +export default StableYARGPage; \ No newline at end of file diff --git a/src/routes/YARG/Nightly/index.tsx b/src/routes/YARG/Nightly.tsx similarity index 100% rename from src/routes/YARG/Nightly/index.tsx rename to src/routes/YARG/Nightly.tsx diff --git a/src/routes/YARG/Stable/index.tsx b/src/routes/YARG/Stable.tsx similarity index 100% rename from src/routes/YARG/Stable/index.tsx rename to src/routes/YARG/Stable.tsx diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 060299b..bc4f5ee 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -5,6 +5,7 @@ import Home from "@app/routes/Home"; import Settings from "@app/routes/Settings"; import StableYARGPage from "./YARG/Stable"; import NightlyYARGPage from "./YARG/Nightly"; +import NewEngineYARGPage from "./YARG/NewEngine"; import Queue from "@app/routes/Queue"; import SetlistPage from "./Setlist"; import NewsPage from "./NewsPage"; @@ -39,6 +40,11 @@ const Router = createBrowserRouter([ element: }, + { + path: "/yarg/newEngine", + element: + }, + { path: "/setlist/official", element: