feat(auth): retry рефреша при 401 + вкладка «Сессии» в профиле с отзывом устройств

This commit is contained in:
2026-09-21 18:13:47 +03:00
parent c957a70260
commit f8d78afd2e
3 changed files with 159 additions and 5 deletions

View File

@@ -26,6 +26,7 @@ import {
} from '@/components/profile/ProfileFieldRow';
import { ProfileNotificationsTab } from '@/components/profile/ProfileNotificationsTab';
import { ProfileOfflineTab } from '@/components/profile/ProfileOfflineTab';
import { ProfileSessionsTab } from '@/components/profile/ProfileSessionsTab';
import { ProfileInterfaceTab } from '@/components/profile/ProfileInterfaceTab';
import { ProfileSecurityTab } from '@/components/profile/ProfileSecurityTab';
import { ProfileGpsTab } from '@/components/profile/ProfileGpsTab';
@@ -821,11 +822,12 @@ export default function UserProfilePage({ userId: userIdProp }: { userId?: numbe
<TabsList className="flex flex-wrap justify-start gap-1 h-auto bg-transparent p-0 mb-2">
<TabsTrigger value="dossier" className={sectionChipClass}>Досье</TabsTrigger>
<TabsTrigger value="history" className={sectionChipClass}>История</TabsTrigger>
{/* Уведомления и Offline — для себя и для админа на чужой карточке */}
{/* Уведомления, Offline и Сессии — для себя и для админа на чужой карточке */}
{(isSelf || isAdminView) && (
<>
<TabsTrigger value="notifications" className={sectionChipClass}>Уведомления</TabsTrigger>
<TabsTrigger value="offline" className={sectionChipClass}>Offline</TabsTrigger>
<TabsTrigger value="sessions" className={sectionChipClass}>Сессии</TabsTrigger>
</>
)}
{/* Интерфейс, Безопасность и GPS — только на своём профиле:
@@ -857,7 +859,7 @@ export default function UserProfilePage({ userId: userIdProp }: { userId?: numbe
)}
</TabsContent>
{/* Уведомления и Offline — свой профиль или админский просмотр чужого */}
{/* Уведомления, Offline и Сессии — свой профиль или админский просмотр чужого */}
{(isSelf || isAdminView) && (
<>
<TabsContent value="notifications" className="space-y-4">
@@ -866,6 +868,9 @@ export default function UserProfilePage({ userId: userIdProp }: { userId?: numbe
<TabsContent value="offline" className="space-y-4">
<ProfileOfflineTab userId={userId} isSelf={isSelf} />
</TabsContent>
<TabsContent value="sessions" className="space-y-4">
<ProfileSessionsTab userId={userId} />
</TabsContent>
</>
)}
{/* Интерфейс, Безопасность и GPS — только на своём профиле */}