Skip to content

fix: add icon list#5163

Merged
chronark merged 12 commits intomainfrom
feat/onboarding-page
Mar 3, 2026
Merged

fix: add icon list#5163
chronark merged 12 commits intomainfrom
feat/onboarding-page

Conversation

@ogzhanolguncu
Copy link
Contributor

@ogzhanolguncu ogzhanolguncu commented Mar 2, 2026

What does this PR do?

Adds a comprehensive project onboarding flow with GitHub integration. The onboarding includes a step wizard for creating projects, connecting GitHub repositories, and selecting repositories with branch selection. The flow features repository filtering by owner, search functionality, Dockerfile detection, and branch selection with a responsive UI that includes loading states and success notifications.

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)
  • Enhancement (small improvements)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How should this be tested?

  • Navigate to projects page with ?onboarding query parameter to trigger onboarding flow
  • Test GitHub repository selection with different owners and search queries
  • Verify Dockerfile detection works correctly for repositories
  • Test branch selection dropdown functionality
  • Verify success notifications appear when GitHub is connected
  • Test repository filtering and search functionality

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read Contributing Guide
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand areas
  • Ran pnpm build
  • Ran pnpm fmt
  • Ran make fmt on /go directory
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Unkey Docs if changes were necessary

@vercel
Copy link

vercel bot commented Mar 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dashboard Ready Ready Preview, Comment Mar 3, 2026 7:42am

Request Review

@ogzhanolguncu ogzhanolguncu mentioned this pull request Mar 2, 2026
19 tasks
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 2, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between db737e8 and 8bed7eb.

📒 Files selected for processing (16)
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/index.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/onboarding-header.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/connect-github.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/create-project.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/onboarding-links.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/select-repo/index.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/select-repo/repo-list-item.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/select-repo/skeleton.tsx
  • web/apps/dashboard/app/(app)/[workspaceSlug]/projects/projects-client.tsx
  • web/apps/dashboard/app/(app)/integrations/github/callback/page.tsx
  • web/apps/dashboard/components/virtual-table/components/empty-state.tsx
  • web/apps/dashboard/lib/github.ts
  • web/apps/dashboard/lib/trpc/routers/github.ts
  • web/internal/icons/src/icons/discord.tsx
  • web/internal/icons/src/index.ts
  • web/internal/ui/src/components/step-wizard/step-wizard.tsx

📝 Walkthrough

Walkthrough

This PR introduces a multi-step GitHub onboarding wizard for projects, featuring UI components for project creation, GitHub connection, and repository selection. It includes GitHub API helpers with Zod schema validation, new TRPC procedures for repository operations, and integrates the onboarding flow into the projects client.

Changes

Cohort / File(s) Summary
Onboarding Wizard Components
web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/index.tsx, onboarding-header.tsx
Core onboarding page with StepWizard orchestration and header component that renders progress, success banners, and step-specific titles/subtitles with icon rows.
Onboarding Step Components
web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/create-project.tsx, connect-github.tsx, onboarding-links.tsx
Step components for project creation (with form validation and slug generation), GitHub connection (with app installation link), and documentation/Discord links.
Repository Selection Step
web/apps/dashboard/app/(app)/[workspaceSlug]/projects/(onboarding)/steps/select-repo/index.tsx, repo-list-item.tsx, skeleton.tsx
Repository selection UI with owner filtering, search, branch selection, Dockerfile detection, and loading skeletons.
GitHub API Helpers & Validation
web/apps/dashboard/lib/github.ts
Introduces Zod schemas for GitHub API responses (repositories, access tokens, branches, tree) and exports GitHubRepository type; adds validation-based parsing and new utility functions getRepositoryTree and getRepositoryBranches.
TRPC GitHub Router
web/apps/dashboard/lib/trpc/routers/github.ts
Adds new getRepositoryDetails procedure to fetch repository structure and branches; extends listRepositories with pushedAt field.
Integration & Supporting Components
web/apps/dashboard/app/(app)/[workspaceSlug]/projects/projects-client.tsx, web/apps/dashboard/app/(app)/integrations/github/callback/page.tsx, web/apps/dashboard/components/virtual-table/components/empty-state.tsx
Conditional rendering of onboarding flow based on query parameter; removes post-mutation redirect in GitHub callback; updates docs link in empty state.
Icon & UI Library Updates
web/internal/icons/src/icons/discord.tsx, web/internal/icons/src/index.ts, web/internal/ui/src/components/step-wizard/step-wizard.tsx
Adds Discord icon component, exports it, and refactors StepWizard layout transitions from absolute positioning to flow-based with improved overflow handling.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Onboarding as Onboarding Page
    participant CreateProject as CreateProjectStep
    participant ConnectGH as ConnectGithubStep
    participant SelectRepo as SelectRepo
    participant TRPC as TRPC Backend
    participant GitHub as GitHub API

    User->>Onboarding: View onboarding
    activate Onboarding
    
    Onboarding->>CreateProject: Render step 1
    activate CreateProject
    User->>CreateProject: Enter project name
    CreateProject->>TRPC: Insert project
    TRPC->>TRPC: Create project record
    TRPC-->>CreateProject: Project created with ID
    CreateProject->>Onboarding: onProjectCreated(projectId)
    Onboarding->>Onboarding: setProjectId(projectId)
    deactivate CreateProject
    
    Onboarding->>ConnectGH: Render step 2 with projectId
    activate ConnectGH
    User->>ConnectGH: Click "Connect GitHub"
    ConnectGH->>GitHub: Redirect to GitHub App install<br/>(with projectId in state)
    deactivate ConnectGH
    
    GitHub-->>User: Complete installation
    User->>Onboarding: Return to app
    
    Onboarding->>SelectRepo: Render step 3 with projectId
    activate SelectRepo
    SelectRepo->>TRPC: Fetch repositories for projectId
    TRPC->>GitHub: List repositories
    GitHub-->>TRPC: Repository list
    TRPC-->>SelectRepo: Repositories with pushedAt
    
    User->>SelectRepo: Filter by owner & search
    SelectRepo->>TRPC: getRepositoryDetails(projectId, repo)
    TRPC->>GitHub: Fetch tree & branches
    GitHub-->>TRPC: Structure & branches
    TRPC-->>SelectRepo: hasDockerfile, branch list
    
    User->>SelectRepo: Select repository & branch
    SelectRepo->>TRPC: Connect repository
    TRPC->>TRPC: Store repo connection
    TRPC-->>SelectRepo: Success
    deactivate SelectRepo
    
    deactivate Onboarding
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/onboarding-page

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

@ogzhanolguncu ogzhanolguncu force-pushed the feat/onboarding-page branch from f34edea to 8bed7eb Compare March 3, 2026 07:40
@graphite-app
Copy link

graphite-app bot commented Mar 3, 2026

Merge activity

  • Mar 3, 7:40 AM UTC: Graphite rebased this pull request, because this pull request is set to merge when ready.

@chronark chronark enabled auto-merge March 3, 2026 07:40
@chronark chronark disabled auto-merge March 3, 2026 07:42
@chronark chronark merged commit 09ccb61 into main Mar 3, 2026
12 of 14 checks passed
@chronark chronark deleted the feat/onboarding-page branch March 3, 2026 07:42
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