You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Yeni bileşenler prop tiplerini ayrı bir interface <ComponentName>Props ile tanımlamalı; anonim inline literal kullanılmamalı. Bu ihlal şu konumlarda var: UserActivityCard (L14), UserSessionsCard içinde DeviceIcon (L20), SessionRow (L29), UserSessionsCard (L50) ve SessionsSection içinde DeviceIcon (L21). Aynı dosyadaki ConfirmRevokeModal/SessionRow'un interface kullanması tutarsızlığı gösteriyor. Bu kalıp PR #20 ve #24'te de reddedilip düzeltilmesi istenmişti.
Öneri: Her bileşen için interface DeviceIconProps, interface SessionRowProps, interface UserSessionsCardProps, interface UserActivityCardProps tanımla ve imzaları bunlara bağla.
2. Admin panelde çift account WebSocket bağlantısı
AccountEventsBridge korumalı layout'a eklendi ve useAccountEvents() çağırıyor. Ancak AdminShell.tsx (PR #22, ~L50) hâlâ aynı hook'u çağırıyor ve kaldırılmamış. Admin kullanıcıları artık iki eşzamanlı account-event soketi açıyor; her permissions_updated / sessions_revoked olayında getMe() + setUser() + invalidateQueries() iki kez tetikleniyor.
PR #22: "feat: live permission updates via account socket" — AdminShell.tsx içinde useAccountEvents();
Öneri:AdminShell.tsx içindeki useAccountEvents() çağrısını ve import'unu kaldır; soket artık AccountEventsBridge üzerinden yönetiliyor.
"Terminate all sessions" onay akışı inline Modal JSX olarak yazılmış. Tam bu amaca yönelik paylaşımlı components/admin/ConfirmDialog.tsx zaten mevcut (open, onOpenChange, title, description, confirmLabel, onConfirm, isLoading, destructive prop seti ile).
REVIEW.md (anti-pattern): "Yeni confirm akışlarında bunu kullan… Örnek paylaşımlı bileşen: components/admin/ConfirmDialog.tsx."
#2 — Çift account soketi: Geçerli değil. AccountEventsBridge, [locale]/(protected)/layout.tsx altında; AdminShell ise [locale]/admin/(protected)/layout.tsx altında. Bunlar kardeş route dalları — admin sayfaları /admin/... non-admin (protected) layout'unu mount etmez, dolayısıyla iki hook aynı anda çalışmaz. Çift soket yok.
#4 / #5 — max-lines (150) aşımı: Geçerli değil. eslint.config.mjs'te dosya başına kural max-lines: 300 (error); 150 ise max-lines-per-function ve seviyesi warn (build kırmaz). SessionsSection.tsx 222 satır, UserSessionsCard.tsx 154 satır — ikisi de 300 sınırının altında. Per-file 300 ile per-function 150 karıştırılmış.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.