Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThis change refactors form submission controls across multiple settings components by replacing separate Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant Provider as OnboardingEnvironmentSettingsProvider
participant ProjectData as useProjectData
participant Query as useLiveQuery
participant Mutations as buildSettingsMutations
participant Context as EnvironmentContext.Provider
User->>Provider: Component mounts
Provider->>ProjectData: Retrieve project environments
ProjectData-->>Provider: Environment list
Provider->>Query: Query production environment settings
Query-->>Provider: Settings loaded
Provider->>Context: Provide settings via context
Context-->>User: Settings available to consumers
Note over Provider,Context: On production settings update:
Provider->>Mutations: Build mutations for non-prod envs
Mutations-->>Provider: Array of mutation promises
Provider->>Mutations: Execute all mutations in parallel
Mutations-->>Provider: Changes synced
Provider->>Context: Update context with new state
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Comment |
8b8a6bb to
bad2566
Compare
d46f025 to
09b4777
Compare
bad2566 to
aec8a3c
Compare
09b4777 to
aa3d88f
Compare
aa3d88f to
c654a92
Compare
aec8a3c to
6ba9cf1
Compare
6ba9cf1 to
bf06587
Compare
c790e8d to
61a2959
Compare
a0fcfcb to
fe565ce
Compare
5f2e4c4 to
fa20f12
Compare
fe565ce to
00949fc
Compare
00949fc to
fe5ceef
Compare
fe5ceef to
58ed410
Compare
Merge activity
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@web/apps/dashboard/app/`(app)/[workspaceSlug]/projects/onboarding/steps/onboarding-environment-provider.tsx:
- Around line 70-81: The code updates prevSettingsRef.current too early — move
the assignment of prevSettingsRef.current = current so it happens only after
Promise.all(mutations) resolves successfully; keep using prev =
prevSettingsRef.current to skip initial load, build mutations via
buildSettingsMutations(envIds, prev, current) as before, then await
Promise.all(mutations) (or handle its returned promise) and only on success set
prevSettingsRef.current = current; also replace the bare console.error with
structured error handling that logs the error and triggers retry/rollback logic
for failed env updates (e.g., re-queue failed envIds or surface an actionable
error).
ℹ️ Review info
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (19)
web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/advanced-settings/custom-domains/index.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/advanced-settings/env-vars/index.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/build-settings/dockerfile-settings.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/build-settings/root-directory-settings.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/command.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/cpu.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/healthcheck/index.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/instances.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/memory.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/port-settings.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/regions.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/scaling.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/runtime-settings/storage.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/sentinel-settings/keyspaces.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/components/shared/form-setting-card.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/settings/environment-provider.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/onboarding/steps/configure-deployment.tsxweb/apps/dashboard/app/(app)/[workspaceSlug]/projects/onboarding/steps/onboarding-environment-provider.tsxweb/apps/dashboard/lib/collections/deploy/environment-settings.ts

What does this PR do?
Refactors form setting cards to use a unified save state system instead of separate
canSaveandisSavingboolean props. Introduces aresolveSaveStatefunction that evaluates multiple conditions to determine the appropriate save button state, and adds tooltip support to show disabled reasons.The new system provides better user feedback by displaying specific reasons why the save button is disabled (e.g., "No changes to save", "Decrypting values…", "Select at least one region before setting instance count").
Also adds an onboarding-specific environment provider that syncs production settings to other environments during project setup.
Type of change
How should this be tested?
Checklist
Required
pnpm buildpnpm fmtmake fmton/godirectoryconsole.logsgit pull origin mainAppreciated