검증게시판 기능 추가
This commit is contained in:
@@ -67,6 +67,7 @@ import BacktestPanel from './components/BacktestPanel';
|
||||
import { useBacktest } from './hooks/useBacktest';
|
||||
import LiveStrategyPanel from './components/LiveStrategyPanel';
|
||||
import { TradeNotificationProvider } from './contexts/TradeNotificationContext';
|
||||
import { VerificationIssueNotificationProvider } from './contexts/VerificationIssueNotificationContext';
|
||||
import { LiveSignalNotifier, type LiveSignalNotifierHandle } from './components/LiveSignalNotifier';
|
||||
import { NotifyTopMenuBar, ChartToolbarNotify } from './components/NotifyUiBindings';
|
||||
import { AppNotificationLayer } from './components/AppNotificationLayer';
|
||||
@@ -78,6 +79,7 @@ import SettingsPage from './components/SettingsPage';
|
||||
import PaperTradingPage from './components/PaperTradingPage';
|
||||
import VirtualTradingPage from './components/VirtualTradingPage';
|
||||
import TrendSearchPage from './components/TrendSearchPage';
|
||||
import VerificationBoardPage from './components/VerificationBoardPage';
|
||||
import DashboardPage from './components/DashboardPage';
|
||||
import { loadPaperSummary, resetPaperAccount, loadActiveLiveStrategySettings, expandLiveStrategySubscriptions } from './utils/backendApi';
|
||||
import ChartLegendBar from './components/ChartLegendBar';
|
||||
@@ -203,6 +205,7 @@ function App() {
|
||||
const [mobileRightOpen, setMobileRightOpen] = useState(false);
|
||||
const [mobileRightTab, setMobileRightTab] = useState<'trade' | 'orderbook'>('trade');
|
||||
const [menuPage, setMenuPage] = useState<MenuPage>('chart');
|
||||
const [verificationFocusIssueId, setVerificationFocusIssueId] = useState<number | null>(null);
|
||||
const chartVisible = menuPage === 'chart';
|
||||
const isMobile = useIsMobile();
|
||||
|
||||
@@ -1598,6 +1601,10 @@ function App() {
|
||||
soundEnabled={appDefaults.tradeAlertSoundEnabled ?? true}
|
||||
soundId={appDefaults.tradeAlertSound ?? 'bell'}
|
||||
>
|
||||
<VerificationIssueNotificationProvider
|
||||
enabled={canMenu('verification-board')}
|
||||
notifyEnabled={appDefaults.verificationIssueNotify}
|
||||
>
|
||||
<div className={`app ${theme} mode-${mode}${isMobile ? ' app--mobile' : ''}`}>
|
||||
<LiveSignalNotifier
|
||||
ref={liveNotifierRef}
|
||||
@@ -1700,6 +1707,14 @@ function App() {
|
||||
/>
|
||||
)}
|
||||
|
||||
{menuPage === 'verification-board' && (
|
||||
<VerificationBoardPage
|
||||
theme={theme}
|
||||
focusIssueId={verificationFocusIssueId}
|
||||
onFocusIssueConsumed={() => setVerificationFocusIssueId(null)}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* ── 설정 화면 ──────────────────────────────────────────────────── */}
|
||||
{menuPage === 'notifications' && (
|
||||
<TradeNotificationListPage
|
||||
@@ -1818,6 +1833,8 @@ function App() {
|
||||
onFcmPushEnabled={v => saveAppDef({ fcmPushEnabled: v })}
|
||||
displayTimezone={displayTimezone}
|
||||
onDisplayTimezoneChange={handleTimezoneChange}
|
||||
verificationIssueNotify={appDefaults.verificationIssueNotify}
|
||||
onVerificationIssueNotify={v => saveAppDef({ verificationIssueNotify: v })}
|
||||
onFcmTest={async () => {
|
||||
const { sendFcmTest } = await import('./utils/backendApi');
|
||||
const r = await sendFcmTest();
|
||||
@@ -2563,6 +2580,10 @@ function App() {
|
||||
menuPage={menuPage}
|
||||
onPage={guardedSetMenuPage}
|
||||
onGoToChart={goToMarketChart}
|
||||
onGoToVerificationIssue={issueId => {
|
||||
setVerificationFocusIssueId(issueId);
|
||||
guardedSetMenuPage('verification-board');
|
||||
}}
|
||||
tradingMode={appDefaults.tradingMode}
|
||||
hasUpbitKeys={appDefaults.hasUpbitKeys}
|
||||
paperTradingEnabled={paperTradingEnabled}
|
||||
@@ -2578,6 +2599,7 @@ function App() {
|
||||
/>
|
||||
|
||||
</div>
|
||||
</VerificationIssueNotificationProvider>
|
||||
</TradeNotificationProvider>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user