1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-08 13:58:47 +00:00

Refactor Simplistic_Editor (#1375)

* refactor out FormattingToolbar and TextEditingDeltaHistoryView from main`

* replace togglebuttonstatemanager and texteditingdeltahistorymanager with appstatemanager

* fix up tests

* clean up

* Add ReplacementTextEditingController to AppState

* formatting

* `dart format`

Co-authored-by: Renzo Olivares <roliv@google.com>
Co-authored-by: Brett Morgan <brettmorgan@google.com>
This commit is contained in:
Renzo Olivares
2022-08-11 01:06:32 -07:00
committed by GitHub
parent e84e396a1f
commit c00e838c51
9 changed files with 526 additions and 482 deletions

View File

@@ -0,0 +1,47 @@
import 'package:flutter/material.dart';
import 'app_state.dart';
import 'app_state_manager.dart';
/// The toggle buttons that can be selected.
enum ToggleButtonsState {
bold,
italic,
underline,
}
class FormattingToolbar extends StatelessWidget {
const FormattingToolbar({super.key});
@override
Widget build(BuildContext context) {
final AppStateManager manager = AppStateManager.of(context);
return Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ToggleButtons(
borderRadius: const BorderRadius.all(Radius.circular(4.0)),
isSelected: [
manager.appState.toggleButtonsState
.contains(ToggleButtonsState.bold),
manager.appState.toggleButtonsState
.contains(ToggleButtonsState.italic),
manager.appState.toggleButtonsState
.contains(ToggleButtonsState.underline),
],
onPressed: (index) => AppStateWidget.of(context)
.updateToggleButtonsStateOnButtonPressed(index),
children: const [
Icon(Icons.format_bold),
Icon(Icons.format_italic),
Icon(Icons.format_underline),
],
),
],
),
);
}
}