11import  {  window ,  Disposable ,  QuickInput ,  QuickInputButtons ,  ExtensionContext  }  from  'vscode' ; 
2+ import  {  AppConstants  }  from  './utilities/constants' ; 
23
34export  async  function  newResourceInput ( context : ExtensionContext )  { 
45
@@ -9,7 +10,7 @@ export async function newResourceInput(context: ExtensionContext) {
910		totalSteps : number ; 
1011		key : string ; 
1112		value : string ; 
12-          comment : string  |  string ; 
13+ 		 comment : string  |  string ; 
1314	} 
1415
1516	async  function  collectInputs ( )  { 
@@ -18,45 +19,45 @@ export async function newResourceInput(context: ExtensionContext) {
1819		return  state  as  State ; 
1920	} 
2021
21- 	const  title  =  'Add new resource' ; 
22+ 	const  title  =  AppConstants . addNewTitle ; 
2223
2324	async  function  inputKey ( input : MultiStepInput ,  state : Partial < State > )  { 
24-          state . key  =  await  input . showInputBox ( { 
25-              title, 
26-              step : 1 , 
27-              totalSteps : 3 , 
28-              value : state . key  ||  '' , 
29-              prompt : 'Provide a Key for the resource' , 
30-              validate : validateNotNull , 
31-              shouldResume : shouldResume 
32-          } ) ; 
33-          return  ( input : MultiStepInput )  =>  inputValue ( input ,  state ) ; 
34-      } 
35- 
36-      async  function  inputValue ( input : MultiStepInput ,  state : Partial < State > )  { 
37-          state . value  =  await  input . showInputBox ( { 
38-              title, 
39-              step : 2 , 
40-              totalSteps : 3 , 
41-              value : state . value  ||  '' , 
42-              prompt : 'Provide a Value for the resource' , 
43-              validate : validateNotNull , 
44-              shouldResume : shouldResume 
45-          } ) ; 
46-          return  ( input : MultiStepInput )  =>  inputComment ( input ,  state ) ; 
47-      } 
48- 
49-      async  function  inputComment ( input : MultiStepInput ,  state : Partial < State > )  { 
50-          state . comment  =  await  input . showInputBox ( { 
51-              title, 
52-              step : 3 , 
53-              totalSteps : 3 , 
54-              value : state . comment  ||  '' , 
55-              prompt : 'Provide a Comment for the resource' , 
56-              validate : validateNotNull , 
57-              shouldResume : shouldResume 
58-          } ) ; 
59-      } 
25+ 		 state . key  =  await  input . showInputBox ( { 
26+ 			 title, 
27+ 			 step : 1 , 
28+ 			 totalSteps : 3 , 
29+ 			 value : state . key  ||  '' , 
30+ 			 prompt : AppConstants . promptKeyName , 
31+ 			 validate : validateNotNull , 
32+ 			 shouldResume : shouldResume 
33+ 		 } ) ; 
34+ 		 return  ( input : MultiStepInput )  =>  inputValue ( input ,  state ) ; 
35+ 	 } 
36+ 
37+ 	 async  function  inputValue ( input : MultiStepInput ,  state : Partial < State > )  { 
38+ 		 state . value  =  await  input . showInputBox ( { 
39+ 			 title, 
40+ 			 step : 2 , 
41+ 			 totalSteps : 3 , 
42+ 			 value : state . value  ||  '' , 
43+ 			 prompt : AppConstants . promptValueName , 
44+ 			 validate : validateNotNull , 
45+ 			 shouldResume : shouldResume 
46+ 		 } ) ; 
47+ 		 return  ( input : MultiStepInput )  =>  inputComment ( input ,  state ) ; 
48+ 	 } 
49+ 
50+ 	 async  function  inputComment ( input : MultiStepInput ,  state : Partial < State > )  { 
51+ 		 state . comment  =  await  input . showInputBox ( { 
52+ 			 title, 
53+ 			 step : 3 , 
54+ 			 totalSteps : 3 , 
55+ 			 value : state . comment  ||  '' , 
56+ 			 prompt : AppConstants . promptCommentName , 
57+ 			 validate : validateNotNull , 
58+ 			 shouldResume : shouldResume 
59+ 		 } ) ; 
60+ 	 } 
6061
6162	function  shouldResume ( )  { 
6263		// Could show a notification with the option to resume. 
@@ -71,7 +72,7 @@ export async function newResourceInput(context: ExtensionContext) {
7172	} 
7273
7374	const  state  =  await  collectInputs ( ) ; 
74- 	 
75+ 
7576	return  state ; 
7677} 
7778
@@ -138,7 +139,7 @@ class MultiStepInput {
138139		} 
139140	} 
140141
141- 	async  showInputBox < P  extends  InputBoxParameters > ( {  title,  step,  totalSteps,  value,  prompt,  validate,  buttons ,   shouldResume,  placeholder } : P )  { 
142+ 	async  showInputBox < P  extends  InputBoxParameters > ( {  title,  step,  totalSteps,  value,  prompt,  validate,  shouldResume,  placeholder } : P )  { 
142143		const  disposables : Disposable [ ]  =  [ ] ; 
143144		try  { 
144145			return  await  new  Promise < string  |  ( P  extends  {  buttons : ( infer I ) [ ]  }  ? I  : never ) > ( ( resolve ,  reject )  =>  { 
@@ -149,8 +150,7 @@ class MultiStepInput {
149150				input . value  =  value  ||  '' ; 
150151				input . prompt  =  prompt ; 
151152				input . buttons  =  [ 
152- 					...( this . steps . length  >  1  ? [ QuickInputButtons . Back ]  : [ ] ) , 
153- 					...( buttons  ||  [ ] ) 
153+ 					...( this . steps . length  >  1  ? [ QuickInputButtons . Back ]  : [ ] ) 
154154				] ; 
155155				input . placeholder  =  placeholder ; 
156156				let  validating  =  validate ( '' ) ; 
0 commit comments