ponshu-room-lite/lib/widgets/common/munyun_like_button.dart

45 lines
1.4 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/material.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:flutter/services.dart';
// Riveアニメーション用のウィジェットv1.2: フォールバックモード)
// 注意: .rivファイルが存在しないため、現在はLucideIconsで表示されます
// TODO: assets/rive/munyun_heart.riv を配置すればアニメーション有効化
class MunyunLikeButton extends StatefulWidget {
final bool isLiked;
final VoidCallback onTap;
final double size;
const MunyunLikeButton({
super.key,
required this.isLiked,
required this.onTap,
this.size = 24.0,
});
@override
State<MunyunLikeButton> createState() => _MunyunLikeButtonState();
}
class _MunyunLikeButtonState extends State<MunyunLikeButton> {
// v1.2: Riveパッケージのバージョン問題により、一旦フォールバックのみで実装
// .rivファイルの配置 + Riveパッケージ更新後に再度実装予定
@override
Widget build(BuildContext context) {
// 現在はフォールバック表示のみ
return _buildFallback();
}
Widget _buildFallback() {
return IconButton(
icon: Icon(
LucideIcons.heart, // Lucideには塗りつぶしハートがないため、色で区別
),
color: widget.isLiked ? Colors.pink : Colors.white,
tooltip: 'お気に入り',
onPressed: widget.onTap,
);
}
}