mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-01-16 21:32:08 +01:00
fix: implement comprehensive UI/UX and code organization improvements
CSRF Form Enhancements: - Add optional onError callback prop for better error handling - Remove CSRF token from console logging for security - Provide user-friendly error notifications instead of silent failures Date Filter Optimization: - Refactor sessions route to avoid object mutation issues - Build date filters cleanly without relying on spreading existing objects - Prevent potential undefined startTime mutations Geographic Threat Map Optimization: - Extract country names to reusable constants in lib/constants/countries.ts - Calculate max values once to avoid repeated expensive operations - Centralize threat level color mapping to eliminate duplicated logic - Replace repeated color assignments with centralized THREAT_LEVELS configuration Accessibility Improvements: - Add keyboard support to audit log table rows (Enter/Space keys) - Include proper ARIA labels and focus management - Add tabIndex for screen reader compatibility - Enhance focus indicators with ring styling Performance & Code Organization: - Move COUNTRY_NAMES to shared constants for reusability - Optimize calculation patterns in threat mapping components - Reduce redundant logic and improve maintainability
This commit is contained in:
84
lib/constants/countries.ts
Normal file
84
lib/constants/countries.ts
Normal file
@ -0,0 +1,84 @@
|
||||
/**
|
||||
* Country Constants
|
||||
*
|
||||
* Country code to name mapping for common countries
|
||||
* Used throughout the application for geographic data display
|
||||
*/
|
||||
|
||||
export const COUNTRY_NAMES: Record<string, string> = {
|
||||
USA: "United States",
|
||||
GBR: "United Kingdom",
|
||||
DEU: "Germany",
|
||||
FRA: "France",
|
||||
JPN: "Japan",
|
||||
CHN: "China",
|
||||
IND: "India",
|
||||
BRA: "Brazil",
|
||||
CAN: "Canada",
|
||||
AUS: "Australia",
|
||||
RUS: "Russia",
|
||||
ESP: "Spain",
|
||||
ITA: "Italy",
|
||||
NLD: "Netherlands",
|
||||
KOR: "South Korea",
|
||||
MEX: "Mexico",
|
||||
CHE: "Switzerland",
|
||||
SWE: "Sweden",
|
||||
NOR: "Norway",
|
||||
DNK: "Denmark",
|
||||
FIN: "Finland",
|
||||
POL: "Poland",
|
||||
BEL: "Belgium",
|
||||
AUT: "Austria",
|
||||
NZL: "New Zealand",
|
||||
SGP: "Singapore",
|
||||
THA: "Thailand",
|
||||
IDN: "Indonesia",
|
||||
MYS: "Malaysia",
|
||||
PHL: "Philippines",
|
||||
VNM: "Vietnam",
|
||||
ARE: "UAE",
|
||||
SAU: "Saudi Arabia",
|
||||
ISR: "Israel",
|
||||
ZAF: "South Africa",
|
||||
EGY: "Egypt",
|
||||
TUR: "Turkey",
|
||||
GRC: "Greece",
|
||||
PRT: "Portugal",
|
||||
CZE: "Czech Republic",
|
||||
HUN: "Hungary",
|
||||
ROU: "Romania",
|
||||
BGR: "Bulgaria",
|
||||
HRV: "Croatia",
|
||||
SVN: "Slovenia",
|
||||
SVK: "Slovakia",
|
||||
EST: "Estonia",
|
||||
LVA: "Latvia",
|
||||
LTU: "Lithuania",
|
||||
LUX: "Luxembourg",
|
||||
MLT: "Malta",
|
||||
CYP: "Cyprus",
|
||||
ISL: "Iceland",
|
||||
IRL: "Ireland",
|
||||
ARG: "Argentina",
|
||||
CHL: "Chile",
|
||||
COL: "Colombia",
|
||||
PER: "Peru",
|
||||
URY: "Uruguay",
|
||||
ECU: "Ecuador",
|
||||
BOL: "Bolivia",
|
||||
PRY: "Paraguay",
|
||||
VEN: "Venezuela",
|
||||
UKR: "Ukraine",
|
||||
BLR: "Belarus",
|
||||
MDA: "Moldova",
|
||||
GEO: "Georgia",
|
||||
ARM: "Armenia",
|
||||
AZE: "Azerbaijan",
|
||||
KAZ: "Kazakhstan",
|
||||
UZB: "Uzbekistan",
|
||||
KGZ: "Kyrgyzstan",
|
||||
TJK: "Tajikistan",
|
||||
TKM: "Turkmenistan",
|
||||
MNG: "Mongolia",
|
||||
};
|
||||
Reference in New Issue
Block a user