toClassName method

String toClassName()

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;
}