ConsentSheet
/start의 데이터 접근 동의 시트(범위 3줄과 안내).
- 출시 화면에서 사용
개요
미리보기
예시
상태
열림
Connect Google Calendar
- Reads event titles and times only.
- Never creates or edits events. Skips attendees, places and notes.
- Takes the last 30 days only. Disconnect and delete anytime.
Google will show a broader permission. We take only what’s listed above.
Discard what you’ve written?
If you close now, what you entered won’t be saved.이동 중
Connect Google Calendar
- Reads event titles and times only.
- Never creates or edits events. Skips attendees, places and notes.
- Takes the last 30 days only. Disconnect and delete anytime.
Google will show a broader permission. We take only what’s listed above.
Discard what you’ve written?
If you close now, what you entered won’t be saved.거절 후 복귀
Not connected. Your account is unchanged; connect later from You.
Gmail
Connect Gmail
- Reads subject, sender and date of received mail only.
- Never sends, deletes or changes mail. Skips attachments.
- Takes the last 30 days only. Disconnect and delete anytime.
Google will show a broader permission. We take only what’s listed above.
Discard what you’ve written?
If you close now, what you entered won’t be saved.
쓰임 예
트리거로 열기(모달)
Connect Google Calendar
- Reads event titles and times only.
- Never creates or edits events. Skips attendees, places and notes.
- Takes the last 30 days only. Disconnect and delete anytime.
Google will show a broader permission. We take only what’s listed above.
Discard what you’ve written?
If you close now, what you entered won’t be saved.
이렇게 · 이렇게 하지 않기
- 이렇게 제목은 “Google Calendar 연결”, 버튼은 “Google로 이동”과 “나중에”다. 거절해도 계정은 그대로이고 나중에 연결할 수 있다고 쓴다.
- 이렇게 하지 않기 동의 항목을 미리 체크하거나 버튼 크기로 선택을 유도하지 않는다. 로그인과 데이터 접근 동의를 합치지 않는다.
토큰과 속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
open? | boolean | false | 열림. 미리보기에서는 비모달 정적 렌더, 실제 모달은 무대의 “가져오기” 버튼으로 확인한다. |
service? | 'calendar' | 'gmail' | 'drive' | calendar | 연결할 서비스. |
state? | 'idle' | 'redirecting' | 'declined-return' | idle | redirecting은 주 버튼 loading(초점 유지). declined-return은 Google에서 거절하고 돌아온 상태로, 시트 없이 한 줄만 보이고 알리지 않는다(오류 아님). |
period? | 30 | 90 | 30 | 첫 가져오기 기간(ScopeList 3번째 줄). |
onContinue? | () => void | — | “Google로 이동” → 페이지 이동. |
onLater? | () => void | — | “나중에”·Esc·배경 → 닫기. 초점은 여는 버튼으로 돌아간다. |
inline (internal) | — | — | 카탈로그 전용 비모달 렌더. 화면에서 쓰지 않는다. |
접근성
키보드: 열면 제목에 초점. Tab은 시트 안에 갇힌다(네이티브 모달). Esc = 나중에.
- 주 버튼은 PermissionNote를 aria-describedby로 가리킨다. 두 버튼은 같은 크기·44px 이상.
- 거절하고 돌아오면 알리지 않는다. 오류가 아니다.
- 모션: 아래에서 24px 올라오며 move, reduce에서는 120ms 페이드만.