diff --git a/src/components/player/TIDBSubmissionForm.tsx b/src/components/player/TIDBSubmissionForm.tsx index 456b2586..e827f620 100644 --- a/src/components/player/TIDBSubmissionForm.tsx +++ b/src/components/player/TIDBSubmissionForm.tsx @@ -1,4 +1,6 @@ +import classNames from "classnames"; import { useEffect, useRef, useState } from "react"; +import { Helmet } from "react-helmet-async"; import { useTranslation } from "react-i18next"; import { Button } from "@/components/buttons/Button"; @@ -11,6 +13,9 @@ import { usePlayerStore } from "@/stores/player/store"; import { usePreferencesStore } from "@/stores/preferences"; import { submitIntro } from "@/utils/tidb"; +import { IconPatch } from "../buttons/IconPatch"; +import { Flare } from "../utils/Flare"; + type SegmentType = "intro" | "recap" | "credits" | "preview"; // Helper function to parse time format (hh:mm:ss, mm:ss, or seconds) @@ -200,195 +205,245 @@ export function TIDBSubmissionForm({ return ( -
-
-
- - - {t("player.skipTime.feedback.modal.title")} - -
- - {t("player.skipTime.feedback.modal.description")} - - -
- {/* Section: Segment type and timestamps (example-style card) */} -
-

- {t("player.skipTime.feedback.modal.segmentType")} - * -

- -
- {(["intro", "recap", "credits", "preview"] as const).map( - (seg) => ( - - ), - )} -
- -

- {t("player.skipTime.feedback.modal.whenToDesc")} -

- -
-
-
- - - setFormData({ ...formData, start: value }) - } - placeholder={t( - `player.skipTime.feedback.modal.placeholders.start.${formData.segment}`, - )} - /> -
-
- - - setFormData({ ...formData, end: value }) - } - placeholder={t( - `player.skipTime.feedback.modal.placeholders.end.${formData.segment}`, - )} - /> -
-
- - {/* Timing guidance (segment-specific) */} -
-

- {t( - `player.skipTime.feedback.modal.guide.${formData.segment}.whenToTitle`, - { - defaultValue: t( - "player.skipTime.feedback.modal.whenToTitle", - ), - }, - )} -

-
-
- - {t("player.skipTime.feedback.modal.guide.startLabel")} - - {t( - `player.skipTime.feedback.modal.guide.${formData.segment}.startDesc`, - { - defaultValue: t( - "player.skipTime.feedback.modal.guide.startDesc", - ), - }, - )} -
-
- - {t("player.skipTime.feedback.modal.guide.endLabel")} - - {t( - `player.skipTime.feedback.modal.guide.${formData.segment}.endDesc`, - { - defaultValue: t( - "player.skipTime.feedback.modal.guide.endDesc", - ), - }, - )} -
-
- - {t( - "player.skipTime.feedback.modal.guide.durationLabel", - )} - - {t( - `player.skipTime.feedback.modal.guide.${formData.segment}.durationDesc`, - { - defaultValue: t( - "player.skipTime.feedback.modal.guide.durationDesc", - ), - }, - )} -
-
- - {t("player.skipTime.feedback.modal.guide.excludeLabel")} - - {t( - `player.skipTime.feedback.modal.guide.${formData.segment}.excludeDesc`, - { - defaultValue: t( - "player.skipTime.feedback.modal.guide.excludeDesc", - ), - }, - )} -
-
-
- -
- - -
-
+ + + +
+ +
+ +
+
+ +
+
+ + + {t("player.skipTime.feedback.modal.title")} + +
+ + {t("player.skipTime.feedback.modal.description")} + + +
+ {/* Section: Segment type and timestamps (example-style card) */} +
+

+ {t("player.skipTime.feedback.modal.segmentType")} + * +

+ +
+ {(["intro", "recap", "credits", "preview"] as const).map( + (seg) => ( + + ), + )} +
+ +

+ {t("player.skipTime.feedback.modal.whenToDesc")} +

+ +
+
+
+ + + setFormData({ ...formData, start: value }) + } + placeholder={t( + `player.skipTime.feedback.modal.placeholders.start.${formData.segment}`, + )} + /> +
+
+ + + setFormData({ ...formData, end: value }) + } + placeholder={t( + `player.skipTime.feedback.modal.placeholders.end.${formData.segment}`, + )} + /> +
+
+ + {/* Timing guidance (segment-specific) */} +
+

+ {t( + `player.skipTime.feedback.modal.guide.${formData.segment}.whenToTitle`, + { + defaultValue: t( + "player.skipTime.feedback.modal.whenToTitle", + ), + }, + )} +

+
+
+ + {t( + "player.skipTime.feedback.modal.guide.startLabel", + )} + + {t( + `player.skipTime.feedback.modal.guide.${formData.segment}.startDesc`, + { + defaultValue: t( + "player.skipTime.feedback.modal.guide.startDesc", + ), + }, + )} +
+
+ + {t( + "player.skipTime.feedback.modal.guide.endLabel", + )} + + {t( + `player.skipTime.feedback.modal.guide.${formData.segment}.endDesc`, + { + defaultValue: t( + "player.skipTime.feedback.modal.guide.endDesc", + ), + }, + )} +
+
+ + {t( + "player.skipTime.feedback.modal.guide.durationLabel", + )} + + {t( + `player.skipTime.feedback.modal.guide.${formData.segment}.durationDesc`, + { + defaultValue: t( + "player.skipTime.feedback.modal.guide.durationDesc", + ), + }, + )} +
+
+ + {t( + "player.skipTime.feedback.modal.guide.excludeLabel", + )} + + {t( + `player.skipTime.feedback.modal.guide.${formData.segment}.excludeDesc`, + { + defaultValue: t( + "player.skipTime.feedback.modal.guide.excludeDesc", + ), + }, + )} +
+
+
+ +
+ + +
+
+
+
+
+
-
+
);