Files
DLE/frontend/src/utils/helpers.js
2025-10-30 22:41:04 +03:00

61 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) 2024-2025 Тарабанов Александр Викторович
* All rights reserved.
*
* This software is proprietary and confidential.
* Unauthorized copying, modification, or distribution is prohibited.
*
* For licensing inquiries: info@hb3-accelerator.com
* Website: https://hb3-accelerator.com
* GitHub: https://github.com/VC-HB3-Accelerator
*/
/**
* Генерирует уникальный ID
* @returns {string} - Уникальный ID
*/
export const generateUniqueId = () => {
// Генерируем в формате guest_* для совместимости с UniversalGuestService
const array = new Uint8Array(16);
crypto.getRandomValues(array);
const hex = Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');
return `guest_${hex}`;
};
/**
* Сокращает адрес кошелька
* @param {string} address - Адрес кошелька
* @returns {string} - Сокращенный адрес
*/
export const truncateAddress = (address) => {
if (!address) return '';
// Добавим проверку на длину, чтобы не было ошибок
if (address.length <= 10) return address;
return `${address.substring(0, 6)}...${address.substring(address.length - 4)}`;
};
/**
* Форматирует время в человекочитаемый вид
* @param {string | number | Date} timestamp - Метка времени
* @returns {string} - Форматированное время
*/
export const formatTime = (timestamp) => {
if (!timestamp) return '';
try {
const date = new Date(timestamp);
if (isNaN(date.getTime())) {
console.warn('Invalid timestamp for formatTime:', timestamp);
return '';
}
return date.toLocaleString([], {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
});
} catch (error) {
console.error('Error formatting time:', error, timestamp);
return '';
}
};