🔒 Implement concurrency protection and remove marketing text

- Add analysisInProgress useRef to prevent multiple simultaneous analyses
- Protect all analysis entry points (performAnalysis, quickAnalyze, etc.)
- Update button disabled state to include concurrency check
- Remove marketing text from analysis page and AIAnalysisPanel
- Fix remaining TypeScript compilation errors in chart components
- Ensure clean UI without promotional content

Fixes sync issues caused by overlapping analysis sessions
This commit is contained in:
mindesbunister
2025-07-17 14:00:24 +02:00
parent 8372b271cb
commit 4ff35b8e04
9 changed files with 65 additions and 52 deletions

View File

@@ -20,13 +20,16 @@ export default function ChartDebug() {
const initChart = async () => {
try {
addLog('Starting chart initialization...')
// Dynamic import to avoid SSR issues
addLog('Importing lightweight-charts...')
const LightweightChartsModule = await import('lightweight-charts')
addLog('Import successful')
// Import lightweight-charts
const LightweightCharts = await import('lightweight-charts')
addLog('Lightweight charts imported successfully')
addLog('Available exports: ' + Object.keys(LightweightChartsModule).join(', '))
const { createChart } = LightweightCharts
addLog('createChart extracted')
const { createChart } = LightweightChartsModule
addLog('Extracted createChart')
// Create chart with minimal options
const chart = createChart(chartContainerRef.current!, {
@@ -36,15 +39,30 @@ export default function ChartDebug() {
addLog('Chart created successfully')
setChartCreated(true)
// Add candlestick series with the correct v5 API
const candlestickSeries = chart.addCandlestickSeries({
upColor: '#26a69a',
downColor: '#ef5350',
borderDownColor: '#ef5350',
borderUpColor: '#26a69a',
wickDownColor: '#ef5350',
wickUpColor: '#26a69a',
})
// Check what methods are available on the chart
const chartMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(chart))
addLog('Chart methods: ' + chartMethods.slice(0, 10).join(', ') + '...')
// Try to add a candlestick series using the modern API
let candlestickSeries;
if ('addCandlestickSeries' in chart) {
addLog('Using addCandlestickSeries method')
candlestickSeries = (chart as any).addCandlestickSeries({
upColor: '#26a69a',
downColor: '#ef5350',
borderDownColor: '#ef5350',
borderUpColor: '#26a69a',
wickDownColor: '#ef5350',
wickUpColor: '#26a69a',
})
} else {
addLog('Trying alternative API')
candlestickSeries = (chart as any).addAreaSeries({
lineColor: '#26a69a',
topColor: 'rgba(38, 166, 154, 0.4)',
bottomColor: 'rgba(38, 166, 154, 0.0)',
})
}
addLog('Candlestick series added')
// Very simple test data