Skip to content

Instantly share code, notes, and snippets.

@the-dagger
Created July 7, 2018 17:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save the-dagger/c8b801ae8afe4896f72ae55cbf4904f8 to your computer and use it in GitHub Desktop.
Save the-dagger/c8b801ae8afe4896f72ae55cbf4904f8 to your computer and use it in GitHub Desktop.
import 'dart:async';
import 'dart:html';
void main() {
final InputElement input = querySelector('input');
final DivElement div = querySelector('div');
div.innerHtml = "Enter a valid email";
final emailValidator =
new StreamTransformer.fromHandlers(handleData: (input, sink) {
if (input.contains("@"))
sink.add(input);
else
sink.addError("Email must have an '@' symbol!");
});
final emailDotValidator =
new StreamTransformer.fromHandlers(handleData: (input, sink) {
if (input.contains("."))
sink.add(input);
else
sink.addError("Email must have a '.' character!");
});
input.onInput
// .take(4)
.map((dynamic event) {
return event.target.value;
})
.transform(emailValidator)
.transform(emailDotValidator)
.listen((inputValue) => div.innerHtml = '',
onError: (err) => div.innerHtml = err);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment