Element _buildChannelsMenu()

in lib/playground.dart [294:344]


  Element _buildChannelsMenu(List<Channel> channels) {
    final element = querySelector('#channels-menu')!;
    element.children = [];

    final listElement = _mdcList();
    element.children.add(listElement);

    final currentChannel = queryParams.channel;

    for (final channel in channels) {
      final checkmark = SpanElement()
        ..id = ('${channel.name}-checkmark')
        ..classes.add('channel-menu-left')
        ..classes.add('mdc-list-item__graphic')
        ..children.add(
          LIElement()
            ..classes.addAll(['material-icons', 'mdc-select__icon'])
            ..tabIndex = -1
            ..attributes['role'] = 'button'
            ..text = 'check',
        );

      if (currentChannel != channel.name) {
        checkmark.classes.toggle('hide');
      }

      final menuElement = _mdcListItem(children: [
        DivElement()
          ..classes.add('channel-item-group')
          ..children = [
            checkmark,
            SpanElement()
              ..classes.add('channel-menu-right')
              ..children = [
                ParagraphElement()
                  ..classes.add('mdc-list-item__title')
                  ..text = '${channel.name} channel',
                ParagraphElement()
                  ..classes.add('mdc-list-item__details')
                  ..text =
                      'Use Flutter version ${channel.flutterVersion} and Dart '
                          'version ${channel.dartVersion}',
              ],
          ],
      ])
        ..classes.add('channel-item');
      listElement.children.add(menuElement);
    }

    return element;
  }