Личный кабинет {viewerFullName}
Мы рады вам помочь
Мои заявки
{status.message}
import { RequestWorkspace } from "./admin/features/requests/RequestWorkspace.jsx"; import { createRequestModalState } from "./admin/shared/state.js"; import { detectAttachmentPreviewKind, fmtShortDateTime, statusLabel } from "./admin/shared/utils.js"; (function () { const { useCallback, useEffect, useMemo, useRef, useState } = React; function sortRowsByCreatedAt(rows) { return [...rows].sort((left, right) => { const leftTs = new Date(left?.created_at || left?.updated_at || 0).getTime(); const rightTs = new Date(right?.created_at || right?.updated_at || 0).getTime(); if (Number.isFinite(leftTs) && Number.isFinite(rightTs) && leftTs !== rightTs) return leftTs - rightTs; return String(left?.id || "").localeCompare(String(right?.id || ""), "ru"); }); } function mergeRowsById(existingRows, incomingRows) { const merged = new Map(); (Array.isArray(existingRows) ? existingRows : []).forEach((row) => { const key = String(row?.id || "").trim(); if (key) merged.set(key, row); }); (Array.isArray(incomingRows) ? incomingRows : []).forEach((row) => { const key = String(row?.id || "").trim(); if (key) merged.set(key, row); }); return sortRowsByCreatedAt(Array.from(merged.values())); } function StatusLine({ status }) { return
{status?.message || ""}
; } function Overlay({ open, id, onClose, children }) { return (Загрузка предпросмотра...
: null} {!loading && !error && hint ?{hint}
: null} {error ?{error}
: null} {!loading && !error && kind === "image" && resolvedUrl ? ({resolvedText || "Файл пуст."}
) : null}
{kind === "none" ? Для этого типа файла доступно только открытие или скачивание.
: null}Если нужна дополнительная поддержка по делу, можно обратиться к куратору. Запрос отправляется администратору платформы.
Если текущий юрист не устраивает, можно запросить его смену. Укажите причину для администратора.
Откройте нужную заявку из списка
Мы рады вам помочь
{status.message}