Guest User

Untitled

a guest
Oct 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. import * as React from "react";
  2. import * as Tripetto from "@tripetto/forms-collector";
  3. import { IText } from "tripetto-forms-text";
  4.  
  5. @Tripetto.node("tripetto-forms-text")
  6. export class Text extends Tripetto.NodeProvider<JSX.Element, IText> {
  7. public OnRender(instance: Tripetto.Instance, action: Tripetto.Await): JSX.Element {
  8. const value = this.DataAssert<string>(instance, "value");
  9.  
  10. return (
  11. <div>
  12. {this.Node.Props.Name &&
  13. this.Node.Props.NameVisible && (
  14. <label>
  15. {this.Node.Props.Name}
  16. {value.Slot.Required && <span>*</span>}
  17. </label>
  18. )}
  19. {this.Node.Props.Description && <p>{this.Node.Props.Description}</p>}
  20. <input
  21. type="text"
  22. required={value.Slot.Required}
  23. defaultValue={value.Value}
  24. placeholder={this.Node.Props.Placeholder}
  25. onChange={(e: React.ChangeEvent<HTMLInputElement>) => (value.Value = e.target.value)}
  26. onBlur={(e: React.FocusEvent<HTMLInputElement>) => ((e.target as HTMLInputElement).value = value.String)}
  27. />
  28. </div>
  29. );
  30. }
  31.  
  32. public OnValidate(instance: Tripetto.Instance): boolean {
  33. const value = this.DataAssert<string>(instance, "value");
  34.  
  35. return !value.Slot.Required || value.Value !== "";
  36. }
  37. }
Add Comment
Please, Sign In to add comment