feat(my-drafts): schema drafts тоже в "Мои черновики"

This commit is contained in:
Александр Зимин
2026-05-13 12:45:45 +00:00
parent 1b20db5059
commit f096b5746d
5 changed files with 218 additions and 11 deletions
@@ -21,6 +21,7 @@ import {
import {
useDictionaries,
useMyDrafts,
useMySchemaDrafts,
useOutboxStats,
useReviewsBadgeCount,
useWebhookSubscriptions,
@@ -76,7 +77,10 @@ export function Sidebar() {
const isReviewer = canReviewSchema || canReviewRecord
const dictsQuery = useDictionaries()
// Loaded just for сидбар counter — light request, кэшируется.
// Badge "Мои черновики" суммирует record (/drafts/me) + schema
// (/admin/schema-drafts/me) — maker не должен помнить разные типы.
const myDrafts = useMyDrafts(0, 1)
const mySchemaDrafts = useMySchemaDrafts(0, 1)
// Reviews badge — суммирует record-reviews + schema-reviews pending queues
// через size=1 paged запросы. Gated на authenticated.
const reviews = useReviewsBadgeCount(auth.isAuthenticated)
@@ -86,7 +90,8 @@ export function Sidebar() {
const webhooks = useWebhookSubscriptions()
const dictsCount = dictsQuery.data?.length ?? 0
const myDraftsCount = myDrafts.data?.totalElements ?? 0
const myDraftsCount =
(myDrafts.data?.totalElements ?? 0) + (mySchemaDrafts.data?.totalElements ?? 0)
const reviewsCount = reviews.total
// Pending events ждут dispatch. dlq отдельно — alarming, но не блокирует
// нормальную работу, можно увидеть на /outbox. Badge показывает только
@@ -444,12 +449,14 @@ export function MobileSidebar({ open, onClose }: { open: boolean; onClose: () =>
const isReviewer = canReviewSchema || canReviewRecord
const dictsQuery = useDictionaries()
const myDrafts = useMyDrafts(0, 1)
const mySchemaDrafts = useMySchemaDrafts(0, 1)
const reviews = useReviewsBadgeCount(auth.isAuthenticated)
const outboxStats = useOutboxStats()
const webhooks = useWebhookSubscriptions()
const dictsCount = dictsQuery.data?.length ?? 0
const myDraftsCount = myDrafts.data?.totalElements ?? 0
const myDraftsCount =
(myDrafts.data?.totalElements ?? 0) + (mySchemaDrafts.data?.totalElements ?? 0)
const reviewsCount = reviews.total
const outboxPending = outboxStats.data?.pending ?? 0
const webhooksActive =