buildEditorToolbarActions function

List<Widget> buildEditorToolbarActions({
  1. required EditorToolbarState state,
  2. required EditorActionDispatcher actions,
  3. required List<EditorActionSpec> actionSpecs,
})

Implementation

List<Widget> buildEditorToolbarActions({
  required EditorToolbarState state,
  required EditorActionDispatcher actions,
  required List<EditorActionSpec> actionSpecs,
}) {
  final sections = _sectionsInOrder(actionSpecs, state);

  if (state.compact) {
    return [
      _CompactOverflow(
        state: state,
        actions: actions,
        sections: sections,
        allActions: actionSpecs,
      ),
    ];
  }

  final widgets = <Widget>[];

  for (final section in sections) {
    if (section == EditorToolbarSection.add) {
      widgets.add(
        _InsertActionMenu(
          state: state,
          actions: actions,
          allActions: actionSpecs,
        ),
      );
      continue;
    }

    if (_renderAsIconButtons(section)) {
      widgets.addAll(
        _buildIconButtons(
          actions: actions,
          state: state,
          section: section,
          allActions: actionSpecs,
        ),
      );
      continue;
    }

    final menu = _buildSectionMenu(
      actions: actions,
      state: state,
      section: section,
      allActions: actionSpecs,
    );
    if (menu != null) widgets.add(menu);
  }

  return widgets;
}