Files
cms.techvanguard.vn/utils/iconOptions.js
T

48 lines
2.3 KiB
JavaScript

/**
* Danh sách icon Font Awesome cho admin (dropdown) — tránh để user gõ class tự do.
* Giá trị lưu DB/API phải khớp một trong các `value` bên dưới (hoặc được map về default).
*/
const ICON_OPTIONS = [
{ value: "fa-solid fa-compass", label: "Compass (solid)" },
{ value: "fa-solid fa-language", label: "Language (solid)" },
{ value: "fa-solid fa-briefcase", label: "Briefcase (solid)" },
{ value: "fa-solid fa-laptop-code", label: "Laptop code (solid)" },
{ value: "fa-solid fa-universal-access", label: "Universal access (solid)" },
{ value: "fa-solid fa-users", label: "Users (solid)" },
{ value: "fa-solid fa-phone", label: "Phone (solid)" },
{ value: "fa-solid fa-envelope", label: "Envelope (solid)" },
{ value: "fa-solid fa-comments", label: "Comments (solid)" },
{ value: "fa-solid fa-globe", label: "Globe (solid)" },
{ value: "fa-regular fa-clock", label: "Clock (regular)" },
{ value: "fa-solid fa-clock", label: "Clock (solid)" },
{ value: "fa-solid fa-lightbulb", label: "Lightbulb (solid)" },
{ value: "fa-solid fa-circle-info", label: "Info (solid)" },
{ value: "fa-solid fa-headset", label: "Headset (solid)" },
{ value: "fa-solid fa-book", label: "Book (solid)" },
{ value: "fa-solid fa-graduation-cap", label: "Graduation cap (solid)" },
{ value: "fa-solid fa-handshake", label: "Handshake (solid)" },
{ value: "fa-solid fa-piggy-bank", label: "Piggy bank (solid)" },
{ value: "fa-solid fa-certificate", label: "Certificate (solid)" },
{ value: "fa-regular fa-envelope", label: "Envelope (regular)" },
{ value: "fa-solid fa-map-location-dot", label: "Map location dot (solid)" },
{ value: "fa-solid fa-map-marker-alt", label: "Map marker (solid)" },
{ value: "fa-solid fa-location-dot", label: "Location dot (solid)" },
{ value: "fa-solid fa-fax", label: "Fax (solid)" },
{ value: "fa-solid fa-mobile-alt", label: "Mobile (solid)" },
{ value: "fa-solid fa-building", label: "Building (solid)" },
];
const ALLOWED = new Set(ICON_OPTIONS.map((o) => o.value));
function normalizeIconClass(value, fallback = "fa-solid fa-circle-info") {
if (!value || typeof value !== "string") return fallback;
const trimmed = value.trim();
if (ALLOWED.has(trimmed)) return trimmed;
return fallback;
}
module.exports = {
ICON_OPTIONS,
normalizeIconClass,
};