CreateGroupView erstellt #28

Merged
flixcoo merged 37 commits from feature/5-creategroupview-erstellen into development 2025-11-19 17:32:44 +00:00
2 changed files with 37 additions and 16 deletions
Showing only changes of commit 9365313c92 - Show all commits

View File

@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/material.dart' hide ButtonStyle;
import 'package:game_tracker/core/custom_theme.dart';
import 'package:game_tracker/data/db/database.dart';
import 'package:game_tracker/data/dto/group.dart';
@@ -265,8 +265,8 @@ class _CreateGroupViewState extends State<CreateGroupView> {
),
CustomWidthButton(
text: 'Create group',
disabledInfillColor: CustomTheme.boxColor,
sizeRelativeToWidth: 0.95,
buttonStyle: ButtonStyle.secondary,
onPressed:
(_groupNameController.text.isEmpty || selectedPlayers.isEmpty)
? null
@@ -277,14 +277,13 @@ class _CreateGroupViewState extends State<CreateGroupView> {
members: selectedPlayers,
),
);
if (!context.mounted) return;
if (success) {
_groupNameController.clear();
_searchBarController.clear();
selectedPlayers.clear();
if (!mounted) return;
Navigator.pop(context);
} else {
if (!mounted) return;
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
backgroundColor: CustomTheme.boxColor,

View File

@@ -7,45 +7,67 @@ class CustomWidthButton extends StatelessWidget {
const CustomWidthButton({
super.key,
required this.text,
this.disabledInfillColor,
this.buttonStyle = ButtonStyle.primary,
sneeex marked this conversation as resolved Outdated

Das was aktuell der disabledButton ist sollte lieber der Secondary Button sein. Deaktivierte Buttons sollten grau sein oder sowas, also klar als deaktiviert erkennbar sein.

Das was aktuell der disabledButton ist sollte lieber der Secondary Button sein. Deaktivierte Buttons sollten grau sein oder sowas, also klar als deaktiviert erkennbar sein.

Das was aktuell der disabledButton ist sollte lieber der Secondary Button sein. Deaktivierte Buttons sollten grau sein oder sowas, also klar als deaktiviert erkennbar sein.

Erläutere bitte, verstehe ich nicht

> Das was aktuell der disabledButton ist sollte lieber der Secondary Button sein. Deaktivierte Buttons sollten grau sein oder sowas, also klar als deaktiviert erkennbar sein. Erläutere bitte, verstehe ich nicht

Dein Create Game Button sieht, wenn er deaktiviert ist, viel mehr aus wie ein Secondary Button.
Orientiere dich am besten daran:

grafik.png

Dein Create Game Button sieht, wenn er deaktiviert ist, viel mehr aus wie ein Secondary Button. Orientiere dich am besten daran: ![grafik.png](/attachments/31a3b45b-b4d9-4136-9fe9-89e00596feab)
252 KiB
required this.sizeRelativeToWidth,
required this.onPressed,
this.onPressed,
});
final String text;
final Color? disabledInfillColor;
final double sizeRelativeToWidth;
final VoidCallback? onPressed;
final ButtonStyle buttonStyle;
@override
Widget build(BuildContext context) {
final Color buttonBackgroundColor;
final Color disabledBackgroundColor;
final Color borderSideColor;
final Color disabledBorderSideColor;
final Color textcolor;
final Color disabledTextColor;
if(buttonStyle == ButtonStyle.primary){
buttonBackgroundColor = CustomTheme.primaryColor;
disabledBackgroundColor = CustomTheme.primaryColor.withValues(alpha: 0.24);
borderSideColor = Colors.transparent;
disabledBorderSideColor = Colors.transparent;
textcolor = Colors.white;
disabledTextColor = Colors.white.withValues(alpha: 0.24);
} else{
buttonBackgroundColor = Colors.transparent;
disabledBackgroundColor = Colors.transparent;
borderSideColor = CustomTheme.primaryColor.withValues(alpha: 0.6 );
disabledBorderSideColor = Colors.transparent;
textcolor = CustomTheme.primaryColor;
disabledTextColor = CustomTheme.primaryColor.withValues(alpha: 0.24);
}
return ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
disabledBackgroundColor: disabledInfillColor,
disabledBackgroundColor: disabledBackgroundColor,
minimumSize: Size(
MediaQuery.sizeOf(context).width * sizeRelativeToWidth,
60,
),
backgroundColor: buttonStyle == ButtonStyle.primary
? CustomTheme.primaryColor
: CustomTheme.secondaryColor,
backgroundColor: buttonBackgroundColor,
side: BorderSide(
color: buttonStyle == ButtonStyle.primary
? CustomTheme.primaryColor
: CustomTheme.secondaryColor,
color: borderSideColor,
width: 2,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
),
child: Text(
text,
style: const TextStyle(
style: TextStyle(
fontWeight: FontWeight.w500,
fontSize: 22,
color: Colors.white,
color: (onPressed == null)
? disabledTextColor
: textcolor,
),
),
);