feat: add game server infrastructure and documentary improvements
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
- Add Docker Compose for OpenFusion (FusionFall), MapleStory 2, and Minecraft FTB Infinity Evolved game servers - Add MapleStory 2 multi-service compose (MySQL, World, Login, Web, Game) - Add OpenFusion Dockerfile and configuration files - Fix CMS Dockerfile, web Dockerfile, and documentary components - Add root layout, globals.css, not-found page, and text formatting utils - Update .gitignore to exclude large game server repos and data Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,7 @@ export function DocumentaryLayout({ documentary }: DocumentaryLayoutProps) {
|
||||
const chapter = chapters.find((c) => c.id === chapterId);
|
||||
if (chapter) {
|
||||
setActiveChapter(chapter);
|
||||
window.scrollTo({ top: 0, behavior: "smooth" });
|
||||
const trackIndex = audio.tracks.findIndex((t) => t.id === chapterId);
|
||||
if (trackIndex !== -1) {
|
||||
audio.goToTrack(trackIndex);
|
||||
@@ -47,13 +48,28 @@ export function DocumentaryLayout({ documentary }: DocumentaryLayoutProps) {
|
||||
return (
|
||||
<>
|
||||
<ReadingProgress />
|
||||
<div className="max-w-7xl mx-auto px-4 py-12 flex gap-8">
|
||||
|
||||
{/* Documentary header */}
|
||||
<header className="border-b border-white/[0.06]">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pt-10 pb-8">
|
||||
<h1 className="text-3xl sm:text-4xl font-display font-bold tracking-tight">
|
||||
{documentary.title}
|
||||
</h1>
|
||||
{documentary.description && (
|
||||
<p className="mt-3 text-gray-400 font-body text-lg max-w-3xl leading-relaxed">
|
||||
{documentary.description}
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12 flex gap-12">
|
||||
<ChapterNav
|
||||
chapters={chapters}
|
||||
activeChapterId={activeChapter.id}
|
||||
onSelectChapter={handleSelectChapter}
|
||||
/>
|
||||
<div className="flex-1 pb-24">
|
||||
<div className="flex-1 min-w-0 pb-24">
|
||||
<ChapterContent chapter={activeChapter} />
|
||||
</div>
|
||||
</div>
|
||||
@@ -67,7 +83,9 @@ export function DocumentaryLayout({ documentary }: DocumentaryLayoutProps) {
|
||||
onToggle={audio.toggle}
|
||||
onSeek={audio.seek}
|
||||
onChangeRate={audio.changeRate}
|
||||
onToggleContinuous={() => audio.setContinuousMode(!audio.continuousMode)}
|
||||
onToggleContinuous={() =>
|
||||
audio.setContinuousMode(!audio.continuousMode)
|
||||
}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user