Added current website

This commit is contained in:
Jarrod Norwell 2024-08-21 22:23:59 +08:00
parent d20ba9eed5
commit 422881756f
18 changed files with 6577 additions and 4905 deletions

View File

@ -0,0 +1,7 @@
index.html,1724249716318,792eb436f752871965842f7108818056819967c9428d4b0e3fe68bd433d0901a
favicon.svg,1724249716138,adc7e10f9bbcf8f9f82633c10dff6adf766bb3b521a127257964852e54d40a7f
assets/index-D2oKlaOf.css,1724249716318,83048111e6b01add7846a3f820c8f5da59902198a7219142c4343e0dac692e3b
assets/index-AEhDgl0z.js,1724249716318,9dd0f358c875aa401c6bc405d7c35d5ce0f95cd642f60e630acc49e5b456bb4f
releases/latest.zip,1724249716138,e5000752bea1ee8915d21a9b4c0bd6b53b61d0f93d4b5af3c05d024c44be5ef2
releases/sudachi-android-v1.0.4.7z,1724249716147,6de6313085506266b5145ffaddf27a16f9342406997ba610dd73ec90d1740836
releases/sudachi-windows-v1.0.4.7z,1724249716192,2f0e2f68e65d3485364a5507ec5f379e1dfdaeefa9c4d74dd08451bb2b9478a5

5
.firebaserc Normal file
View File

@ -0,0 +1,5 @@
{
"projects": {
"default": "sudachi-d0faa"
}
}

View File

@ -0,0 +1,20 @@
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools
name: Deploy to Firebase Hosting on merge
on:
push:
branches:
- main
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_SUDACHI_D0FAA }}
channelId: live
projectId: sudachi-d0faa

View File

@ -0,0 +1,21 @@
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools
name: Deploy to Firebase Hosting on PR
on: pull_request
permissions:
checks: write
contents: read
pull-requests: write
jobs:
build_and_preview:
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_SUDACHI_D0FAA }}
projectId: sudachi-d0faa

16
firebase.json Normal file
View File

@ -0,0 +1,16 @@
{
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}

View File

@ -1,16 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta
name="viewport"
content="minimum-scale=1, initial-scale=1, width=device-width, user-scalable=no"
/>
<title>Mantine Vite template</title>
</head>
<body>
<meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, user-scalable=no" />
<title>Sudachi</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
</body>
</html>

4352
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,7 @@
"@mantine/core": "7.11.1",
"@mantine/hooks": "7.11.1",
"@mantine/vanilla-extract": "7.11.1",
"@tabler/icons-react": "^3.11.0",
"@vanilla-extract/css": "^1.15.3",
"react": "^18.3.1",
"react-dom": "^18.3.1"

89
public/index.html Normal file
View File

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome to Firebase Hosting</title>
<!-- update the version number as needed -->
<script defer src="/__/firebase/10.12.3/firebase-app-compat.js"></script>
<!-- include only the Firebase features as you need -->
<script defer src="/__/firebase/10.12.3/firebase-auth-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-database-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-firestore-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-functions-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-messaging-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-storage-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-analytics-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-remote-config-compat.js"></script>
<script defer src="/__/firebase/10.12.3/firebase-performance-compat.js"></script>
<!--
initialize the SDK after all desired features are loaded, set useEmulator to false
to avoid connecting the SDK to running emulators.
-->
<script defer src="/__/firebase/init.js?useEmulator=true"></script>
<style media="screen">
body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; }
#message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px; border-radius: 3px; }
#message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; }
#message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;}
#message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; }
#message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; }
#message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); }
#load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; }
@media (max-width: 600px) {
body, #message { margin-top: 0; background: white; box-shadow: none; }
body { border-top: 16px solid #ffa100; }
}
</style>
</head>
<body>
<div id="message">
<h2>Welcome</h2>
<h1>Firebase Hosting Setup Complete</h1>
<p>You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!</p>
<a target="_blank" href="https://firebase.google.com/docs/hosting/">Open Hosting Documentation</a>
</div>
<p id="load">Firebase SDK Loading&hellip;</p>
<script>
document.addEventListener('DOMContentLoaded', function() {
const loadEl = document.querySelector('#load');
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
// // The Firebase SDK is initialized and available here!
//
// firebase.auth().onAuthStateChanged(user => { });
// firebase.database().ref('/path/to/ref').on('value', snapshot => { });
// firebase.firestore().doc('/foo/bar').get().then(() => { });
// firebase.functions().httpsCallable('yourFunction')().then(() => { });
// firebase.messaging().requestPermission().then(() => { });
// firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { });
// firebase.analytics(); // call to activate
// firebase.analytics().logEvent('tutorial_completed');
// firebase.performance(); // call to activate
//
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
try {
let app = firebase.app();
let features = [
'auth',
'database',
'firestore',
'functions',
'messaging',
'storage',
'analytics',
'remoteConfig',
'performance',
].filter(feature => typeof app[feature] === 'function');
loadEl.textContent = `Firebase SDK loaded with ${features.join(', ')}`;
} catch (e) {
console.error(e);
loadEl.textContent = 'Error loading the Firebase SDK, check the console.';
}
});
</script>
</body>
</html>

BIN
public/releases/latest.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,14 +1,117 @@
import "@mantine/core/styles.css";
import { MantineProvider } from "@mantine/core";
import {
Accordion, Anchor, Button, Container,
Flex, Group, List, MantineProvider, Menu,
Space, Stack, Text, Title, rem
} from "@mantine/core";
import {
IconDeviceMobile,
IconDeviceTablet,
IconDeviceLaptop,
IconCardboards
} from '@tabler/icons-react';
import { useState } from "react";
import { theme } from "./theme";
import { Welcome } from "./Welcome/Welcome";
import { ColorSchemeToggle } from "./ColorSchemeToggle/ColorSchemeToggle";
export default function App() {
return (
<MantineProvider theme={theme}>
<Welcome />
<ColorSchemeToggle />
</MantineProvider>
);
const changes = [
{
text: 'Windows',
details: [
{
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'
}
]
}
];
const items = changes.map((item) => {
const listItems = item.details.map((detail) => (
<List.Item>
<Text>
{detail.secondaryText}
</Text>
<Text c={'dimmed'} size="sm" hidden={detail.tertiaryText == ''}>
{detail.tertiaryText}
</Text>
</List.Item>
));
return (
<Accordion.Item key={item.text} value={item.text}>
<Accordion.Control>{item.text}</Accordion.Control>
<Accordion.Panel>
<List>
{listItems}
</List>
</Accordion.Panel>
</Accordion.Item>
);
});
const [opened, setOpened] = useState(false);
return (
<MantineProvider theme={theme} forceColorScheme="dark">
<Container>
<Flex align={'center'} justify={'center'} h={'100vh'}>
<Stack>
<Anchor href='https://twitter.com/antique_codes' ta={'center'} target='_blank'>
@antique_codes
</Anchor>
<Title order={1} ta={'center'}>
Sudachi, a Nintendo Switch emulator
</Title>
<Text c={'dimmed'} ta={'center'}>
Sudachi will still receive updates but not as frequent, the plan is to add an Artic Base type feature similar to Pablo's Citra fork, move over to LibHac (for Windows) and update the UI entirely
</Text>
<Flex align={'center'} justify={'center'}>
<Group ta={'center'}>
<Button color="green" component="a" href="/releases/sudachi-android-v1.0.4.7z" radius={'xl'} variant="filled">Android</Button>
<Menu opened={opened} onChange={setOpened}>
<Menu.Target>
<Button radius={'xl'} variant="filled">Apple</Button>
</Menu.Target>
<Menu.Dropdown>
<Menu.Label>iOS, iPadOS</Menu.Label>
<Menu.Item leftSection={<IconDeviceTablet style={{ width: rem(14), height: rem(14) }} />} disabled>
iPad
</Menu.Item>
<Menu.Item leftSection={<IconDeviceMobile style={{ width: rem(14), height: rem(14) }} />} disabled>
iPhone
</Menu.Item>
<Menu.Divider />
<Menu.Label>macOS</Menu.Label>
<Menu.Item leftSection={<IconDeviceLaptop style={{ width: rem(14), height: rem(14) }} />} disabled>
Apple Silicon
</Menu.Item>
<Menu.Item leftSection={<IconDeviceLaptop style={{ width: rem(14), height: rem(14) }} />} disabled>
Intel
</Menu.Item>
<Menu.Divider />
<Menu.Label>visionOS</Menu.Label>
<Menu.Item leftSection={<IconCardboards style={{ width: rem(14), height: rem(14) }} />} disabled>
Apple Vision Pro
</Menu.Item>
</Menu.Dropdown>
</Menu>
<Button color="orange" radius={'xl'} variant="filled" disabled>Linux</Button>
<Button color="blue" component="a" href="/releases/sudachi-windows-v1.0.4.7z" radius={'xl'} variant="filled">Windows</Button>
<Button color="gray" component="a" href="/releases/latest.zip" radius={'xl'} variant="filled">Source Code</Button>
</Group>
</Flex>
<Space h={'md'} />
<Title order={2}>
Changes
</Title>
<Accordion radius={'md'} variant="contained">
{items}
</Accordion>
</Stack>
</Flex>
</Container>
</MantineProvider>
);
}

View File

@ -1,13 +0,0 @@
import { Button, Group, useMantineColorScheme } from '@mantine/core';
export function ColorSchemeToggle() {
const { setColorScheme } = useMantineColorScheme();
return (
<Group justify="center" mt="xl">
<Button onClick={() => setColorScheme('light')}>Light</Button>
<Button onClick={() => setColorScheme('dark')}>Dark</Button>
<Button onClick={() => setColorScheme('auto')}>Auto</Button>
</Group>
);
}

View File

@ -1,22 +0,0 @@
import { style } from "@vanilla-extract/css";
import { vars } from "../theme";
import { rem } from "@mantine/core";
export const title = style({
color: vars.colors.black,
fontSize: rem(100),
fontWeight: 900,
letterSpacing: rem(-2),
selectors: {
[vars.darkSelector]: {
color: vars.colors.white,
},
},
"@media": {
[vars.smallerThan("md")]: {
fontSize: rem(50),
},
},
});

View File

@ -1,28 +0,0 @@
import { Title, Text, Anchor } from "@mantine/core";
import * as classes from "./Welcome.css";
export function Welcome() {
return (
<>
<Title className={classes.title} ta="center" mt={100}>
Welcome to{" "}
<Text
inherit
variant="gradient"
component="span"
gradient={{ from: "pink", to: "yellow" }}
>
Mantine
</Text>
</Title>
<Text color="dimmed" ta="center" size="lg" maw={580} mx="auto" mt="xl">
This starter Vite project includes a minimal setup, if you want to learn
more on Mantine + Vite integration follow{" "}
<Anchor href="https://mantine.dev/guides/vite/" size="lg">
this guide
</Anchor>
. To get started edit pages/Home.page.tsx file.
</Text>
</>
);
}

View File

@ -1,5 +1,7 @@
import { createTheme } from "@mantine/core";
import { themeToVars } from "@mantine/vanilla-extract";
export const theme = createTheme({});
export const theme = createTheme({
primaryColor: 'violet'
});
export const vars = themeToVars(theme);

6763
yarn.lock

File diff suppressed because it is too large Load Diff