toClassName method
Returns a String representation of the built className, which includes any added classes, and none of the blacklisted classes.
Does not check for / remove duplicate CSS classes.
Necessary to convert a ClassNameBuilder
instance into a valid CssClassPropsMixin.className value:
@override
render() {
var classes = forwardingClassNameBuilder()
..add('foo')
..add('foo--is-active', state.isActive)
..add('foo--is-disabled', state.isDisabled);
return (Dom.div()
..addProps(copyUnconsumedDomProps())
..className = classes.toClassName()
)(props.children);
}
Related: toClassNameBlacklist
Implementation
String toClassName() {
String className = _classNamesBuffer.toString();
if (_blacklistBuffer != null && _blacklistBuffer!.isNotEmpty) {
List blacklistedClasses = splitSpaceDelimitedString(_blacklistBuffer.toString());
className = splitSpaceDelimitedString(className)
.where((cssClass) => !blacklistedClasses.contains(cssClass))
.join(' ');
}
return className;
}