purewhiter--mobilegym
108 行
2.6 KiB
TypeScript
108 行
2.6 KiB
TypeScript
import { strings } from '../res/strings';
|
|
|
|
export type AqiLevel = 'excellent' | 'good' | 'light' | 'moderate' | 'heavy' | 'severe';
|
|
|
|
export function normalizeAqiLevel(category: string, level?: string): AqiLevel | null {
|
|
const raw = category.trim().toLowerCase();
|
|
|
|
if (raw.includes('\u4e25\u91cd') || raw.includes('severe')) return 'severe';
|
|
if (raw.includes('\u91cd\u5ea6') || raw.includes('heavy')) return 'heavy';
|
|
if (raw.includes('\u4e2d\u5ea6') || raw.includes('moderate')) return 'moderate';
|
|
if (raw.includes('\u8f7b\u5ea6') || raw.includes('light')) return 'light';
|
|
if (raw.includes('\u826f') || raw.includes('good')) return 'good';
|
|
if (raw.includes('\u4f18') || raw.includes('excellent')) return 'excellent';
|
|
|
|
switch (level) {
|
|
case '1':
|
|
return 'excellent';
|
|
case '2':
|
|
return 'good';
|
|
case '3':
|
|
return 'light';
|
|
case '4':
|
|
return 'moderate';
|
|
case '5':
|
|
return 'heavy';
|
|
case '6':
|
|
return 'severe';
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function getAqiLevelColor(level: AqiLevel | null): string {
|
|
switch (level) {
|
|
case 'excellent':
|
|
return '#61b15a';
|
|
case 'good':
|
|
return '#e8a735';
|
|
case 'light':
|
|
return '#f0874a';
|
|
case 'moderate':
|
|
return '#ea5a5a';
|
|
case 'heavy':
|
|
return '#b44dcc';
|
|
case 'severe':
|
|
return '#7e1023';
|
|
default:
|
|
return '#999';
|
|
}
|
|
}
|
|
|
|
export function getAqiLevelSoftColor(level: AqiLevel | null): string {
|
|
switch (level) {
|
|
case 'excellent':
|
|
return '#b9e6c9';
|
|
case 'good':
|
|
return '#e8c77a';
|
|
case 'light':
|
|
return '#f0a86b';
|
|
case 'moderate':
|
|
return '#ea8a8a';
|
|
case 'heavy':
|
|
return '#c37ce6';
|
|
case 'severe':
|
|
return '#9e5474';
|
|
default:
|
|
return '#c6d0db';
|
|
}
|
|
}
|
|
|
|
export function getAqiLevelLabel(level: AqiLevel | null, s: typeof strings): string {
|
|
switch (level) {
|
|
case 'excellent':
|
|
return s.aqi_level_excellent;
|
|
case 'good':
|
|
return s.aqi_level_good;
|
|
case 'light':
|
|
return s.aqi_level_light;
|
|
case 'moderate':
|
|
return s.aqi_level_moderate;
|
|
case 'heavy':
|
|
return s.aqi_level_heavy;
|
|
case 'severe':
|
|
return s.aqi_level_severe;
|
|
default:
|
|
return '--';
|
|
}
|
|
}
|
|
|
|
export function getAqiLevelDescription(level: AqiLevel | null, s: typeof strings): string {
|
|
switch (level) {
|
|
case 'excellent':
|
|
return s.aqi_desc_excellent;
|
|
case 'good':
|
|
return s.aqi_desc_good;
|
|
case 'light':
|
|
return s.aqi_desc_light;
|
|
case 'moderate':
|
|
return s.aqi_desc_moderate;
|
|
case 'heavy':
|
|
return s.aqi_desc_heavy;
|
|
case 'severe':
|
|
return s.aqi_desc_severe;
|
|
default:
|
|
return '';
|
|
}
|
|
}
|