테마 깜빡임·로딩 스플래시 및 메인 커버 저장 흐름 수정

head 인라인 스크립트로 data-theme 선적용, 로고 캐시 스플래시 추가.
메인 커버는 업로드 후 저장 버튼에서 이미지·텍스트 일괄 반영.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-18 18:44:17 +09:00
parent 3fb8a40031
commit 797a6dd5a0
13 changed files with 200 additions and 22 deletions

View File

@@ -526,13 +526,12 @@ const uploadHomeCover = async (event) => {
try {
const formData = new FormData()
formData.append('file', file)
const updatedSettings = await $fetch('/admin/api/settings/home-cover', {
const { homeCoverImageUrl } = await $fetch('/admin/api/settings/home-cover', {
method: 'POST',
body: formData
})
Object.assign(form, updatedSettings)
homeCoverSnapshot.homeCoverImageUrl = form.homeCoverImageUrl
showToast('success', '커버 이미지가 등록되었습니다.')
form.homeCoverImageUrl = homeCoverImageUrl || ''
showToast('success', '커버 이미지를 불러왔습니다. 저장 버튼을 눌러 적용하세요.')
} catch (error) {
errorMessage.value = error?.data?.message || '커버 이미지 업로드에 실패했습니다.'
showToast('error', errorMessage.value)
@@ -1125,7 +1124,7 @@ onBeforeUnmount(() => {
v-if="!editHomeCover"
class="mr-5 mt-1 text-pretty text-sm leading-relaxed text-[#657080]"
>
홈 상단에 720px 너비 커버 이미지를 표시합니다. 제목·짧은 문구는 이미지 왼쪽 하단에 겹쳐 보입니다.
홈 상단에 720px 너비 커버 이미지를 표시합니다. 제목·짧은 문구는 이미지 왼쪽 하단에 겹쳐 보이며, 이미지·텍스트는 저장 버튼으로 함께 반영합니다.
</p>
</div>
<div class="-mr-1 mt-[-5px] flex shrink-0 items-center justify-start gap-2">
@@ -1190,7 +1189,7 @@ onBeforeUnmount(() => {
커버 이미지
</h3>
<p class="mt-1 max-w-md text-sm leading-relaxed text-[#657080]">
가로 720px 기준으로 저장됩니다. JPG·PNG·WebP를 사용할 수 있습니다.
가로 720px WebP로 변환해 미리 불러옵니다. 제목·본문과 함께 저장 버튼을 눌러야 사이트에 반영됩니다.
</p>
<div
v-if="form.homeCoverImageUrl"

View File

@@ -282,7 +282,7 @@ const scrollFeatured = (direction) => {
<template>
<MainColumn>
<section v-if="siteSettings?.homeCoverImageUrl" class="home-page__hero px-6 pb-2 pt-6 md:pt-8">
<section v-if="siteSettings?.homeCoverImageUrl" class="home-page__hero">
<HomeHero
:image-url="siteSettings.homeCoverImageUrl"
:title="siteSettings.homeCoverTitle"