@@ -24,6 +24,7 @@ export type VercelSettingsResult = {
2424 enabled : boolean ;
2525 hasOrgIntegration : boolean ;
2626 authInvalid ?: boolean ;
27+ disabled ?: boolean ;
2728 authError ?: string ;
2829 connectedProject ?: {
2930 id : string ;
@@ -61,6 +62,7 @@ export type VercelOnboardingData = {
6162 availableProjects : VercelAvailableProject [ ] ;
6263 hasProjectSelected : boolean ;
6364 authInvalid ?: boolean ;
65+ disabled ?: boolean ;
6466 authError ?: string ;
6567 existingVariables : Record < string , { environments : string [ ] } > ; // Environment slugs (non-archived only)
6668 gitHubAppInstallations : GitHubAppInstallation [ ] ;
@@ -131,10 +133,12 @@ export class VercelSettingsPresenter extends BasePresenter {
131133 if ( hasOrgIntegration ) {
132134 const tokenResult = await VercelIntegrationRepository . validateVercelToken ( orgIntegration ) ;
133135 if ( tokenResult . isErr ( ) || ! tokenResult . value . isValid ) {
136+ const disabled = tokenResult . isErr ( ) && tokenResult . error . reason === "disabled" ;
134137 return ok ( {
135138 enabled : true ,
136139 hasOrgIntegration : true ,
137- authInvalid : true ,
140+ authInvalid : ! disabled ,
141+ disabled,
138142 authError : tokenResult . isErr ( ) ? tokenResult . error . message : "Vercel token is invalid" ,
139143 connectedProject : undefined ,
140144 isGitHubConnected : false ,
@@ -267,6 +271,7 @@ export class VercelSettingsPresenter extends BasePresenter {
267271 connectedProject ,
268272 ] ) => {
269273 const fetchVercelData = async ( ) : Promise < {
274+ disabled ?: boolean ;
270275 customEnvironments : VercelCustomEnvironment [ ] ;
271276 autoAssignCustomDomains : boolean | null ;
272277 vercelManageAccessUrl ?: string ;
@@ -363,7 +368,12 @@ export class VercelSettingsPresenter extends BasePresenter {
363368 ) ;
364369 }
365370
371+ const disabled = [ customEnvsResult , autoAssignResult , triggerVersionResult ] . some (
372+ ( r ) => r . isErr ( ) && r . error . reason === "disabled"
373+ ) ;
374+
366375 return {
376+ disabled,
367377 customEnvironments : customEnvsResult . isOk ( ) ? customEnvsResult . value : [ ] ,
368378 autoAssignCustomDomains : autoAssignResult . isOk ( ) ? autoAssignResult . value : null ,
369379 vercelManageAccessUrl,
@@ -377,26 +387,39 @@ export class VercelSettingsPresenter extends BasePresenter {
377387 cause : error ,
378388 } ) ) . map (
379389 ( {
390+ disabled,
380391 customEnvironments,
381392 autoAssignCustomDomains,
382393 vercelManageAccessUrl,
383394 currentTriggerVersion,
384395 currentTriggerVersionFetchFailed,
385396 } ) =>
386- ( {
387- enabled : true ,
388- hasOrgIntegration,
389- authInvalid : false ,
390- connectedProject,
391- isGitHubConnected,
392- hasStagingEnvironment,
393- hasPreviewEnvironment,
394- customEnvironments,
395- autoAssignCustomDomains,
396- vercelManageAccessUrl,
397- currentTriggerVersion,
398- currentTriggerVersionFetchFailed,
399- } ) as VercelSettingsResult
397+ ( disabled
398+ ? {
399+ enabled : true ,
400+ hasOrgIntegration,
401+ authInvalid : false ,
402+ disabled : true ,
403+ connectedProject : undefined ,
404+ isGitHubConnected : false ,
405+ hasStagingEnvironment : false ,
406+ hasPreviewEnvironment : false ,
407+ customEnvironments : [ ] ,
408+ }
409+ : {
410+ enabled : true ,
411+ hasOrgIntegration,
412+ authInvalid : false ,
413+ connectedProject,
414+ isGitHubConnected,
415+ hasStagingEnvironment,
416+ hasPreviewEnvironment,
417+ customEnvironments,
418+ autoAssignCustomDomains,
419+ vercelManageAccessUrl,
420+ currentTriggerVersion,
421+ currentTriggerVersionFetchFailed,
422+ } ) as VercelSettingsResult
400423 ) ;
401424 }
402425 )
@@ -497,12 +520,14 @@ export class VercelSettingsPresenter extends BasePresenter {
497520
498521 const tokenResult = await VercelIntegrationRepository . validateVercelToken ( orgIntegration ) ;
499522 if ( tokenResult . isErr ( ) || ! tokenResult . value . isValid ) {
523+ const disabled = tokenResult . isErr ( ) && tokenResult . error . reason === "disabled" ;
500524 return {
501525 customEnvironments : [ ] ,
502526 environmentVariables : [ ] ,
503527 availableProjects : [ ] ,
504528 hasProjectSelected : false ,
505- authInvalid : true ,
529+ authInvalid : ! disabled ,
530+ disabled,
506531 authError : tokenResult . isErr ( ) ? tokenResult . error . message : "Vercel token is invalid" ,
507532 existingVariables : { } ,
508533 gitHubAppInstallations,
@@ -520,6 +545,7 @@ export class VercelSettingsPresenter extends BasePresenter {
520545 availableProjects : [ ] ,
521546 hasProjectSelected : false ,
522547 authInvalid : clientResult . error . authInvalid ,
548+ disabled : clientResult . error . reason === "disabled" ,
523549 authError : clientResult . error . authInvalid ? clientResult . error . message : undefined ,
524550 existingVariables : { } ,
525551 gitHubAppInstallations,
@@ -555,6 +581,7 @@ export class VercelSettingsPresenter extends BasePresenter {
555581 availableProjects : [ ] ,
556582 hasProjectSelected : false ,
557583 authInvalid : availableProjectsResult . error . authInvalid ,
584+ disabled : availableProjectsResult . error . reason === "disabled" ,
558585 authError : availableProjectsResult . error . authInvalid
559586 ? availableProjectsResult . error . message
560587 : undefined ,
@@ -607,6 +634,26 @@ export class VercelSettingsPresenter extends BasePresenter {
607634 } >
608635 ) ,
609636 ] ) ;
637+ const disabled =
638+ ( customEnvironmentsResult . isErr ( ) &&
639+ customEnvironmentsResult . error . reason === "disabled" ) ||
640+ ( projectEnvVarsResult . isErr ( ) && projectEnvVarsResult . error . reason === "disabled" ) ||
641+ ( sharedEnvVarsResult . isErr ( ) && sharedEnvVarsResult . error . reason === "disabled" ) ;
642+
643+ if ( disabled ) {
644+ return {
645+ customEnvironments : [ ] ,
646+ environmentVariables : [ ] ,
647+ availableProjects : availableProjectsResult . value ,
648+ hasProjectSelected : true ,
649+ disabled : true ,
650+ existingVariables : { } ,
651+ gitHubAppInstallations,
652+ isGitHubConnected,
653+ isOnboardingComplete : false ,
654+ } ;
655+ }
656+
610657 const authInvalid =
611658 ( customEnvironmentsResult . isErr ( ) && customEnvironmentsResult . error . authInvalid ) ||
612659 ( projectEnvVarsResult . isErr ( ) && projectEnvVarsResult . error . authInvalid ) ||
0 commit comments