Skip to content

Commit

Permalink
Updates theme and RichTextEditingController references (rebase)
Browse files Browse the repository at this point in the history
  • Loading branch information
ggirotto committed Nov 17, 2021
1 parent 68b047d commit 7f2b337
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 10 deletions.
15 changes: 8 additions & 7 deletions lib/application/widgets/theme/memo_terminal.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:layoutr/common_layout.dart';
import 'package:memo/application/constants/dimensions.dart' as dimens;
import 'package:memo/application/constants/images.dart' as images;
import 'package:memo/application/constants/strings.dart' as strings;
import 'package:memo/application/hooks/rich_text_field_controller_hook.dart';
import 'package:memo/application/theme/theme_controller.dart';
import 'package:memo/application/utils/bottom_sheet.dart';
import 'package:memo/application/widgets/theme/custom_button.dart';
Expand All @@ -14,7 +15,7 @@ import 'package:memo/application/widgets/theme/terminal_window.dart';
/// A terminal-styled component that presents a `Memo` question and answer that can be updated.
///
/// Use [questionController] and [answerController] to control the Memo content being edited.
class MemoTerminal extends ConsumerWidget {
class MemoTerminal extends HookConsumerWidget {
const MemoTerminal({
required this.memoIndex,
this.questionController,
Expand All @@ -27,10 +28,10 @@ class MemoTerminal extends ConsumerWidget {
final int memoIndex;

/// Controls the `Memo` question content.
final TextEditingController? questionController;
final RichTextFieldController? questionController;

/// Controls the `Memo` answer content.
final TextEditingController? answerController;
final RichTextFieldController? answerController;

/// Triggers when the current memo should be removed from the Collection Memos.
final VoidCallback? onRemove;
Expand All @@ -39,10 +40,10 @@ class MemoTerminal extends ConsumerWidget {

@override
Widget build(BuildContext context, WidgetRef ref) {
final theme = useTheme(ref);
final theme = ref.watch(themeController);
final textTheme = Theme.of(context).textTheme;

final questionController = this.questionController ?? useTextEditingController();
final questionController = this.questionController ?? useRichTextEditingController();
final questionTitle = Text(
strings.updateMemoQuestionTitle(memoIndex),
style: textTheme.bodyText1?.copyWith(color: theme.secondarySwatch),
Expand All @@ -60,7 +61,7 @@ class MemoTerminal extends ConsumerWidget {
],
);

final answerController = this.answerController ?? useTextEditingController();
final answerController = this.answerController ?? useRichTextEditingController();
final answerTitle = Text(
strings.updateMemoAnswer,
style: textTheme.bodyText1?.copyWith(color: theme.primarySwatch),
Expand Down
2 changes: 1 addition & 1 deletion lib/application/widgets/theme/terminal_window.dart
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class _TerminalHeader extends ConsumerWidget {

@override
Widget build(BuildContext context, WidgetRef ref) {
final theme = useTheme(ref);
final theme = ref.watch(themeController);

final pseudoActions = List.generate(
_actionsAmount,
Expand Down
6 changes: 4 additions & 2 deletions test/application/widgets/theme/memo_terminal_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:memo/application/constants/strings.dart' as strings;
import 'package:memo/application/widgets/theme/custom_button.dart';
import 'package:memo/application/widgets/theme/destructive_button.dart';
import 'package:memo/application/widgets/theme/memo_terminal.dart';
import 'package:memo/application/widgets/theme/rich_text_field.dart';
import 'package:mocktail/mocktail.dart';

import '../../../utils/fakes.dart';
Expand All @@ -14,8 +15,9 @@ void main() {
const hugeFakeText = r'A\nHuge\nFake\nText\nThat\nWill\nExpand\nThe\nRich\nText\nEditor';
const encodedText = '[{"insert":"$hugeFakeText\\n"}]';
final scrollController = ScrollController();
final questionController = TextEditingController(text: encodedText);
final answerController = TextEditingController(text: encodedText);
final questionController = RichTextFieldController(richText: encodedText, plainText: hugeFakeText);
final answerController = RichTextFieldController(richText: encodedText, plainText: hugeFakeText);

// Wraps `MemoTerminal` in a tiny SizedBox to force its content to be scrollable
final memoTerminal = SizedBox.square(
dimension: 320,
Expand Down

0 comments on commit 7f2b337

Please sign in to comment.