Skip to content

Commit 5c43d75

Browse files
feat: add do-not-show option to onboarding reopen tip
1 parent 6fcdc0a commit 5c43d75

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

frontend/onboarding-bootstrap.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const ONBOARDING_COMPLETED_KEY = 'onboardingCompleted';
22
const ONBOARDING_PROMPT_DISMISSED_KEY = 'onboardingPromptDismissed';
3+
const ONBOARDING_REOPEN_TIP_DISABLED_KEY = 'onboardingReopenTipDisabled';
34
const ONBOARDING_SESSION_ENDED_EVENT = 'onboarding:session-ended';
45

56
let startPromptEl = null;
@@ -82,19 +83,25 @@ function removeStartPrompt() {
8283
}
8384

8485
function showReopenTip() {
86+
if (localStorage.getItem(ONBOARDING_REOPEN_TIP_DISABLED_KEY) === 'true') return;
8587
if (onboardingRunning || startPromptEl || reopenTipEl) return;
8688

8789
reopenTipEl = document.createElement('div');
8890
reopenTipEl.className = 'onboarding-reopen-tip';
8991
reopenTipEl.innerHTML = `
9092
<span class="onboarding-reopen-text">要重新跑一次使用教學嗎?</span>
93+
<button type="button" class="onboarding-reopen-disable" data-role="disable">不再提示</button>
9194
<button type="button" class="onboarding-reopen-start" data-role="start">開始教學</button>
9295
<button type="button" class="onboarding-reopen-close" data-role="close" aria-label="關閉提示">×</button>
9396
`;
9497

9598
reopenTipEl.querySelector('[data-role="close"]')?.addEventListener('click', () => {
9699
removeReopenTip();
97100
});
101+
reopenTipEl.querySelector('[data-role="disable"]')?.addEventListener('click', () => {
102+
localStorage.setItem(ONBOARDING_REOPEN_TIP_DISABLED_KEY, 'true');
103+
removeReopenTip();
104+
});
98105
reopenTipEl.querySelector('[data-role="start"]')?.addEventListener('click', () => {
99106
startOnboarding('manual');
100107
});

public/style.css

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,6 +1915,7 @@ body.read-only-mode .header {
19151915
display: flex;
19161916
align-items: center;
19171917
gap: 8px;
1918+
flex-wrap: wrap;
19181919
}
19191920

19201921
.onboarding-reopen-close {
@@ -1941,13 +1942,24 @@ body.read-only-mode .header {
19411942
white-space: nowrap;
19421943
}
19431944

1945+
1946+
.onboarding-reopen-disable,
19441947
.onboarding-reopen-start {
19451948
border: 1px solid var(--color-primary);
1946-
background: var(--color-primary);
1947-
color: var(--md-sys-color-on-primary);
19481949
border-radius: var(--radius-pill);
19491950
font-size: 12px;
19501951
padding: 5px 10px;
19511952
line-height: 1.2;
19521953
cursor: pointer;
19531954
}
1955+
1956+
.onboarding-reopen-disable {
1957+
background: transparent;
1958+
color: var(--color-text-main);
1959+
border-color: var(--color-border-strong);
1960+
}
1961+
1962+
.onboarding-reopen-start {
1963+
background: var(--color-primary);
1964+
color: var(--md-sys-color-on-primary);
1965+
}

0 commit comments

Comments
 (0)