MergeSplitPanel
경험을 합치거나 나누고 연결을 해제.
- 라이브러리 전용
개요
미리보기
경험 정리
Preview
Customer onboarding guide
- Written by you I wrote it, from the draft to the checklist.
- Written by you Cut items after feedback from Ops.
Each piece of evidence keeps its own status.
예시
상태
합치기 · 충돌(설명 둘 다)
경험 정리
Preview
Customer onboarding guide
- Written by you I wrote it, from the draft to the checklist.
- Written by you Cut items after feedback from Ops.
Each piece of evidence keeps its own status.
나누기
경험 정리
연결 해제
경험 정리
적용 중
경험 정리
Preview
Customer onboarding guide
- Written by you I wrote it, from the draft to the checklist.
- Written by you Cut items after feedback from Ops.
Each piece of evidence keeps its own status.
완료 · 되돌리기
Merged 2 experiences. You can undo this.
Customer onboarding guide
이렇게 · 이렇게 하지 않기
- 이렇게 결과를 미리 보여준 뒤 적용하고, 적용 후에는 되돌리기를 준다.
- 이렇게 하지 않기 직접 쓴 설명은 합치거나 나눠도 사라지지 않는다. 둘 다 있으면 둘 다 남기고 순서만 정한다.
- 이렇게 하지 않기 합친 결과를 한꺼번에 “원문 일치”로 만들지 않는다. 근거 상태는 근거마다 유지한다.
- 이렇게 연결 해제는 삭제가 아니며 기록은 그대로 남는다고 쓴다.
- 이렇게 21st 참고: 합치기·나누기 전용 결과가 없어(“merge items combine duplicates split” 검색은 Split Button·Combobox만 나옴) Edit Tool(serafimcloud — 적용/건너뛰기 전 미리보기), Commit(syeddhasnainn — 변경 요약), The Dialog(felipemenezes098 — 되돌릴 수 있다는 문장)를 조합했다. 드래그로 합치기는 넣지 않았다.
토큰과 속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
mode? | 'merge' | 'split' | 'unlink' | merge | merge(2개 이상을 하나로) · split(기록을 새 경험으로) · unlink(기록 연결 해제, 삭제 아님). |
title | ReactNode | 경험 정리 | 패널 제목. |
experiences | readonly MergeSplitExperience[] | — | { id, title, meta?, note?, records? }. merge는 후보 전체, split·unlink는 첫 경험과 그 기록. note = 본인 진술. 미리보기 표본 3개(2개에 직접 쓴 설명). |
selected? | readonly string[] | — | 처음 고른 id(merge는 경험, unlink는 기록). 미리보기 merge는 설명이 있는 두 경험이라 충돌 단계가 보인다. |
status? | 'idle' | 'busy' | 'done' | idle | idle · busy(적용 중, 버튼 loading) · done(결과 카드 제목에 초점 + 되돌리기). |
onApply?: (result) => void | — | — | { mode:"merge", ids, noteOrder } · { mode:"split", experienceId, moves } · { mode:"unlink", experienceId, recordIds }. 진행 중에는 status="busy", 끝나면 "done". |
onUndo · onCancel · announce() | — | — | 되돌리기, 취소, 결과는 공용 announce()로 알린다. |
| 그 밖의 속성 | — | — | id, aria-* 등 네이티브 section 속성은 그대로 전달된다. className·style·children은 받지 않는다. |
접근성
키보드: 일반 Tab. 체크박스 Space, 라디오 화살표, select. 드래그 없음(드래그는 ReorderList만).
- 행동을 할 수 없을 때는 버튼 disabled + 바로 위의 이유 문장(aria-describedby).
- 완료되면 결과 카드 제목(tabindex=-1)에 초점을 두고 “경험 2개를 합쳤어요. 실행 취소 가능”을 polite로 알린다. 모션: 결과 카드 fast 불투명도.