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:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user