1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-08 22:09:06 +00:00

Update for Flutter 3.10 beta (#1746)

## Pre-launch Checklist

- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] All existing and new tests are passing.

---------

Co-authored-by: David Iglesias <ditman@gmail.com>
Co-authored-by: Mark Thompson <2554588+MarkTechson@users.noreply.github.com>
Co-authored-by: John Ryan <ryjohn@google.com>
This commit is contained in:
Brett Morgan
2023-05-11 06:16:31 +10:00
committed by GitHub
parent 474756ce04
commit 36e7a6ab04
188 changed files with 1779 additions and 1968 deletions

View File

@@ -101,29 +101,30 @@ class CalculatorEngine extends StateNotifier<CalculatorState> {
final exp = parser.parse(state.buffer);
final result = exp.evaluate(EvaluationType.REAL, cm) as double;
if (result.isInfinite) {
state = state.copyWith(
error: 'Result is Infinite',
buffer: '',
mode: CalculatorEngineMode.result,
);
} else if (result.isNaN) {
state = state.copyWith(
error: 'Result is Not a Number',
buffer: '',
mode: CalculatorEngineMode.result,
);
} else {
final resultStr = result.ceil() == result
? result.toInt().toString()
: result.toString();
state = state.copyWith(
buffer: resultStr,
switch (result) {
case double(isInfinite: true):
state = state.copyWith(
error: 'Result is Infinite',
buffer: '',
mode: CalculatorEngineMode.result,
calcHistory: [
'${state.buffer} = $resultStr',
...state.calcHistory,
]);
);
case double(isNaN: true):
state = state.copyWith(
error: 'Result is Not a Number',
buffer: '',
mode: CalculatorEngineMode.result,
);
default:
final resultStr = result.ceil() == result
? result.toInt().toString()
: result.toString();
state = state.copyWith(
buffer: resultStr,
mode: CalculatorEngineMode.result,
calcHistory: [
'${state.buffer} = $resultStr',
...state.calcHistory,
]);
}
} catch (err) {
state = state.copyWith(
@@ -465,9 +466,10 @@ class CalcButton extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final buttonConstructor = type == CalcButtonType.elevated
? ElevatedButton.new
: OutlinedButton.new;
final buttonConstructor = switch (type) {
CalcButtonType.elevated => ElevatedButton.new,
_ => OutlinedButton.new,
};
return SizedBox.expand(
child: Padding(