1524 i still have to do too many exercises to unlock an audio message (#1562)
* feat(toolbar): moved audio to the left * feat(toolbar): move tts to the left * dev: dart formatting --------- Co-authored-by: ggurdin <ggurdin@gmail.com>pull/1593/head
parent
3424f90672
commit
5f1c1887fc
@ -0,0 +1,69 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/pressable_button.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/widgets/toolbar_button_and_progress_row.dart';
|
||||
|
||||
class ToolbarButton extends StatelessWidget {
|
||||
final MessageMode mode;
|
||||
final MessageOverlayController overlayController;
|
||||
final double buttonSize;
|
||||
|
||||
const ToolbarButton({
|
||||
required this.mode,
|
||||
required this.overlayController,
|
||||
required this.buttonSize,
|
||||
super.key,
|
||||
});
|
||||
|
||||
Color color(BuildContext context) => mode.iconButtonColor(
|
||||
context,
|
||||
overlayController.toolbarMode,
|
||||
overlayController.pangeaMessageEvent!.proportionOfActivitiesCompleted,
|
||||
overlayController.isPracticeComplete,
|
||||
);
|
||||
|
||||
bool get enabled => mode.isUnlocked(
|
||||
overlayController.pangeaMessageEvent!.proportionOfActivitiesCompleted,
|
||||
overlayController.isPracticeComplete,
|
||||
);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Tooltip(
|
||||
message: mode.tooltip(context),
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
PressableButton(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
depressed: !enabled || mode == overlayController.toolbarMode,
|
||||
color: color(context),
|
||||
onPressed: enabled
|
||||
? () => overlayController.updateToolbarMode(mode)
|
||||
: null,
|
||||
playSound: true,
|
||||
child: AnimatedContainer(
|
||||
duration: FluffyThemes.animationDuration,
|
||||
height: buttonSize,
|
||||
width: buttonSize,
|
||||
decoration: BoxDecoration(
|
||||
color: color(context),
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: Icon(
|
||||
mode.icon,
|
||||
size: 20,
|
||||
color:
|
||||
mode == overlayController.toolbarMode ? Colors.white : null,
|
||||
),
|
||||
),
|
||||
),
|
||||
if (!enabled) const DisabledAnimation(),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue