以下のルールに従ってドキュメンテーションコメントとインラインコメントを記述してください。
コードを生成したり修正したりする時に必ずコメントを記述してください。 コメントを記述するように指示されたときも必ず記述してください。
| import 'package:flutter/material.dart'; | |
| void main() { | |
| runApp( | |
| MaterialApp( | |
| home: Scaffold( | |
| appBar: AppBar( | |
| title: Text('Text Widget サンプル'), | |
| ), | |
| body: SingleChildScrollView( // スクロール可能にする |
| testWidget('my test', (tester) async { | |
| final robot = MyWidgetRobot(tester); | |
| await robot.show(); | |
| await robot.tapHelloWorldButton(); | |
| robot.expectHelloWorldAppears(); | |
| }); |
| testWidget('my test', (tester) async { | |
| await tester.pumpWidget(MaterialApp(home: MyWidget())); | |
| await tester.tap(find.byKey(const Key('my_widget_key'))); | |
| await tester.pumpAndSettle(); | |
| expect(find.text('Hello, World!'), findsOneWidget); | |
| }); |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_hooks/flutter_hooks.dart'; | |
| import 'package:use_reducer_example/store_injector.dart'; | |
| import 'reducer.dart'; | |
| final itemsForDropdown1 = ['A', 'B', 'C']; | |
| final itemsForDropdown2 = ['1', '2', '3']; | |
| class MyFormUseReducerWithStoreInjectorView extends HookWidget { |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_hooks/flutter_hooks.dart'; | |
| typedef Aspect<State> = bool Function(State oldState, State newState); | |
| typedef ListenState<State, Selected> = Selected Function(State state); | |
| bool unaspect(dynamic oldState, dynamic newState) => false; | |
| class StoreInjector<State, Action> extends StatelessWidget { | |
| const StoreInjector({super.key, required this.store, required this.child}); |
| import 'package:equatable/equatable.dart'; | |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_hooks/flutter_hooks.dart'; | |
| class MyFormState extends Equatable { | |
| const MyFormState( | |
| this.formKey, | |
| this.textInputController, [ | |
| this.dropdown1Value, | |
| this.textInput, |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_hooks/flutter_hooks.dart'; | |
| import 'package:use_reducer_example/reducer.dart'; | |
| final itemsForDropdown1 = ['A', 'B', 'C']; | |
| final itemsForDropdown2 = ['1', '2', '3']; | |
| class MyFormUseReducerView extends HookWidget { | |
| const MyFormUseReducerView({super.key}); | |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_hooks/flutter_hooks.dart'; | |
| import 'package:use_reducer_example/reducer.dart'; | |
| final itemsForDropdown1 = ['A', 'B', 'C']; | |
| final itemsForDropdown2 = ['1', '2', '3']; | |
| enum Stage { dropdown1, textInput, dropdown2, finished } | |
| class MyFormUseStateView extends HookWidget { |
| local function Split (inputstr, sep) | |
| if sep == nil then | |
| sep = "%s" | |
| end | |
| local t={} | |
| for str in string.gmatch(inputstr, "([^"..sep.."]+)") do | |
| table.insert(t, str) | |
| end | |
| return t | |
| end |