diff --git a/lib/widgets/game_card.dart b/lib/widgets/game_card.dart index e8cffb7..ecec4bb 100644 --- a/lib/widgets/game_card.dart +++ b/lib/widgets/game_card.dart @@ -19,7 +19,8 @@ class GameCard extends StatefulWidget { State createState() => _GameCardState(); } -class _GameCardState extends State with SingleTickerProviderStateMixin { +class _GameCardState extends State + with SingleTickerProviderStateMixin { late final AnimationController _controller; bool _isLoading = false; int _deleteClickCount = 0; @@ -93,14 +94,17 @@ class _GameCardState extends State with SingleTickerProviderStateMixin decoration: const InputDecoration.collapsed( hintText: 'New Game', ), - onChanged: (value) => widget.onGameUpdated(Game( - name: value, - versionRegex: widget.game.versionRegex, - lastPlayed: widget.game.lastPlayed, - rssFeedUrl: widget.game.rssFeedUrl, - actualVersion: widget.game.actualVersion, - lastUpdated: widget.game.lastUpdated, - )), + onChanged: + (value) => widget.onGameUpdated( + Game( + name: value, + versionRegex: widget.game.versionRegex, + lastPlayed: widget.game.lastPlayed, + rssFeedUrl: widget.game.rssFeedUrl, + actualVersion: widget.game.actualVersion, + lastUpdated: widget.game.lastUpdated, + ), + ), ), ), Row( @@ -114,13 +118,14 @@ class _GameCardState extends State with SingleTickerProviderStateMixin ), onPressed: _handleDeleteClick, ), - RotationTransition( - turns: _controller, - child: IconButton( - icon: const Icon(Icons.refresh), - onPressed: _isLoading ? null : _refreshVersion, + if (!widget.isNameEditable) + RotationTransition( + turns: _controller, + child: IconButton( + icon: const Icon(Icons.refresh), + onPressed: _isLoading ? null : _refreshVersion, + ), ), - ), ], ), ], @@ -130,10 +135,15 @@ class _GameCardState extends State with SingleTickerProviderStateMixin children: [ SizedBox( width: 120, - child: Text('Version:', style: Theme.of(context).textTheme.bodyLarge), + child: Text( + 'Version:', + style: Theme.of(context).textTheme.bodyLarge, + ), ), Text( - widget.game.actualVersion.isEmpty ? 'Unknown' : widget.game.actualVersion, + widget.game.actualVersion.isEmpty + ? 'Unknown' + : widget.game.actualVersion, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: isUpToDate ? Colors.green : Colors.red, fontWeight: FontWeight.bold, @@ -145,10 +155,15 @@ class _GameCardState extends State with SingleTickerProviderStateMixin children: [ SizedBox( width: 120, - child: Text('Last Updated:', style: Theme.of(context).textTheme.bodyLarge), + child: Text( + 'Last Updated:', + style: Theme.of(context).textTheme.bodyLarge, + ), ), Text( - widget.game.lastUpdated.isEmpty ? 'Never' : DateTime.parse(widget.game.lastUpdated).toString(), + widget.game.lastUpdated.isEmpty + ? 'Never' + : DateTime.parse(widget.game.lastUpdated).toString(), style: Theme.of(context).textTheme.bodyMedium, ), ], @@ -157,7 +172,10 @@ class _GameCardState extends State with SingleTickerProviderStateMixin children: [ SizedBox( width: 120, - child: Text('Last Played:', style: Theme.of(context).textTheme.bodyLarge), + child: Text( + 'Last Played:', + style: Theme.of(context).textTheme.bodyLarge, + ), ), Text( widget.game.lastPlayed, @@ -172,42 +190,60 @@ class _GameCardState extends State with SingleTickerProviderStateMixin TextField( controller: TextEditingController(text: widget.game.versionRegex), decoration: const InputDecoration(labelText: 'Version Regex'), - onChanged: (value) => widget.onGameUpdated(Game( - name: widget.isNameEditable ? _nameController.text : widget.game.name, - versionRegex: value, - lastPlayed: widget.game.lastPlayed, - rssFeedUrl: widget.game.rssFeedUrl, - actualVersion: widget.game.actualVersion, - lastUpdated: widget.game.lastUpdated, - )), + onChanged: + (value) => widget.onGameUpdated( + Game( + name: + widget.isNameEditable + ? _nameController.text + : widget.game.name, + versionRegex: value, + lastPlayed: widget.game.lastPlayed, + rssFeedUrl: widget.game.rssFeedUrl, + actualVersion: widget.game.actualVersion, + lastUpdated: widget.game.lastUpdated, + ), + ), ), TextField( controller: TextEditingController(text: widget.game.rssFeedUrl), decoration: const InputDecoration(labelText: 'RSS Feed URL'), - onChanged: (value) => widget.onGameUpdated(Game( - name: widget.isNameEditable ? _nameController.text : widget.game.name, - versionRegex: widget.game.versionRegex, - lastPlayed: widget.game.lastPlayed, - rssFeedUrl: value, - actualVersion: widget.game.actualVersion, - lastUpdated: widget.game.lastUpdated, - )), + onChanged: + (value) => widget.onGameUpdated( + Game( + name: + widget.isNameEditable + ? _nameController.text + : widget.game.name, + versionRegex: widget.game.versionRegex, + lastPlayed: widget.game.lastPlayed, + rssFeedUrl: value, + actualVersion: widget.game.actualVersion, + lastUpdated: widget.game.lastUpdated, + ), + ), ), TextField( controller: TextEditingController(text: widget.game.lastPlayed), decoration: const InputDecoration(labelText: 'Last Played'), - onChanged: (value) => widget.onGameUpdated(Game( - name: widget.isNameEditable ? _nameController.text : widget.game.name, - versionRegex: widget.game.versionRegex, - lastPlayed: value, - rssFeedUrl: widget.game.rssFeedUrl, - actualVersion: widget.game.actualVersion, - lastUpdated: widget.game.lastUpdated, - )), + onChanged: + (value) => widget.onGameUpdated( + Game( + name: + widget.isNameEditable + ? _nameController.text + : widget.game.name, + versionRegex: widget.game.versionRegex, + lastPlayed: value, + rssFeedUrl: widget.game.rssFeedUrl, + actualVersion: widget.game.actualVersion, + lastUpdated: widget.game.lastUpdated, + ), + ), ), ], ), ), ); } -} \ No newline at end of file +}