The following code is this component's initial HTML structure. Remember you can change this structure any time by using the template()
component built-in function .
Copy const choices = this . props . choices .map ((choice) => {
if ( typeof choice .Clickable === 'function' ) {
return new Promise ((resolve , reject) => {
this . engine .assertAsync ( choice .Clickable , this .engine) .then (() => {
resolve ( `<button data-do=" ${ choice .Do } " ${ choice .Class ? `class=" ${ choice .Class } "` : '' } data-choice=" ${ choice ._key } "> ${ choice .Text } </button>` );
}) .catch (() => {
resolve ( `<button data-do=" ${ choice .Do } " ${ choice .Class ? `class=" ${ choice .Class } "` : '' } data-choice=" ${ choice ._key } " disabled> ${ choice .Text } </button>` );
});
});
}
return Promise .resolve ( `<button data-do=" ${ choice .Do } " ${ choice .Class ? `class=" ${ choice .Class } "` : '' } data-choice=" ${ choice ._key } "> ${ choice .Text } </button>` );
});
return Promise .all (choices) .then ((choices) => `
<div data-content="wrapper">
${ choices .join ( '' ) }
</div>
` );