// Add tất cả sp trong data product vào 1 mảng import { productList } from '@/data/products'; export function getAllProducts() { return productList.flatMap((group:any) => group.list); } export function formatTextList( text?: string | any[], limit = 5 ) { if (!text) return ''; if (typeof window === 'undefined') { // server: trả raw HTML return Array.isArray(text) ? String(text[1] ?? '') : String(text); } const html = Array.isArray(text) ? String(text[1] ?? '') : String(text); if (!html) return ''; const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); const nodes = Array.from( doc.body.querySelectorAll('p, div, li') ); return nodes .slice(0, limit) .map(node => `
${node.innerHTML}
`) .join(''); } // Format giá export function formatPrice(amount: number) { return amount.toLocaleString('vi-VN'); } // Tính % giảm giá export function calculateDiscount( price: number, marketPrice: number ) { if (price <= 0 || marketPrice <= price) return 0; return Math.ceil(((marketPrice - price) / marketPrice) * 100); } export function formatArticleTime(article_time:string) { let day: string; let month: string; let year: string; if (article_time.toLowerCase().includes('hôm nay')) { const time = new Date(); day = (time.getDate() <= 9) ? '0' + time.getDate() : String(time.getDate()); month = (time.getMonth()+1 <= 9) ? '0' + (time.getMonth()+1) : String(time.getMonth()+1); year = String(time.getFullYear()); } else { day = article_time.substring(0,2); month = article_time.substring(3,5); year = article_time.substring(6,10); } return `${day}/${month}/${year}`; }