add formatDate and convertBytes functions

This commit is contained in:
smanylov
2026-04-09 15:02:14 +07:00
parent 1c43ebd9f4
commit 3885bc9ccb
4 changed files with 73 additions and 3 deletions
+19
View File
@@ -0,0 +1,19 @@
export function convertBytes(bytes: number) {
if (!bytes) {
return 0;
}
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
if (bytes === 0) return '0 B';
let i = 0;
let value = bytes;
while (value >= 1024 && i < units.length - 1) {
value /= 1024;
i++;
}
return `${value.toFixed(1)} ${units[i]}`;
}
+25
View File
@@ -0,0 +1,25 @@
// Форматирование даты из timestamp
export const formatDate = (timestamp: number | string) => {
if (!timestamp) {
return '---'
}
const date = new Date(timestamp);
const day = date.getDate().toString().padStart(2, '0');
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const year = date.getFullYear();
return `${day}.${month}.${year}`;
};
export const formatDateTime = (timestamp: number | string) => {
if (!timestamp) {
return '---'
}
const date = new Date(timestamp);
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
return `${hours}:${minutes}`;
};
@@ -16,6 +16,21 @@ export default function GeneralInfoUsers() {
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Новых за 30 дней</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">Новых за предыдущие 30 дней</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">Дельта</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Новых за текущий месяц</span>
@@ -25,9 +40,6 @@ export default function GeneralInfoUsers() {
<span className="stat-card-title">Новых за прошлый месяц</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Дельта</span>
<div className="stat-card-value">0</div>
+14
View File
@@ -14,6 +14,7 @@ export default function UsersTop() {
</tr>
</thead>
<tbody>
<tr>
<td>
<div className="users-top-user">Сидоров Станислав Андреевич</div>
@@ -22,6 +23,7 @@ export default function UsersTop() {
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">Валерка</div>
@@ -30,6 +32,7 @@ export default function UsersTop() {
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">Игорь Викторович</div>
@@ -38,6 +41,7 @@ export default function UsersTop() {
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">Синицын Игорь Владимирович</div>
@@ -46,6 +50,16 @@ export default function UsersTop() {
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">test test</div>
<div className="users-top-mail">test@no-copy.ru</div>
</td>
<td>0</td>
<td>0 MB</td>
</tr>
</tbody>
</table>
</div>