add formatDate and convertBytes functions
This commit is contained in:
@@ -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]}`;
|
||||||
|
}
|
||||||
@@ -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>
|
</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">
|
||||||
<div className="stat-card-group">
|
<div className="stat-card-group">
|
||||||
<span className="stat-card-title">Новых за текущий месяц</span>
|
<span className="stat-card-title">Новых за текущий месяц</span>
|
||||||
@@ -25,9 +40,6 @@ export default function GeneralInfoUsers() {
|
|||||||
<span className="stat-card-title">Новых за прошлый месяц</span>
|
<span className="stat-card-title">Новых за прошлый месяц</span>
|
||||||
<div className="stat-card-value">0</div>
|
<div className="stat-card-value">0</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="stat-card">
|
|
||||||
<div className="stat-card-group">
|
<div className="stat-card-group">
|
||||||
<span className="stat-card-title">Дельта</span>
|
<span className="stat-card-title">Дельта</span>
|
||||||
<div className="stat-card-value">0</div>
|
<div className="stat-card-value">0</div>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export default function UsersTop() {
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div className="users-top-user">Сидоров Станислав Андреевич</div>
|
<div className="users-top-user">Сидоров Станислав Андреевич</div>
|
||||||
@@ -22,6 +23,7 @@ export default function UsersTop() {
|
|||||||
<td>0</td>
|
<td>0</td>
|
||||||
<td>0 MB</td>
|
<td>0 MB</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div className="users-top-user">Валерка</div>
|
<div className="users-top-user">Валерка</div>
|
||||||
@@ -30,6 +32,7 @@ export default function UsersTop() {
|
|||||||
<td>0</td>
|
<td>0</td>
|
||||||
<td>0 MB</td>
|
<td>0 MB</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div className="users-top-user">Игорь Викторович</div>
|
<div className="users-top-user">Игорь Викторович</div>
|
||||||
@@ -38,6 +41,7 @@ export default function UsersTop() {
|
|||||||
<td>0</td>
|
<td>0</td>
|
||||||
<td>0 MB</td>
|
<td>0 MB</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div className="users-top-user">Синицын Игорь Владимирович</div>
|
<div className="users-top-user">Синицын Игорь Владимирович</div>
|
||||||
@@ -46,6 +50,16 @@ export default function UsersTop() {
|
|||||||
<td>0</td>
|
<td>0</td>
|
||||||
<td>0 MB</td>
|
<td>0 MB</td>
|
||||||
</tr>
|
</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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user