feat: implement header component with Enka, FreeSR, and extra setting management modals
Gitea Auto Deploy / Deploy-Container (push) Successful in 38s

This commit is contained in:
2026-08-28 00:17:21 +07:00
parent aac408c491
commit 0f75a8ba7b
4 changed files with 135 additions and 139 deletions
+1 -1
View File
@@ -79,7 +79,7 @@ export default function ExtraSettingBar() {
const currentLineup = extraData?.theory_craft?.custom_lineup || [] const currentLineup = extraData?.theory_craft?.custom_lineup || []
return ( return (
<div className="max-w-4xl mx-auto space-y-4 pb-2"> <div className="w-full space-y-4 pb-2">
{/* THEORY CRAFT */} {/* THEORY CRAFT */}
{extraData?.theory_craft && ( {extraData?.theory_craft && (
<section className="relative z-30 rounded-2xl bg-base-200/40 border border-white/10 shadow-xs backdrop-blur-sm transition-all duration-200"> <section className="relative z-30 rounded-2xl bg-base-200/40 border border-white/10 shadow-xs backdrop-blur-sm transition-all duration-200">
+6 -6
View File
@@ -637,13 +637,13 @@ export default function Header() {
{modalConfigs?.map(({ id, title, onClose, content }) => ( {modalConfigs?.map(({ id, title, onClose, content }) => (
<dialog key={id} id={id} className="modal"> <dialog key={id} id={id} className="modal">
<div className={`modal-box w-11/12 ${ <div className={`modal-box w-11/12 ${
id === 'monster_modal' id === 'monster_modal' || id === 'import_modal' || id === 'extra_modal'
? 'max-w-[92vw] sm:max-w-[88vw] h-[85vh]' ? 'max-w-[95vw] sm:max-w-[90vw] lg:max-w-[85vw] 2xl:max-w-[1500px] h-[88vh]'
: id === 'extra_modal'
? 'max-w-3xl lg:max-w-4xl max-h-[88vh]'
: id === 'connect_modal' : id === 'connect_modal'
? 'max-w-lg max-h-[85vh]' ? 'max-w-[95vw] sm:max-w-2xl md:max-w-3xl lg:max-w-4xl max-h-[88vh]'
: 'max-w-2xl max-h-[90vh]' : id === 'changelog_modal'
? 'max-w-[95vw] sm:max-w-2xl md:max-w-3xl lg:max-w-4xl h-[85vh]'
: 'max-w-[92vw] sm:max-w-[88vw] max-h-[90vh]'
} max-h-[90vh] flex flex-col bg-base-100 text-base-content border border-base-content/10 shadow-2xl rounded-2xl p-0 overflow-hidden`}> } max-h-[90vh] flex flex-col bg-base-100 text-base-content border border-base-content/10 shadow-2xl rounded-2xl p-0 overflow-hidden`}>
{/* Modal Header */} {/* Modal Header */}
<div className="sticky top-0 z-20 flex items-center justify-between px-6 py-4 border-b border-base-content/10 bg-base-100 shrink-0"> <div className="sticky top-0 z-20 flex items-center justify-between px-6 py-4 border-b border-base-content/10 bg-base-100 shrink-0">
+2 -4
View File
@@ -167,8 +167,7 @@ export default function EnkaImport() {
}; };
return ( return (
<div className="bg-base-100 p-4 sm:p-6 rounded-2xl"> <div className="w-full space-y-6">
<div className="max-w-7xl mx-auto space-y-6">
{/* Header */} {/* Header */}
<div className="space-y-4"> <div className="space-y-4">
<h1 className="text-base-content text-xl sm:text-2xl font-bold">HSR UID</h1> <h1 className="text-base-content text-xl sm:text-2xl font-bold">HSR UID</h1>
@@ -235,7 +234,7 @@ export default function EnkaImport() {
</div> </div>
)} )}
{/* Character Grid */} {/* Character Grid */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6"> <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-4 sm:gap-6">
{validCharacters.map((character) => ( {validCharacters.map((character) => (
<CharacterInfoCard <CharacterInfoCard
key={character.avatarId} key={character.avatarId}
@@ -246,6 +245,5 @@ export default function EnkaImport() {
))} ))}
</div> </div>
</div> </div>
</div>
); );
} }
+2 -4
View File
@@ -189,8 +189,7 @@ export default function FreeSRImport() {
} }
return ( return (
<div className="bg-base-100 p-4 sm:p-6 rounded-2xl"> <div className="w-full space-y-6">
<div className="max-w-7xl mx-auto space-y-6">
{/* Header */} {/* Header */}
<div className="space-y-4"> <div className="space-y-4">
<h1 className="text-base-content text-xl sm:text-2xl font-bold">{transI18n("freeSRImport")}</h1> <h1 className="text-base-content text-xl sm:text-2xl font-bold">{transI18n("freeSRImport")}</h1>
@@ -244,7 +243,7 @@ export default function FreeSRImport() {
</div> </div>
)} )}
{/* Character Grid */} {/* Character Grid */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6"> <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-4 sm:gap-6">
{validFreeSRData && Object.values(validFreeSRData.avatars).filter(it => mapAvatar?.[it.avatar_id]).map((character) => { {validFreeSRData && Object.values(validFreeSRData.avatars).filter(it => mapAvatar?.[it.avatar_id]).map((character) => {
return ( return (
<CharacterInfoCard <CharacterInfoCard
@@ -257,6 +256,5 @@ export default function FreeSRImport() {
})} })}
</div> </div>
</div> </div>
</div>
) )
} }