diff --git a/public/releases/app-mainline-release.apk b/public/releases/app-mainline-release.apk new file mode 100644 index 0000000..e51d6e3 Binary files /dev/null and b/public/releases/app-mainline-release.apk differ diff --git a/public/releases/latest.zip b/public/releases/latest.zip index 1b9979a..03b07ed 100644 Binary files a/public/releases/latest.zip and b/public/releases/latest.zip differ diff --git a/public/releases/sudachi-windows-v1.0.7.7z b/public/releases/sudachi-windows-v1.0.8.7z similarity index 79% rename from public/releases/sudachi-windows-v1.0.7.7z rename to public/releases/sudachi-windows-v1.0.8.7z index eae8101..4c0bb26 100644 Binary files a/public/releases/sudachi-windows-v1.0.7.7z and b/public/releases/sudachi-windows-v1.0.8.7z differ diff --git a/src/App.module.css b/src/App.module.css new file mode 100644 index 0000000..0bc45e7 --- /dev/null +++ b/src/App.module.css @@ -0,0 +1,33 @@ +.root { + border-radius: var(--mantine-radius-md); + background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6)); +} + +.item { + background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6)); + border: 1px solid transparent; + position: relative; + z-index: 0; + transition: transform 150ms ease; + + &[data-active] { + transform: scale(1.03); + z-index: 1; + background-color: var(--mantine-color-body); + border-color: light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-4)); + box-shadow: var(--mantine-shadow-md); + border-radius: var(--mantine-radius-md); + } +} + +.chevron { + &[data-rotate] { + transform: rotate(-90deg); + } +} + +.control:hover { + &[data-active] { + background-color: var(--mantine-color-body); + } +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index f0cd253..e6617a7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -12,49 +12,112 @@ import { } from '@tabler/icons-react'; import { useState } from "react"; import { theme } from "./theme"; +import classes from './App.module.css'; export default function App() { const changes = [ { - text: 'Windows', + text: 'v1.0.8', + sha: '450b52f', + isLatest: true, + isUpcoming: false, details: [ { - secondaryText: 'Fixed an issue in Super Bomberman R 2 that caused the game to not boot due to an error in the Friend service' + system: "Android", + items: [ + { + primaryText: 'Improved memory accuracy and sizing', + secondaryText: null + } + ] }, { - secondaryText: 'Fixed an issue in Animal Well that caused the game to not boot due to the audio core revision number being too low' - }, + system: "Windows", + items: [ + { + primaryText: 'Improved memory accuracy and sizing', + secondaryText: null + } + ] + } + ] + }, + { + text: 'v1.0.7', + sha: 'xxxxxxx', + isLatest: false, + isUpcoming: false, + details: [ { - secondaryText: 'Fixed an issue in Princess Peach: Showtime! that caused the game to run into a black screen', - tertiaryText: 'Please be aware this fix is not complete and Princess Peach: Showtime! will still drop to 0fps occasionally' - }, - { - secondaryText: 'Fixed an issue in Paper Mario: The Thousand Year Door that caused the sewers to be black when using an AMD graphics card', - tertiaryText: 'Thank you to Ryujinx for the pointer towards LogicOp' + system: 'Windows', + items: [ + { + primaryText: 'Fixed an issue in Super Bomberman R 2 that caused the game to not boot due to an error in the Friend service', + secondaryText: null + }, + { + primaryText: 'Fixed an issue in Animal Well that caused the game to not boot due to the audio core revision number being too low', + secondaryText: null + }, + { + primaryText: 'Fixed an issue in Princess Peach: Showtime! that caused the game to run into a black screen', + secondaryText: 'Please be aware this fix is not complete and Princess Peach: Showtime! will still drop to 0fps occasionally' + }, + { + primaryText: 'Fixed an issue in Paper Mario: The Thousand Year Door that caused the sewers to be black when using an AMD graphics card', + secondaryText: 'Thank you to Ryujinx for the pointer towards LogicOp' + } + ] } ] } ]; const items = changes.map((item) => { - const listItems = item.details.map((detail) => ( - - - {detail.secondaryText} - - - - )); + const listItems = item.details.map((detail, index) => { + const detailItems = detail.items.map((item) => ( + <> + + {item.primaryText} + + + + )); + + return ( + <> + + {detail.system} + + + {detailItems} + + + + ); + }); return ( - {item.text} + + + + + {item.text} + + + {`(${item.sha})`} + + + + {item.isLatest ? 'Latest' : item.isUpcoming ? 'Upcoming' : 'Outdated'} + + + - - {listItems} - + {...listItems} ); @@ -80,7 +143,7 @@ export default function App() { - + @@ -110,20 +173,15 @@ export default function App() { - - + + - - - Changes - - - v1.0.7 - - - + + Changes + + {items}