seo update
This commit is contained in:
@@ -43,7 +43,7 @@ export default function HomePage() {
|
||||
const titleInputRef = useRef<HTMLInputElement>(null)
|
||||
const contentTextareaRef = useRef<HTMLTextAreaElement>(null)
|
||||
|
||||
const { startTour } = useOnboardingTour()
|
||||
const { startTour, isTourActive } = useOnboardingTour()
|
||||
|
||||
// Check if onboarding should be shown after login
|
||||
useEffect(() => {
|
||||
@@ -52,6 +52,14 @@ export default function HomePage() {
|
||||
}
|
||||
}, [loading, user, userId, mongoUser])
|
||||
|
||||
// On-demand tour triggered from Settings (no DB read/write)
|
||||
useEffect(() => {
|
||||
if (!loading && user && localStorage.getItem('gj-force-tour') === 'true') {
|
||||
localStorage.removeItem('gj-force-tour')
|
||||
setTimeout(() => startTour(), 150)
|
||||
}
|
||||
}, [loading, user, startTour])
|
||||
|
||||
async function markTutorialDone() {
|
||||
if (!user || !userId) return
|
||||
const token = await user.getIdToken()
|
||||
@@ -78,7 +86,7 @@ export default function HomePage() {
|
||||
<div className="home-page" style={{ alignItems: 'center', justifyContent: 'center', gap: '1rem' }}>
|
||||
<h1 style={{ fontFamily: '"Sniglet", system-ui', color: 'var(--color-text)' }}>Grateful Journal</h1>
|
||||
<p style={{ color: 'var(--color-text-muted)' }}>Sign in to start your journal.</p>
|
||||
<Link to="/login" className="home-login-link">Go to login</Link>
|
||||
<Link to="/" className="home-login-link">Go to login</Link>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -178,7 +186,7 @@ export default function HomePage() {
|
||||
onKeyDown={handleTitleKeyDown}
|
||||
enterKeyHint="next"
|
||||
ref={titleInputRef}
|
||||
disabled={phase !== 'idle'}
|
||||
disabled={phase !== 'idle' || isTourActive}
|
||||
/>
|
||||
<textarea
|
||||
id="tour-content-textarea"
|
||||
@@ -188,7 +196,7 @@ export default function HomePage() {
|
||||
onChange={(e) => setEntry(e.target.value)}
|
||||
enterKeyHint="enter"
|
||||
ref={contentTextareaRef}
|
||||
disabled={phase !== 'idle'}
|
||||
disabled={phase !== 'idle' || isTourActive}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -227,7 +235,7 @@ export default function HomePage() {
|
||||
id="tour-save-btn"
|
||||
className="journal-write-btn"
|
||||
onClick={handleWrite}
|
||||
disabled={phase !== 'idle' || !title.trim() || !entry.trim()}
|
||||
disabled={phase !== 'idle' || isTourActive || !title.trim() || !entry.trim()}
|
||||
>
|
||||
{phase === 'saving' ? 'Saving...' : 'Save Entry'}
|
||||
</button>
|
||||
|
||||
@@ -13,7 +13,7 @@ export default function LoginPage() {
|
||||
|
||||
useEffect(() => {
|
||||
if (loading) return
|
||||
if (user) navigate('/', { replace: true })
|
||||
if (user) navigate('/write', { replace: true })
|
||||
}, [user, loading, navigate])
|
||||
|
||||
async function handleGoogleSignIn() {
|
||||
|
||||
@@ -71,9 +71,8 @@ export default function SettingsPage() {
|
||||
}, [])
|
||||
|
||||
const handleSeeTutorial = () => {
|
||||
localStorage.removeItem('gj-onboarding-done')
|
||||
localStorage.removeItem('gj-tour-pending-step')
|
||||
navigate('/')
|
||||
localStorage.setItem('gj-force-tour', 'true')
|
||||
navigate('/write')
|
||||
}
|
||||
|
||||
const displayName = mongoUser?.displayName || user?.displayName || 'User'
|
||||
|
||||
Reference in New Issue
Block a user