fix: repair Android startup and improve mobile web layouts
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m17s
ci / ts / ts (packages + web) (push) Successful in 2m22s
release / android (APK в релиз) (push) Successful in 4m15s
release / release (версия и заметки) (push) Successful in 6s

This commit is contained in:
mrleo1nid committed 2026-10-21 17:14:05 +03:00
1 parent 4c2286e70d
commit b0cbd0f149
30 files changed
+609 -140

No files matched your search

+6 -6
View File
@@ -181,7 +181,7 @@ export function UsersPage() {
{recsDone && <p className={s.ok}>{t('users.recs_done', { username: recsDone })}</p>}
<div className={s.tableWrap}>
<table className={s.table}>
<table className={cx(s.table, s.mobileCards)}>
<thead>
<tr>
<th>{t('users.col_user')}</th>
@@ -197,7 +197,7 @@ export function UsersPage() {
const st = status(u);
return (
<tr key={u.id}>
<td>
<td data-label={t('users.col_user')}>
<div className={s.userCell}>
<Avatar name={u.display_name ?? u.username} />
<div>
@@ -209,17 +209,17 @@ export function UsersPage() {
</div>
</div>
</td>
<td>
<td data-label={t('users.col_role')}>
<span className={cx(s.badge, s[`role_${u.role}`])}>{t(`common:roles.${u.role}`)}</span>
{u.reviews_uploads && <span className={cx(s.badge, s.role_moderator)}>{t('users.review_uploads')}</span>}
</td>
<td>
<td data-label={t('users.col_status')}>
<span className={cx(s.status, s[`status_${st}`])}>{t(`users.status_${st}`)}</span>
</td>
<td className={s.muted}>
<td className={s.muted} data-label={t('users.col_last_login')}>
{u.last_login_at ? formatRelative(u.last_login_at, i18n.language) : t('users.never')}
</td>
<td>
<td className={s.cardAction}>
{items.length > 0 && (
<Menu label={t('users.actions', { username: u.username })} trigger={<Icon src={moreIcon} />} items={items} />
)}
@@ -320,3 +320,14 @@
gap: 10px;
cursor: pointer;
}
@media (max-width: 767px) {
.card { padding: 16px; }
.cardActions > button { flex: 1 1 auto; }
.retryRow { flex-wrap: wrap; gap: 10px; }
.patternRow { grid-template-columns: 20px minmax(0, 1fr); }
.patternTools { grid-column: 2; margin-top: 0 !important; height: auto; flex-wrap: wrap; }
.patternTools .check { flex-basis: 100%; min-height: 44px; }
.patternTools > button { width: 44px; min-width: 44px; padding: 0; }
.dir { min-height: 44px; height: auto; padding: 8px; overflow-wrap: anywhere; }
}