Fix chart loading issues and remove sample position data

- Fixed TradingChart data generation to use unique daily timestamps
- Removed sample position data from trading page
- Added better error handling and logging to chart initialization
- Fixed time format issues that were preventing chart rendering
- Added test pages for debugging chart functionality
This commit is contained in:
mindesbunister
2025-07-16 12:54:48 +02:00
parent 1ee8aa9fe7
commit 4fe9c1342c
8 changed files with 459 additions and 22 deletions

View File

@@ -33,7 +33,7 @@ export default function TradingChart({ symbol = 'SOL/USDC', positions = [] }: Tr
try {
// Dynamic import to avoid SSR issues
const LightweightCharts = await import('lightweight-charts')
const { createChart, ColorType, CrosshairMode, LineStyle } = LightweightCharts
const { createChart, ColorType, CrosshairMode, LineStyle, CandlestickSeries } = LightweightCharts
chart.current = createChart(chartContainerRef.current!, {
layout: {
@@ -58,7 +58,7 @@ export default function TradingChart({ symbol = 'SOL/USDC', positions = [] }: Tr
})
// Create candlestick series
candlestickSeries.current = chart.current.addCandlestickSeries({
candlestickSeries.current = chart.current.addSeries(CandlestickSeries, {
upColor: '#26a69a',
downColor: '#ef5350',
borderDownColor: '#ef5350',
@@ -68,12 +68,21 @@ export default function TradingChart({ symbol = 'SOL/USDC', positions = [] }: Tr
})
// Generate sample data
console.log('Generating sample data...')
const data = generateSampleData()
console.log('Sample data generated:', data.length, 'points')
console.log('First few data points:', data.slice(0, 3))
console.log('Setting chart data...')
candlestickSeries.current.setData(data)
console.log('Chart data set successfully')
// Add position overlays
console.log('Adding position overlays...')
addPositionOverlays(LineStyle)
console.log('Position overlays added')
console.log('Chart initialization complete')
setIsLoading(false)
// Handle resize
@@ -95,6 +104,10 @@ export default function TradingChart({ symbol = 'SOL/USDC', positions = [] }: Tr
}
} catch (error) {
console.error('Failed to initialize chart:', error)
console.error('Error details:', {
message: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined
})
setIsLoading(false)
}
}
@@ -155,10 +168,12 @@ export default function TradingChart({ symbol = 'SOL/USDC', positions = [] }: Tr
const data = []
const basePrice = 166.5
let currentPrice = basePrice
const now = new Date()
const baseDate = new Date()
for (let i = 100; i >= 0; i--) {
const time = Math.floor((now.getTime() - i * 60000) / 1000) // 1 minute intervals
for (let i = 0; i < 100; i++) {
// Generate data for the last 100 days, one point per day
const currentTime = new Date(baseDate.getTime() - (99 - i) * 24 * 60 * 60 * 1000)
const timeString = currentTime.toISOString().split('T')[0] // YYYY-MM-DD format
const volatility = 0.02
const change = (Math.random() - 0.5) * volatility * currentPrice
@@ -168,7 +183,7 @@ export default function TradingChart({ symbol = 'SOL/USDC', positions = [] }: Tr
const low = Math.min(open, close) - Math.random() * 0.01 * currentPrice
data.push({
time,
time: timeString,
open: Number(open.toFixed(2)),
high: Number(high.toFixed(2)),
low: Number(low.toFixed(2)),