// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
const vscode = require('vscode');

// this method is called when your extension is activated
// your extension is activated the very first time the command is executed

/**
 * @param {vscode.ExtensionContext} context
 * 
const validate = (name) => {
	if (!name) {
	  return 'Name is required';
	}
	if (name.includes(' ')) {
	  return 'Spaces are not allowed';
	}
	// no errors
	return null;
}
 
function activate(context) {

	// Use the console to output diagnostic information (console.log) and errors (console.error)
	// This line of code will only be executed once when your extension is activated
	console.log('Congratulations, your extension "reactable-stateless-components" is now active!');

	// The command has been defined in the package.json file
	// Now provide the implementation of the command with  registerCommand
	// The commandId parameter must match the command field in package.json
	let disposable = vscode.commands.registerCommand('reactable-stateless-components.createStatelessComponent', function () {
		// The code you place here will be executed every time your command is executed

		// Display a message box to the use

		const name = await vscode.window.showInputBox({prompt: 'Component Name', ignoreFocusOut: true, validateInput: validate})

		vscode.window.showInformationMessage(`Ok, lets create a component called ${name}`);
	});

	context.subscriptions.push(disposable);
}

// this method is called when your extension is deactivated
function deactivate() {}

module.exports = {
	activate,
	deactivate
}
