Repository navigation
[DONE] 덱과 보내기 창 여섯이 Esc 로 닫히고, 열리면 초점이 창 안으로, 닫히면 연 단추로 간다 - #297
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
patternflow-bot
marked this pull request as ready for review
October 26, 2026 21:48
This was referenced Oct 26, 2026
engmung
pushed a commit
to engmung/Patternflow
that referenced
this pull request
Oct 27, 2026
engmung
pushed a commit
to engmung/Patternflow
that referenced
this pull request
Oct 27, 2026
Patternflow-lab#268 Patternflow-lab#271 Patternflow-lab#275 Patternflow-lab#276 Patternflow-lab#277 Patternflow-lab#279 Patternflow-lab#280 Patternflow-lab#281 Patternflow-lab#283 Patternflow-lab#284 Patternflow-lab#285 Patternflow-lab#286 Patternflow-lab#287 Patternflow-lab#288 Patternflow-lab#289 Patternflow-lab#290 Patternflow-lab#291 Patternflow-lab#292 Patternflow-lab#293 Patternflow-lab#294 Patternflow-lab#295 Patternflow-lab#296 Patternflow-lab#297 Patternflow-lab#298 Patternflow-lab#299 Patternflow-lab#300 Patternflow-lab#301 Patternflow-lab#302 Patternflow-lab#303
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
lsh / https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
덱의 창 다섯(Edit deck details, Deck performance, Share this deck, Share deck, 덱 패널)과 Send to my Patternflow 창이 이제 Esc 한 번에 닫히고, 그 창을 연 단추로 초점을 돌려줘요. 열릴 때도 초점이 창 안으로 들어가서, 키보드로 덱을 다듬다 쪽 어디에 있었는지 잃지 않아요.
좋아지는 것: 덱 창을 Esc 로 닫으면 연 단추로 돌아온다 — 키보드로 덱을 다듬다 자리를 잃지 않는다
dialogKeys.test.tsx에 창 여섯을 더해 dev 에서 빨간 것 보기 — 32개 가운데 10개 빨강useDialog— 같은 시험 32개 초록check:voice95b3670에서 둘 다 success, dev 는372207a그대로라 merge 할 것 없음한 일
여섯 창이 다른 커뮤니티 창 여섯이 이미 쓰는
lib/hooks/useDialog.ts를 써요. 훅은 고치지 않았어요.DeckDetailClient.tsx의PerformanceModal은 카드가 초점을 받아요.EditDeckModal은EditDetailsModal처럼 제목 칸이 훅의 ref 를 받고autoFocus를 뺐어요.autoFocus가 남으면 훅이 연 단추를 보기 전에 초점이 칸으로 가서, 닫을 때 돌려줄 곳이 없어요.ShareDeckModal은PublishModal처럼 카드가 먼저 초점을 받고, 세션을 알고 글 칸이 서면 제목 칸으로 옮겨요.ShareDeckPackModal은 제 Esc 듣개를 걷고 훅으로 바꿨어요.SendModuleModal은 카드가 초점을 받아요. 안에 든 로그인 폼은embedded라 Esc 를 듣지 않아서, Esc 한 번이 창 하나예요.DeckPanel은 늘 떠 있는 칩과 같은 컴포넌트라 훅을 그대로 걸면 칩이 뜰 때 한 번만 돌아요. 창 껍데기를DeckWindow로 떼어 창이 열릴 때 훅이 서게 했어요. 안의 내용은 들여쓰기만 바뀌었어요.HardwareModal.tsx와 그 시험의 주석이 「Send 는 키를 듣지 않는다」고 해서 지금대로 고쳤어요.dialogKeys.test.tsx의WINDOWS가 창을 그리는 함수 대신 창을 열고 연 단추를 돌려주는 함수를 받아요. 덱 쪽 창 둘은 진짜 덱 쪽에서, 덱 패널은 칩에서 열어야 해서예요. 여섯을 더했고, 패널 안의 Share deck 을 눌러 연 창이 Esc 뒤 칩으로 돌아가는 시험과, 제목 칸에서 시작하는 창 둘의 시험을 더했어요.증거
넷 다 Edit details 에 초점을 두고 Enter 로 창을 연 뒤 Esc 를 누른 화면이에요. 고친 뒤엔 창이 닫히고 Edit details 에 초점 테두리가 있어요. dev 에선 창이 그대로예요.
이 브랜치와 dev 의 여섯 파일을 따로
next build했어요(NEXT_PUBLIC_BUILD_ENABLED=1,NEXT_PUBLIC_COMMUNITY_URL=http://localhost:3100). 스크래치 DB 에 ada 를 가입시키고 공개 패턴 하나(헤더 있음)와 공개 덱 하나, 비공개 덱 하나를 HTTP 로 올렸어요. Playwright 가 연 단추에 초점을 두고 Enter, Esc 를 눌러document.activeElement를 읽었어요. 데스크톱에선 덱 칩이 숨어서(Community.module.css의.deckChip은 900px 아래에서만 보여요) 덱 패널을 비공개 덱 쪽의 Send to my board 로 열었고, Share deck 은 아래 독의 단추로 열었어요.비공개 덱 쪽의 Send to my board 로 연 덱 패널은 두 판 다 Esc 뒤 초점이 BODY 예요. 이 브랜치에선 패널이 닫히고 초점이 창 안으로 들어가는 것까지는 돼요. 남은 것은 「가정」 끝에 적었어요. 두 판 다
pageerror Event가 한 번씩 났어요. Monaco 를 바깥 CDN 에서 못 받은 것이에요(이 컨테이너는 그 주소로 못 나가요).새 시험을 dev 의 여섯 파일로 돌렸을 때:
이 브랜치에서(
dialogKeys,backdropClose,HardwareModal):다섯 검사(
web/에서):links-absolute와roadmap은 이 컨테이너에gh로 원래 레포를 읽을 길이 없어서skipped예요. PR 의drift.yml이 다시 돌려요. 문서는 고치지 않아서check:human-lock은 돌리지 않았어요.PR 의 검사는
95b3670에서Drift checks와Web CI둘 다 success 예요.실행법
# web/ 에서 npx vitest run src/components/community/dialogKeys.test.tsx화면으로 보려면 내 덱 쪽에서 Tab 으로 Edit details 에 가서 Enter, 그리고 Esc 를 눌러요. 창이 닫히고 초점이 Edit details 에 돌아와요. 폰 폭에선 머리줄의 덱 칩으로 패널을 열어 같은 것을 봐요.
가정
useDialog를 써서, 그 줄은 훅 하나만 고치면 돼요.disabled로 바꿔서 Chromium 이 초점을 BODY 로 떨궈요. 그 뒤에 열리는 덱 패널은 돌려줄 단추를 보지 못해 Esc 뒤 초점이 BODY 예요(DeckDetailClient.tsx:237의sendToBoard, dev 도 같아요).Changelog
Web
경험
언제: 데스크톱 폭에서 커뮤니티 덱 패널(
DeckPanel)을 Playwright 로 열어 잴 때교훈: 머리줄의 덱 칩은 900px 아래에서만 보여서 1440 에선
getByTitle(/^Your deck/)이 숨은 칩을 잡으니, 비공개 덱 쪽의 「Send to my board」(openDeckPanel)로 열어요근거: #297 에서 1440 의 칩에 Enter 를 눌러도 창이 0개였고, 공개 덱 쪽엔 그 단추 대신 「Install to my board」 가 서서 비공개 덱을 하나 더 올렸어요
바퀴
바퀴 126 · 후보 21 「덱과 보내기 창 여섯이 Esc 로 닫히고, 열리면 초점이 창 안으로, 닫히면 연 단추로 간다」
다음 바퀴
https://claude.ai/code/session_016VxkFapkxCRBQYVYBf6TM6
Generated by Claude Code