mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-01-16 07:52:10 +01:00
Improves dashboard data handling and settings
Refactors the dashboard to improve data fetching, error handling, and overall user experience. - Prevents errors on refresh by validating company ID. - Improves date handling from CSV by using a `safeParseDate` function to avoid "Invalid Date" errors. - Adds a timestamp for when metrics were last updated. - Fixes a bug where the refresh was failing silently. - Improves settings page by wrapping form elements with form tags. - Adds autocomplete attributes on settings page. - Adds database files to `.gitignore`.
This commit is contained in:
@ -87,11 +87,18 @@ export async function fetchAndParseCsv(
|
||||
trim: true,
|
||||
});
|
||||
|
||||
// Helper function to safely parse dates
|
||||
function safeParseDate(dateStr?: string): Date | null {
|
||||
if (!dateStr) return null;
|
||||
const date = new Date(dateStr);
|
||||
return !isNaN(date.getTime()) ? date : null;
|
||||
}
|
||||
|
||||
// Coerce types for relevant columns
|
||||
return records.map((r) => ({
|
||||
id: r.session_id,
|
||||
startTime: new Date(r.start_time),
|
||||
endTime: r.end_time ? new Date(r.end_time) : null,
|
||||
startTime: safeParseDate(r.start_time) || new Date(), // Fallback to current date if invalid
|
||||
endTime: safeParseDate(r.end_time),
|
||||
ipAddress: r.ip_address,
|
||||
country: r.country,
|
||||
language: r.language,
|
||||
|
||||
@ -96,5 +96,6 @@ export function sessionMetrics(
|
||||
totalTokens,
|
||||
totalTokensEur,
|
||||
sentimentThreshold: threshold,
|
||||
lastUpdated: Date.now(), // Add current timestamp
|
||||
} as MetricsResult;
|
||||
}
|
||||
|
||||
@ -85,6 +85,7 @@ export interface MetricsResult {
|
||||
totalTokens?: number;
|
||||
totalTokensEur?: number;
|
||||
sentimentThreshold?: number | null;
|
||||
lastUpdated?: number; // Timestamp for when metrics were last updated
|
||||
}
|
||||
|
||||
export interface ApiResponse<T> {
|
||||
|
||||
Reference in New Issue
Block a user