Skip to content

fix: remove navbar during onboarding animation#2836

Merged
HarshMN2345 merged 2 commits intomainfrom
fix-remove-navbar-during-onboarding-animation
Feb 5, 2026
Merged

fix: remove navbar during onboarding animation#2836
HarshMN2345 merged 2 commits intomainfrom
fix-remove-navbar-during-onboarding-animation

Conversation

@HarshMN2345
Copy link
Member

@HarshMN2345 HarshMN2345 commented Feb 5, 2026

What does this PR do?

(Provide a description of what this PR does.)

Test Plan

image

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

Summary by CodeRabbit

  • New Features
    • Implemented onboarding animation during project creation.
    • Navigation chrome (top header, navbar, and side navigation) automatically hides while the animation plays and returns after navigation completes for a focused setup flow.
    • Project navigation now uses a resolved route construction to ensure correct destination handling during onboarding.

@appwrite
Copy link

appwrite bot commented Feb 5, 2026

Console (appwrite/console)

Project ID: 688b7bf400350cbd60e9

Sites (1)
Site Status Logs Preview QR
 console-stage
688b7cf6003b1842c9dc
Ready Ready View Logs Preview URL QR Code

Tip

Schedule functions to run as often as every minute with cron expressions

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 5, 2026

Walkthrough

A new boolean Svelte store showOnboardingAnimation (default false) was added to the layout store. The shell component now imports this store and uses it to suppress rendering of Navbar and SideNavigation and to adjust header classes while the onboarding animation is active. The onboarding project creation page sets showOnboardingAnimation to true before navigation, constructs the destination URL using resolve('/(console)/project-[region]-[project]', { region, project }), and sets the flag back to false after the navigation delay.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: hiding the navbar component during the onboarding animation sequence, which is reflected in updates to shell.svelte's Navbar visibility conditions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-remove-navbar-during-onboarding-animation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/routes/`(console)/onboarding/create-project/+page.svelte:
- Around line 61-67: The setTimeout async callback that calls
invalidate(Dependencies.ACCOUNT) and goto(...) can throw and currently leaves
showOnboardingAnimation true; wrap the body of the setTimeout callback in a
try/catch/finally (or try { await invalidate(...); await goto(...); } catch
(err) { console.error(err) /* or use app logger */ } finally {
showOnboardingAnimation.set(false) }) so errors from invalidate or goto are
handled and the onboarding animation flag is always cleared; reference the
setTimeout callback, showOnboardingAnimation, invalidate, goto, and
Dependencies.ACCOUNT when applying the change.
🧹 Nitpick comments (1)
src/lib/layout/shell.svelte (1)

8-10: Minor: Extra blank line.

Line 10 introduces an extra blank line after the import statement. This is a very minor formatting inconsistency.

Comment on lines 61 to 67
showOnboardingAnimation.set(true);

setTimeout(async () => {
await invalidate(Dependencies.ACCOUNT);
goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
await goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
showOnboardingAnimation.set(false);
}, 3000);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Missing error handling in navigation callback could leave UI in broken state.

If invalidate() or goto() throws inside the setTimeout callback, the error is unhandled and showOnboardingAnimation remains true, permanently hiding the navbar and sidebar. The outer catch block only handles project creation errors.

🛡️ Proposed fix to add error handling
             startAnimation = true;
             showOnboardingAnimation.set(true);

             setTimeout(async () => {
-                await invalidate(Dependencies.ACCOUNT);
-                await goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
-                showOnboardingAnimation.set(false);
+                try {
+                    await invalidate(Dependencies.ACCOUNT);
+                    await goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
+                } finally {
+                    showOnboardingAnimation.set(false);
+                }
             }, 3000);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
showOnboardingAnimation.set(true);
setTimeout(async () => {
await invalidate(Dependencies.ACCOUNT);
goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
await goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
showOnboardingAnimation.set(false);
}, 3000);
showOnboardingAnimation.set(true);
setTimeout(async () => {
try {
await invalidate(Dependencies.ACCOUNT);
await goto(`${base}/project-${project.region ?? 'default'}-${project.$id}`);
} finally {
showOnboardingAnimation.set(false);
}
}, 3000);
🤖 Prompt for AI Agents
In `@src/routes/`(console)/onboarding/create-project/+page.svelte around lines 61
- 67, The setTimeout async callback that calls invalidate(Dependencies.ACCOUNT)
and goto(...) can throw and currently leaves showOnboardingAnimation true; wrap
the body of the setTimeout callback in a try/catch/finally (or try { await
invalidate(...); await goto(...); } catch (err) { console.error(err) /* or use
app logger */ } finally { showOnboardingAnimation.set(false) }) so errors from
invalidate or goto are handled and the onboarding animation flag is always
cleared; reference the setTimeout callback, showOnboardingAnimation, invalidate,
goto, and Dependencies.ACCOUNT when applying the change.

@HarshMN2345 HarshMN2345 merged commit 49b49ed into main Feb 5, 2026
4 checks passed
@HarshMN2345 HarshMN2345 deleted the fix-remove-navbar-during-onboarding-animation branch February 5, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants