Compare commits

..

2 commits

Author SHA1 Message Date
radishsoups
99b95749a9
Merge d331d8ed46 into 8dfd1d0b12 2026-04-29 23:35:03 -07:00
8dfd1d0b12 fix: unable to submit 3ds miis 2026-04-29 16:29:02 +01:00
6 changed files with 806 additions and 70 deletions

View file

@ -38,7 +38,7 @@ const submitSchema = z.object({
.trim() .trim()
.transform((val) => (val === "" ? null : val)) .transform((val) => (val === "" ? null : val))
.refine((val) => val === null || /^[a-zA-Z0-9_-]{11}$/.test(val), "Invalid YouTube video ID") .refine((val) => val === null || /^[a-zA-Z0-9_-]{11}$/.test(val), "Invalid YouTube video ID")
.optional(), .nullish(),
way: z.enum(["savedata", "manual"]).optional(), way: z.enum(["savedata", "manual"]).optional(),
@ -102,8 +102,8 @@ export async function POST(request: NextRequest) {
gender: formData.get("gender") ?? undefined, // ZOD MOMENT gender: formData.get("gender") ?? undefined, // ZOD MOMENT
makeup: formData.get("makeup") ?? undefined, makeup: formData.get("makeup") ?? undefined,
miiPortraitImage: formData.get("miiPortraitImage"), miiPortraitImage: formData.get("miiPortraitImage"),
youtubeId: formData.get("youtubeId"), youtubeId: formData.get("youtubeId") ?? undefined,
way: formData.get("way"), way: formData.get("way") ?? undefined,
miiDataFile: formData.get("miiDataFile") ?? undefined, miiDataFile: formData.get("miiDataFile") ?? undefined,

View file

@ -31,6 +31,7 @@
"react-image-crop": "^11.0.10", "react-image-crop": "^11.0.10",
"react-router": "^7.14.1", "react-router": "^7.14.1",
"tailwindcss": "^4.2.2", "tailwindcss": "^4.2.2",
"vite-plugin-node-polyfills": "^0.26.0",
"zod": "^4.3.6" "zod": "^4.3.6"
}, },
"devDependencies": { "devDependencies": {

View file

@ -23,7 +23,7 @@ import SwitchFileUpload from "../components/submit-form/switch-file-upload";
import SwitchSubmitTutorialButton from "../components/tutorial/switch-submit"; import SwitchSubmitTutorialButton from "../components/tutorial/switch-submit";
import QrUpload from "../components/submit-form/qr-upload"; import QrUpload from "../components/submit-form/qr-upload";
import Camera from "../components/submit-form/camera"; import Camera from "../components/submit-form/camera";
import ThreeDsScanTutorialButton from "../components/tutorial/3ds-scan"; import ThreeDsSubmitTutorialButton from "../components/tutorial/3ds-submit";
import Dropzone from "../components/dropzone"; import Dropzone from "../components/dropzone";
import ImageList from "../components/submit-form/image-list"; import ImageList from "../components/submit-form/image-list";
import SubmitButton from "../components/submit-button"; import SubmitButton from "../components/submit-button";
@ -472,7 +472,7 @@ export default function SubmitPage() {
Use your camera Use your camera
</button> </button>
<Camera isOpen={isQrScannerOpen} setIsOpen={setIsQrScannerOpen} setQrBytesRaw={setQrBytesRaw} /> <Camera isOpen={isQrScannerOpen} setIsOpen={setIsQrScannerOpen} setQrBytesRaw={setQrBytesRaw} />
<ThreeDsScanTutorialButton /> <ThreeDsSubmitTutorialButton />
<span className="text-xs text-zinc-400">For emulators, aes_keys.txt is required.</span> <span className="text-xs text-zinc-400">For emulators, aes_keys.txt is required.</span>
</div> </div>
</div> </div>

View file

@ -1,8 +1,20 @@
import { defineConfig } from "vite"; import { defineConfig } from "vite";
import react from "@vitejs/plugin-react"; import react from "@vitejs/plugin-react";
import tailwindcss from "@tailwindcss/vite"; import tailwindcss from "@tailwindcss/vite";
import { nodePolyfills } from "vite-plugin-node-polyfills";
// https://vite.dev/config/ // https://vite.dev/config/
export default defineConfig({ export default defineConfig(({ command }) => ({
plugins: [react(), tailwindcss()], plugins: [react(), tailwindcss(), nodePolyfills()],
}); resolve: {
alias:
command === "build"
? [
{
find: "vite-plugin-node-polyfills/shims/buffer",
replacement: require.resolve("vite-plugin-node-polyfills/shims/buffer"),
},
]
: [],
},
}));

File diff suppressed because it is too large Load diff