From aace2282d5f5ba2433f34aa54435899eece0153b Mon Sep 17 00:00:00 2001 From: Macbook Date: Thu, 28 May 2026 01:32:06 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EB=94=A9=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.css | 10 ++++++++++ frontend/src/components/TradingChart.tsx | 15 ++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/frontend/src/App.css b/frontend/src/App.css index 29c9aca..794658e 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -937,6 +937,16 @@ html.theme-blue { border-radius: 50%; animation: spin 0.8s linear infinite; } +.chart-indicator-reload-cover { + z-index: 900; + pointer-events: none; + background: var(--bg, #131722); +} +.chart-indicator-reload-cover .loading-spinner { + width: 52px; + height: 52px; + border-width: 4px; +} @keyframes spin { to { transform: rotate(360deg); } } /* ══════════════════════════════════════════════════════════════════ diff --git a/frontend/src/components/TradingChart.tsx b/frontend/src/components/TradingChart.tsx index f7329eb..cf769bf 100644 --- a/frontend/src/components/TradingChart.tsx +++ b/frontend/src/components/TradingChart.tsx @@ -9,14 +9,15 @@ import { DISPLAY_COUNT } from '../hooks/useUpbitData'; const MIN_BARS_FOR_FULL_RELOAD = Math.min(50, Math.floor(DISPLAY_COUNT / 4)); function createIndicatorReloadCover(containerEl: HTMLDivElement | null): HTMLDivElement | null { - if (!containerEl) return null; + if (!containerEl?.parentElement) return null; const cover = document.createElement('div'); - cover.style.cssText = [ - 'position:absolute', 'inset:0', 'z-index:900', - 'pointer-events:none', 'opacity:1', - 'background:var(--bg,#131722)', - ].join(';'); - containerEl.parentElement?.appendChild(cover); + cover.className = 'chart-loading chart-indicator-reload-cover'; + const spinner = document.createElement('div'); + spinner.className = 'loading-spinner'; + spinner.setAttribute('role', 'status'); + spinner.setAttribute('aria-label', '지표 로딩 중'); + cover.appendChild(spinner); + containerEl.parentElement.appendChild(cover); return cover; }