stack_wallet/lib/widgets/desktop/living_stack_icon.dart

67 lines
1.4 KiB
Dart
Raw Normal View History

2023-05-26 21:21:16 +00:00
/*
* This file is part of Stack Wallet.
*
* Copyright (c) 2023 Cypher Stack
* All Rights Reserved.
* The code is distributed under GPLv3 license, see LICENSE file for details.
* Generated by Cypher Stack on 2023-05-26
*
*/
2022-11-28 20:25:49 +00:00
import 'package:flutter/material.dart';
2023-04-25 22:07:28 +00:00
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../app_icon.dart';
2022-11-28 20:25:49 +00:00
2023-04-25 22:07:28 +00:00
class LivingStackIcon extends ConsumerStatefulWidget {
const LivingStackIcon({
super.key,
2023-04-25 22:07:28 +00:00
this.onPressed,
});
2022-11-28 20:25:49 +00:00
final VoidCallback? onPressed;
@override
2023-04-25 22:07:28 +00:00
ConsumerState<LivingStackIcon> createState() => _LivingStackIconState();
2022-11-28 20:25:49 +00:00
}
2023-04-25 22:07:28 +00:00
class _LivingStackIconState extends ConsumerState<LivingStackIcon> {
2022-11-28 20:25:49 +00:00
bool _hovering = false;
late final VoidCallback? onPressed;
@override
void initState() {
onPressed = widget.onPressed;
super.initState();
}
@override
Widget build(BuildContext context) {
return SizedBox(
height: 76,
child: MouseRegion(
cursor: SystemMouseCursors.click,
onEnter: (_) {
setState(() {
_hovering = true;
});
},
onExit: (_) {
setState(() {
_hovering = false;
});
},
child: GestureDetector(
onTap: () => onPressed?.call(),
child: AnimatedScale(
duration: const Duration(milliseconds: 200),
scale: _hovering ? 1.2 : 1,
child: const AppIcon(),
2022-11-28 20:25:49 +00:00
),
),
),
);
}
}