Skip to content

[codex] Implement onboarding auth flow#153

Merged
Gamius00 merged 5 commits into
release-v-1.0.3from
codex/onboarding-auth-flow
Jul 6, 2026
Merged

[codex] Implement onboarding auth flow#153
Gamius00 merged 5 commits into
release-v-1.0.3from
codex/onboarding-auth-flow

Conversation

@FleetAdmiralJakob

@FleetAdmiralJakob FleetAdmiralJakob commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Implement the Figma-style onboarding/sign-in flow as a shared auth feature module.
  • Add working drag/tap controls for onboarding range sliders and vertical drag for picker wheels.
  • Persist the expanded onboarding profile and answer set through Clerk + Convex before routing to home.

Root Cause

The previous range and picker controls were visually styled like interactive controls, but the range selector only exposed fixed tick presses and the wheel picker only supported taps. The post-signup Convex save path could also race user profile creation.

Validation

  • pnpm typecheck
  • pnpm lint
  • pnpm exec convex dev --once
  • pnpm test
  • Device verification via ADB/scrcpy: range slider changed from 30 to 60 with drag; state wheel changed from Sachsen to Niedersachsen with drag.

Summary by CodeRabbit

  • New Features

    • Reworked sign-in, registration, and onboarding into a smoother guided flow with email verification.
    • Expanded onboarding to collect more learner details, including school type, grade, study habits, goals, and available study time.
    • Added richer visuals and icon support throughout the auth and onboarding experience.
  • Bug Fixes

    • Improved syncing after signup so profile and onboarding data are saved more reliably.
    • Updated date/time and form handling for more consistent behavior across devices.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: dd923ee9-7dfb-499c-9deb-0b5bf1e4b88b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • ✅ Review completed - (🔄 Check again to review again)
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/onboarding-auth-flow

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.

@Gamius00
Gamius00 marked this pull request as ready for review July 6, 2026 11:59
@Gamius00

Gamius00 commented Jul 6, 2026

Copy link
Copy Markdown
Member

Tests

Summary

  • Refined the auth/onboarding flow to better match the Figma visual direction.
  • Added native picker styling for Bundesland and Klassenstufe using a shared picker component.
  • Reworked the learning-duration selector into a snapping horizontal carousel with 3h support.
  • Cleaned up onboarding typography, chip styling, button text colors, and PlanFit card layout.
  • Fixed the native date/time picker sheet so it anchors at the bottom of the screen

Verification

  • pnpm typecheck
  • pnpm lint
  • Targeted onboarding/Convex tests
  • Simulator spot checks with Computer Use for chip screens, PlanFit, buttons, and picker-related screens.

@Gamius00 Gamius00 self-assigned this Jul 6, 2026
@Gamius00 Gamius00 added the ready-for-agent Fully specified, ready for an AFK agent label Jul 6, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/features/auth/dayova-auth-flow.tsx`:
- Around line 2208-2263: Add checkbox accessibility semantics to the GoalList
row Pressable so screen readers announce selection state like in ChipCloud. In
GoalList, set accessibilityRole to checkbox and pass accessibilityState with
checked based on the selected value, while keeping the existing onPress toggle
behavior and visual selected styling unchanged.
- Around line 524-526: The isValidName validator currently uses a Latin-1-only
regex, which rejects many valid German-market names with extended Latin
characters. Update the name check in dayova-auth-flow.tsx to use a Unicode-aware
pattern (for example, property escapes) while still preserving the existing
length and allowed punctuation behavior. Keep the change localized to
isValidName so the name step accepts valid non-Latin-1 characters without
broadening unrelated validation.
- Around line 1890-2055: The progress ring in RangeSelector saturates because
its dash length is based on selected * 3.5, so durations near the upper end all
render as a full circle. Update the ring calculation in RangeSelector to
normalize the selected value against the available duration range (using values,
the min/max options, or equivalent bounds) and map that ratio to the circle
circumference instead of using a raw multiplier. Keep the minimum visual floor
if needed, but ensure larger durations still produce distinct progress values
across the full set.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 83ed6acc-4d40-4d61-bfc9-2974bc909371

📥 Commits

Reviewing files that changed from the base of the PR and between ce88703 and 4ba372f.

⛔ Files ignored due to path filters (5)
  • assets/onboarding/dayova-y.png is excluded by !**/*.png
  • assets/onboarding/intro-path.svg is excluded by !**/*.svg
  • assets/onboarding/intro-tasks.svg is excluded by !**/*.svg
  • assets/onboarding/intro-upload.svg is excluded by !**/*.svg
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • convex/users.ts
  • docs/contexts/auth/CONTEXT.md
  • metro.config.js
  • package.json
  • src/app/(auth)/index.tsx
  • src/app/(auth)/login.tsx
  • src/app/(auth)/onboarding.tsx
  • src/app/(auth)/register.tsx
  • src/app/_layout.tsx
  • src/components/onboarding/onboarding-flow.test.ts
  • src/components/onboarding/onboarding-flow.ts
  • src/components/onboarding/onboarding-ui.tsx
  • src/components/ui/date-time-picker-sheet.tsx
  • src/components/ui/icon.tsx
  • src/context/AuthContext.tsx
  • src/context/OnboardingContext.tsx
  • src/features/auth/dayova-auth-flow.tsx
  • src/types/svg.d.ts

Comment thread src/features/auth/dayova-auth-flow.tsx
Comment thread src/features/auth/dayova-auth-flow.tsx
Comment thread src/features/auth/dayova-auth-flow.tsx
@Gamius00
Gamius00 merged commit c7062e6 into release-v-1.0.3 Jul 6, 2026
1 check passed
@FleetAdmiralJakob FleetAdmiralJakob mentioned this pull request Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-agent Fully specified, ready for an AFK agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants