File tree Expand file tree Collapse file tree 4 files changed +32
-8
lines changed
ember-bootstrap-constraint-validations/src/components Expand file tree Collapse file tree 4 files changed +32
-8
lines changed Original file line number Diff line number Diff line change 55
66# dependencies
77node_modules /
8+ .yalc
89
910# misc
1011/.env *
Original file line number Diff line number Diff line change 11import BaseBsForm from 'ember-bootstrap/components/bs-form' ;
2+ import { assert } from '@ember/debug' ;
23
34export default class BsForm extends BaseBsForm {
45 '__ember-bootstrap_subclass' = true ;
@@ -7,7 +8,11 @@ export default class BsForm extends BaseBsForm {
78 return true ;
89 }
910
10- async validate ( model ) {
11- throw new Error ( ) ;
11+ async validate ( model , form ) {
12+ assert ( 'Expected to receive the form element when validating.' , form instanceof HTMLFormElement ) ;
13+
14+ if ( ! form . checkValidity ( ) ) {
15+ throw new Error ( ) ;
16+ }
1217 }
1318}
Original file line number Diff line number Diff line change 11import BaseBsFormElement from 'ember-bootstrap/components/bs-form/element' ;
2+ import { action } from '@ember/object' ;
3+ import { tracked } from '@glimmer/tracking' ;
24
35export default class BsFormElement extends BaseBsFormElement {
46 '__ember-bootstrap_subclass' = true ;
57
6- get errors ( ) {
7- // let { model, property } = this.args;
8-
9- return [ 'dummy error' ] ;
8+ get controlElement ( ) {
9+ return document . getElementById ( this . formElementId ) ;
1010 }
1111
12+ @tracked
13+ errors = [ ] ;
14+
1215 get hasValidator ( ) {
1316 return true ;
1417 }
18+
19+ @action
20+ showValidationOnHandler ( ...args ) {
21+ this . _updateErrors ( ) ;
22+ super . showValidationOnHandler ( ...args ) ;
23+ }
24+
25+ _updateErrors ( ) {
26+ let { controlElement } = this ;
27+ this . errors = controlElement . validity . valid
28+ ? [ ]
29+ : [ controlElement . validationMessage ] ;
30+ }
1531}
Original file line number Diff line number Diff line change 11<div class =" container mt-4" >
22
33 <BsForm @model ={{ this.model }} @onSubmit ={{ this.submit }} @onInvalid ={{ this.invalid }} as |form|>
4- <form .element @label =" Name" @property =" name" />
5- <form .element @label =" Email" @property =" email" />
4+ <form .element @label =" Name" @property =" name" as |el|>
5+ <el .control required/>
6+ </form .element>
7+ <form .element @controlType =" email" @label =" Email" @property =" email" />
68 <form .submitButton>Submit</form .submitButton>
79 </BsForm >
810
You can’t perform that action at this time.
0 commit comments