+ this.setState({ text: event.target.value }, () => {
+ // If pattern is provided, check for delimiter
+ if (this.props.pattern) {
+ const matches = this.state.text.match(this.props.pattern);
+ // Only create values if 1 match and the last character is a delimiter
+ // (user pressed an invalid character at the end of a token)
+ // or if multiple matches (user pasted text)
+ if (matches &&
+ (
+ matches.length > 1 ||
+ (matches.length === 1 && !this.state.text.endsWith(matches[0]))
+ )) {
+ this.createNewValue(matches.map((i) => i));
+ }
+ }
+ });