refactor(frontend): extract SectionLabel + EmptyState + adminStyles shared #132
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#132
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "refactor/frontend-ui-shared-129"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Per audit batch #127 P2 hygiene: DRY-violations в frontend — 3 patterns копипастились multiple places.
Changes
3 new shared modules
components/ui/SectionLabel.tsx— 5-line uppercase header divcomponents/ui/EmptyState.tsx— "no data" center textlib/adminStyles.ts— cardStyle/labelStyle/inputStyle/th/tdReplacements
Edge cases preserved
leads/page.tsxth/td/inputStyle — divergent values, оставлены localBulkGeoPanel.tsxlabelStyle — на<span>, без display:block, оставлен localVisual regression risk: ZERO
Все px/colors/CSS values copied verbatim. Files с divergent values НЕ tronутy.
Checks
Vault
code/patterns/Pattern_Frontend_UI_Shared_May14.mdCloses #129
Refs: #127
Bot review — НЕ мержу, нужно действие автора
Проблема: diff не соответствует описанию
PR body описывает 3 shared компонента (
SectionLabel.tsx,EmptyState.tsx,adminStyles.ts) и замены в 5+ файлах.Фактический diff (
gh api repos/.../pulls/132/files):Это содержимое уже смерджённого PR #131 (XSS guard, commit
8647114). Никаких новых компонент или замен не видно.Корень проблемы
headRefOidэтого PR (6186804eb84f1580d7cb8279b2382bc6f929b2ff) совпадает с pre-merge HEAD PR #131. Похоже что PR #132 был открыт стаком поверх ветки #131, но коммиты с реальным refactor'ом (SectionLabel/EmptyState/adminStyles) не запушены — branch содержит только содержимое #131.mergeable: UNKNOWNтоже намекает что GitHub ещё пересчитывает state после squash-merge #131.Что нужно сделать
После push'а нового SHA — на следующем cron-тике я перепроверю.
Не блокирующий минор (если будете push'ить refactor)
В PR body упомянуто что
leads/page.tsxиBulkGeoPanel.tsxимеют divergent values и оставлены local. Хорошая практика — упомянуть это явно вadminStyles.ts(JSDoc или TODO-комментарий) чтобы будущий читатель не «унифицировал» эти места обратно по ошибке.Bot re-review (SHA
d33023d, CI ✅)Refactor-коммиты запушены. File-list соответствует описанию: 3 новых (
EmptyState.tsx +22,SectionLabel.tsx +23,adminStyles.ts +35) + 11 modified (4 admin/scrape + leads + BulkGeoPanel + 4 site-finder tabs + renderMarkdown carry-over). Net +148/-302 — здоровый DRY-cleanup.Замеченный quirk renderMarkdown.ts (не блокер)
pulls/132/filesвсё ещё показывает PR #131's patch (+31/-2). Это merge-base artifact: ветка PR #132 ответвилась от ветки PR #131 ДО squash-merge'а #131. GitHub считает diff от общего ancestor → показывает все изменения с тех пор.Проверил содержимое — patch на этой ветке идентичен тому что уже в main (commit
8647114от squash #131). После squash-merge PR #132 содержимое renderMarkdown.ts на main останется тем же, регресса не будет.mergeable: MERGEABLEэто подтверждает.Сам refactor
✅ Edge cases сохранены: PR body упоминает что
leads/page.tsxth/td/inputStyle (divergent values) иBulkGeoPanel.tsxlabelStyle (на<span>, безdisplay:block) оставлены local — это правильно✅ Zero visual regression risk: px/colors/CSS values copied verbatim
✅ tsc: 0 errors, lint: 0 warnings (per body) + CI green
✅ Pattern doc в vault —
code/patterns/Pattern_Frontend_UI_Shared_May14.mdМинор для следующего раза
Если будут ещё stacked refactor PR'ы — лучше открывать их с
base: main(не с base feature-branch), это избавит от merge-base artifact'а и упростит ревью.approve merge