AcaMate_Web/Program/Layout/MainLayout.razor
SEAN-59 7284dca6f2 Record
정리전 로컬 데이터 푸시
2025-10-28 20:47:58 +09:00

75 lines
2.5 KiB
Plaintext

@inherits LayoutComponentBase
@implements IDisposable
<div class="min-h-screen flex flex-col text-gray-900">
<!-- Top 영역 -->
@* <TopBanner /> *@
@if(isAcademy)
{
<div class="flex flex-1 flex-col md:flex-row ">
@if (!isIntro && UserStateService.isLogin)
{
@* <div class="fixed flex flex-1 flex-col min-w-0"> *@
<div class="hidden md:block w-64 bg-normal-light shadow-lg fixed top-0 bottom-0 overflow-y-auto">
<SympleProfile/>
<LeftSideAcademy/>
</div>
@* </div> *@
<div class="flex flex-1 flex-col bg-white md:ml-64 min-w-0 min-h-screen">
<!-- TopNav 고정 -->
<div class="h-18 top-0 right-0 md:left-64 left-0 z-20 fixed bg-normal-light">
<TopNavAcademy/>
</div>
<!-- 빨간 그림자 컨테이너 - TopNav 바로 아래 고정 -->
<div class="fixed bottom-0 right-0 md:left-64 left-0 z-10 bg-red
rounded-tl-2xl rounded-tr-2xl
shadow-[inset_4px_4px_4px_0px_rgba(0,0,0,0.25)] md:p-10 px-4 py-6"
style="top: 4.5rem;">
<!-- Body 컨텐츠 - 스크롤 영역 -->
<div class="h-full overflow-y-auto">
@Body
</div>
</div>
</div>
}
else
{
<main class="flex-1 w-full max-w-[960px] mx-auto overflow-y-auto">
@Body
</main>
}
</div>
}
else
{
@if (!isHidePrjTop)
{
<TopProjectNav />
}
<!-- 본문 컨텐츠 -->
<main class="flex-1 w-full max-w-[960px] mx-auto overflow-y-auto">
@Body
</main>
}
@* <!-- 플로팅 버튼 --> *@
@* <FloatingButton /> *@
@* *@
@* <!-- 하단 메뉴 --> *@
@* <BottomNav /> *@
@* <Footer /> *@
@if (LoadingService.IsLoading)
{
<div class="fixed inset-0 bg-black/30 flex items-center justify-center z-50">
<div class="bg-gray-200/60 px-6 py-4 rounded-lg">
<div class="animate-spin h-8 w-8 border-4 border-gray-600 border-t-transparent rounded-full"></div>
</div>
</div>
}
</div>