All files / mobile.startup/amcOutreach AmcEnableForm.js

100% Statements 7/7
100% Branches 0/0
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50  1x 1x 1x                                     4x         12x                     4x                   1x  
const
	Button = require( '../Button' ),
	util = require( '../util' ),
	View = require( '../View' );
 
/**
 * @typedef {Object} FormField
 * @property {string} name
 * @property {string} value
 */
 
/**
 * @param {Object} options
 * @param {string} options.postUrl Form will POST to this endpoint
 * @param {FormField[]} options.fields An array of hidden form fields
 * @param {string} options.buttonLabel Label for submit button
 * submitted
 * @extends View
 */
class AmcEnableForm extends View {
	/** @inheritdoc */
	get isTemplateMode() {
		return true;
	}
 
	/** @inheritdoc */
	get template() {
		return util.template( `
<form class="amc-enable-form" action="{{postUrl}}" method="POST">
	{{#fields}}
		<input type="hidden" name="{{name}}" value="{{value}}">
	{{/fields}}
</form>
		` );
	}
 
	/** @inheritdoc */
	postRender() {
		this.$el.append(
			new Button( {
				tagName: 'button',
				progressive: true,
				label: this.options.buttonLabel
			} ).$el
		);
	}
}
 
module.exports = AmcEnableForm;