Syed Arfan
Add React frontend for Sentiment Analysis API
2857363
raw
history blame
1.75 kB
// Format confidence as percentage
export const formatConfidence = (confidence: number): string => {
return `${(confidence * 100).toFixed(1)}%`;
};
// Format processing time
export const formatProcessingTime = (ms: number): string => {
if (ms < 1000) {
return `${ms}ms`;
}
return `${(ms / 1000).toFixed(2)}s`;
};
// Format relative time (e.g., "2 mins ago")
export const formatRelativeTime = (dateString: string): string => {
const date = new Date(dateString);
const now = new Date();
const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);
if (diffInSeconds < 60) {
return 'just now';
}
const diffInMinutes = Math.floor(diffInSeconds / 60);
if (diffInMinutes < 60) {
return `${diffInMinutes} min${diffInMinutes > 1 ? 's' : ''} ago`;
}
const diffInHours = Math.floor(diffInMinutes / 60);
if (diffInHours < 24) {
return `${diffInHours} hour${diffInHours > 1 ? 's' : ''} ago`;
}
const diffInDays = Math.floor(diffInHours / 24);
if (diffInDays < 7) {
return `${diffInDays} day${diffInDays > 1 ? 's' : ''} ago`;
}
return date.toLocaleDateString();
};
// Truncate text with ellipsis
export const truncateText = (text: string, maxLength: number): string => {
if (text.length <= maxLength) {
return text;
}
return `${text.substring(0, maxLength)}...`;
};
// Format memory size
export const formatMemory = (mb: number): string => {
if (mb < 1) {
return `${(mb * 1024).toFixed(0)} KB`;
}
return `${mb.toFixed(2)} MB`;
};
// Get confidence level label
export const getConfidenceLevel = (confidence: number): string => {
if (confidence >= 0.9) return 'High confidence';
if (confidence >= 0.7) return 'Medium confidence';
return 'Low confidence';
};