stack_wallet/lib/widgets/desktop/living_stack_icon.dart
2023-05-27 00:19:24 +03:00

66 lines
1.5 KiB
Dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:stackwallet/themes/theme_providers.dart';
class LivingStackIcon extends ConsumerStatefulWidget {
const LivingStackIcon({
Key? key,
this.onPressed,
}) : super(key: key);
final VoidCallback? onPressed;
@override
ConsumerState<LivingStackIcon> createState() => _LivingStackIconState();
}
class _LivingStackIconState extends ConsumerState<LivingStackIcon> {
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: SvgPicture.file(
File(
ref.watch(
themeProvider.select(
(value) => value.assets.stackIcon,
),
),
),
),
),
),
),
);
}
}