New Version

This commit is contained in:
Niklas 2024-10-16 20:06:55 +02:00
parent 451a27c6a4
commit 2c82af4ec8
7 changed files with 254 additions and 164 deletions

View File

@ -26,14 +26,14 @@ Future<void> main() async {
runApp(
ChangeNotifierProvider(
create: (context) => Categories.instance,
child: MyApp(),
child: const MyApp(),
),
);
}
/// Supabase client
final supabase = Supabase.instance.client;
final timeSpan = "";
const timeSpan = "";
/// Error message to display the user when unexpected error occurs.
const unexpectedErrorMessage = 'Unexpected error occurred.';

View File

@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'subheader_Datepicker.dart';
class MainScreen extends StatefulWidget {
const MainScreen({super.key});
@override
_MainScreenState createState() => _MainScreenState();
}
@ -42,7 +44,7 @@ class _MainScreenState extends State<MainScreen> with SingleTickerProviderStateM
),),
title: Row(
children: [
SizedBox(
const SizedBox(
height: 10, //height of button
width: 20, //width of button
child: Icon(Icons.keyboard_arrow_down),
@ -55,7 +57,7 @@ SizedBox(
width: 100.0,
child: TextField(
controller: TextEditingController(text: "Ingolstadt"),
decoration: InputDecoration(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
),
),
@ -64,12 +66,12 @@ SizedBox(
),
actions: [
IconButton(
icon: Icon(Icons.search),
icon: const Icon(Icons.search),
onPressed: () {
// Perform search action
},
),
SizedBox(
const SizedBox(
height: 40,
child: VerticalDivider(
thickness: 1,
@ -86,7 +88,7 @@ SizedBox(
),
],
bottom: PreferredSize(
preferredSize: Size.fromHeight(1.0),
preferredSize: const Size.fromHeight(1.0),
child: Container(
color: Colors.black,
height: 1.0,
@ -102,11 +104,11 @@ SizedBox(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
IconButton(
icon: Icon(Icons.home),
icon: const Icon(Icons.home),
onPressed: () => _changeBody(HomeBody()),
),
IconButton(
icon: Icon(Icons.settings),
icon: const Icon(Icons.settings),
onPressed: () => _changeBody(SettingsBody()),
),
// Add more buttons as needed
@ -118,15 +120,19 @@ SizedBox(
}
class HomeBody extends StatelessWidget {
const HomeBody({super.key});
@override
Widget build(BuildContext context) {
return Center(child: Text('Home Screen'));
return const Center(child: Text('Home Screen'));
}
}
class SettingsBody extends StatelessWidget {
const SettingsBody({super.key});
@override
Widget build(BuildContext context) {
return Center(child: Text('Settings Screen'));
return const Center(child: Text('Settings Screen'));
}
}

View File

@ -10,8 +10,7 @@ class Frame28 extends StatelessWidget {
final Color color;
final MediaQueryData screen_size;
const Frame28({Key? key, required this.events, required this.color, required this.screen_size})
: super(key: key);
const Frame28({super.key, required this.events, required this.color, required this.screen_size});
/* void initState() {
super.initState();
@ -21,6 +20,72 @@ class Frame28 extends StatelessWidget {
@override
Widget build(BuildContext context) {
var appBar = AppBar(
leading: SizedBox(
height: 60,
width: 63,
child: IconButton(
icon: Image.asset('assets/images/logo.png'),
onPressed: () {
// Open drawer or perform action
},
),
),
title: Row(
children: [
const SizedBox(
height: 10, //height of button
width: 20, //width of button
child: Icon(Icons.keyboard_arrow_down),
),
const SizedBox(
//width of button
width: 10,
),
SizedBox(
width: 100.0,
child: TextField(
controller: TextEditingController(text: "Ingolstadt"),
decoration: const InputDecoration(
border: UnderlineInputBorder(),
),
),
),
],
),
actions: [
IconButton(
icon: const Icon(Icons.search),
onPressed: () {
// Perform search action
},
),
const SizedBox(
height: 40,
child: VerticalDivider(
thickness: 1,
width: 20,
color: Colors.black,
),
),
SizedBox(
height: 50, //height of button
//width of button
child: IconButton(
icon: Image.asset('assets/images/Login.png'),
onPressed: () {},
),
),
],
bottom: PreferredSize(
preferredSize: const Size.fromHeight(1.0),
child: Container(
color: Colors.black,
height: 1.0,
),
),
flexibleSpace: Container(),
);
//_loadData();
var body = CustomScrollView(slivers: [
SliverSafeArea(
@ -31,23 +96,24 @@ class Frame28 extends StatelessWidget {
alignment: Alignment.center,
child: Column(children: <Widget>[
//Header Container
HeaderSection(),
//HeaderSection(),
Container(height: 10),
Container(
height: 35,
padding: const EdgeInsets.all(0),
child: TimeButtonSection(), // Dein Button-Bereich
child: const TimeButtonSection(), // Dein Button-Bereich
),
Container(
height: 10,
),
Container(
SizedBox(
height: 35,
child: MusikHeader(),
),
//Container(),
Column(
children: [
Container(
SizedBox(
width: 380,
//height: 259,
@ -114,6 +180,7 @@ class Frame28 extends StatelessWidget {
]);
return Scaffold(
backgroundColor: Colors.white,
appBar: appBar,
body: body,
);
}
@ -136,12 +203,12 @@ String extractTime24h(String timestamp) {
// Dann den richtigen Eintrag in Data identifizieren udn die Farbe auswählen
Color extractColor(String categoryID)
{
var single_categories = Categories.instance;
final result = single_categories.categories.where((recipe) => recipe.category == categoryID).firstOrNull;
Color categorie_color= Color.fromARGB(255, 255, 255, 255);
var singleCategories = Categories.instance;
final result = singleCategories.categories.where((recipe) => recipe.category == categoryID).firstOrNull;
Color categorieColor= const Color.fromARGB(255, 255, 255, 255);
if (result!=null)
{
categorie_color=result.color;
categorieColor=result.color;
}
return categorie_color;
return categorieColor;
}

View File

@ -5,11 +5,13 @@ import 'package:supabase_flutter/supabase_flutter.dart';
//import 'dart:async';
class DetailsPage extends StatelessWidget {
const DetailsPage({super.key});
@override
Widget build(BuildContext context) {
final _future2 = Supabase.instance.client
final future2 = Supabase.instance.client
.from('events')
.select();
// 1. Daten anahdn von Filter einstellungen abrufen
@ -18,7 +20,7 @@ class DetailsPage extends StatelessWidget {
return Scaffold(
body: FutureBuilder(
future: _future2,
future: future2,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());

View File

@ -9,6 +9,8 @@ import 'package:Emma_home/main.dart';
import 'package:Emma_home/utils/data.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
_HomePage createState() => _HomePage();
}
@ -21,9 +23,9 @@ class _HomePage extends State<HomePage> {
}
Future<List<Map<String, dynamic>>> _loadData() async {
final _data = await supabase.from('events').select();
final data = await supabase.from('events').select();
//get the id of the event
return _data;
return data;
//Create a date entry and connect it with the event
// Überprüfe, ob der Insert erfolgreich war
@ -98,7 +100,7 @@ class _HomePage extends State<HomePage> {
//var single_categories = Categories.instance;
//single_categories.updateCategoryAmount('Ingolstadt');
/*24 is for notification bar on Android*/
final double itemHeight = (size.height - kToolbarHeight - 180) / 5;
final double itemHeight = (size.height - kToolbarHeight - 270) / 4;
final double itemWidth = (size.width-40)/ 2;
MediaQueryData queryData;
queryData = MediaQuery.of(context);
@ -116,7 +118,7 @@ class _HomePage extends State<HomePage> {
),
title: Row(
children: [
SizedBox(
const SizedBox(
height: 10, //height of button
width: 20, //width of button
child: Icon(Icons.keyboard_arrow_down),
@ -129,7 +131,7 @@ class _HomePage extends State<HomePage> {
width: 100.0,
child: TextField(
controller: TextEditingController(text: "Ingolstadt"),
decoration: InputDecoration(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
),
),
@ -138,12 +140,12 @@ class _HomePage extends State<HomePage> {
),
actions: [
IconButton(
icon: Icon(Icons.search),
icon: const Icon(Icons.search),
onPressed: () {
// Perform search action
},
),
SizedBox(
const SizedBox(
height: 40,
child: VerticalDivider(
thickness: 1,
@ -161,7 +163,7 @@ class _HomePage extends State<HomePage> {
),
],
bottom: PreferredSize(
preferredSize: Size.fromHeight(1.0),
preferredSize: const Size.fromHeight(1.0),
child: Container(
color: Colors.black,
height: 1.0,
@ -171,7 +173,7 @@ class _HomePage extends State<HomePage> {
);
var body = SafeArea(
child:Consumer<Categories>(
builder: (context, single_categories, child) {return
builder: (context, singleCategories, child) {return
Column(
children: <Widget>[
//Header Container
@ -187,7 +189,7 @@ class _HomePage extends State<HomePage> {
child: Container(
height: 35,
padding: const EdgeInsets.all(0),
child: TimeButtonSection(), // Dein Button-Bereich
child: const TimeButtonSection(), // Dein Button-Bereich
),
),
];
@ -199,12 +201,13 @@ class _HomePage extends State<HomePage> {
true, // Damit der GridView korrekt in die Column passt
//physics: NeverScrollableScrollPhysics(), // Deaktiviert das Scrolling des GridView
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: (itemWidth /
itemHeight), // Anzahl der Spalten im Grid
crossAxisCount: 2,// Anzahl der Spalten im Grid
//crossAxisSpacing: 10.0,
mainAxisSpacing: 10.0,
childAspectRatio: (itemWidth /itemHeight),
),
itemCount:
single_categories.categories.length, // Anzahl der Elemente im Grid
singleCategories.categories.length, // Anzahl der Elemente im Grid
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.all(6.0),
@ -213,18 +216,18 @@ class _HomePage extends State<HomePage> {
/* List<Map<String, dynamic>> events =
await _loadData(); */
List<Map<String, dynamic>> events2 =
await fetchEvents(single_categories.categories[index].category);
await fetchEvents(singleCategories.categories[index].category);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Frame28(
events: events2,
color: single_categories.categories[index].color,
color: singleCategories.categories[index].color,
screen_size: queryData,
)));
},
child:
Container(
SizedBox(
width: itemWidth,
height: itemHeight,
child: Stack(
@ -238,16 +241,16 @@ class _HomePage extends State<HomePage> {
decoration: ShapeDecoration(
image: DecorationImage(
image:
AssetImage(single_categories.categories[index].imageUrl),
AssetImage(singleCategories.categories[index].imageUrl),
fit: BoxFit.cover,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
shadows: [
BoxShadow(
color: single_categories.categories[index].color,
color: singleCategories.categories[index].color,
blurRadius: 0,
offset: Offset(0, 10),
offset: const Offset(0, 10),
spreadRadius: 0,
)
],
@ -258,8 +261,8 @@ class _HomePage extends State<HomePage> {
left: 16,
top: 15,
child: Text(
single_categories.categories[index].amount.toString(),
style: TextStyle(
singleCategories.categories[index].amount.toString(),
style: const TextStyle(
color: Colors.white,
fontSize: 18,
fontFamily: 'Inter',
@ -270,15 +273,15 @@ class _HomePage extends State<HomePage> {
),
Positioned(
left: 13,
top: single_categories.categories[index].textheight, //86, //TODO Bootom?
top: singleCategories.categories[index].textheight, //86, //TODO Bootom?
child:
Container(
SizedBox(
width: itemWidth-20,// Set a fixed width or use constraints
child: Wrap(
children: [
Text(
single_categories.categories[index].title,
style: TextStyle(
singleCategories.categories[index].title,
style: const TextStyle(
color: Colors.white,
fontSize: 24,
fontFamily: 'Inter',
@ -292,11 +295,11 @@ class _HomePage extends State<HomePage> {
right:20,
top:10,
child:
Container(
SizedBox(
width: 32,
height: 32,
child: Image.asset(
single_categories.categories[index].iconUrl,
singleCategories.categories[index].iconUrl,
), ),
),
@ -307,7 +310,7 @@ class _HomePage extends State<HomePage> {
width: 31,
height: 31,
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(),
decoration: const BoxDecoration(),
),
),
],
@ -335,7 +338,7 @@ class _HomePage extends State<HomePage> {
backgroundColor: Colors.white,
appBar: appBar,
body: Consumer<Categories>(
builder: (context, single_categories, child) {return body;}),
builder: (context, singleCategories, child) {return body;}),
);
}
}

View File

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:Emma_home/utils/helper_functions.dart';
class TimeButtonSection extends StatefulWidget {
const TimeButtonSection();
const TimeButtonSection({super.key});
@override
_TimeButtonSection createState() => _TimeButtonSection();
@ -27,18 +27,18 @@ class _TimeButtonSection extends State<TimeButtonSection> {
_isWEActive = false;
});
},
child: Text('Heute'),
style: OutlinedButton.styleFrom(
backgroundColor: _isToDayActive ? Colors.black : Colors.white,
foregroundColor: _isToDayActive ? Colors.white : Colors.black,
side: _isToDayActive
? BorderSide(color: Colors.white)
: BorderSide(color: Colors.black),
minimumSize: Size(85, 39), // Breite und Höhe
? const BorderSide(color: Colors.white)
: const BorderSide(color: Colors.black),
minimumSize: const Size(85, 39), // Breite und Höhe
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
child: Text('Heute'),
),
// Button "Morgen" (outlined style)
OutlinedButton(
@ -49,18 +49,18 @@ class _TimeButtonSection extends State<TimeButtonSection> {
_isWEActive = false;
});
},
child: Text('Morgen'),
style: OutlinedButton.styleFrom(
backgroundColor: _isToMorrowActive ? Colors.black : Colors.white,
foregroundColor: _isToMorrowActive ? Colors.white : Colors.black,
side: _isToMorrowActive
? BorderSide(color: Colors.white)
: BorderSide(color: Colors.black), // Border color
minimumSize: Size(90, 39), // Breite und Höhe
? const BorderSide(color: Colors.white)
: const BorderSide(color: Colors.black), // Border color
minimumSize: const Size(90, 39), // Breite und Höhe
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
child: Text('Morgen'),
),
// Button "Wochenende" (outlined style)
OutlinedButton(
@ -71,23 +71,23 @@ class _TimeButtonSection extends State<TimeButtonSection> {
_isWEActive = !_isWEActive;
});
},
child: Text('Wochenende'),
style: OutlinedButton.styleFrom(
backgroundColor: _isWEActive ? Colors.black : Colors.white,
foregroundColor: _isWEActive ? Colors.white : Colors.black,
side: _isWEActive
? BorderSide(color: Colors.white)
: BorderSide(color: Colors.black), // Border color
minimumSize: Size(100, 39), // Breite und Höhe
? const BorderSide(color: Colors.white)
: const BorderSide(color: Colors.black), // Border color
minimumSize: const Size(100, 39), // Breite und Höhe
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
child: Text('Wochenende'),
),
// Button with calendar icon
IconButton(
onPressed: () {},
icon: Icon(Icons.calendar_today, color: Colors.black),
icon: const Icon(Icons.calendar_today, color: Colors.black),
),
],
);
@ -95,6 +95,8 @@ class _TimeButtonSection extends State<TimeButtonSection> {
}
class HeaderSection extends StatelessWidget {
const HeaderSection({super.key});
@override
Widget build(BuildContext context) {
return Container(
@ -121,7 +123,7 @@ class HeaderSection extends StatelessWidget {
//width of button
width: 10,
),
SizedBox(
const SizedBox(
height: 10, //height of button
width: 20, //width of button
child: Icon(Icons.keyboard_arrow_down),
@ -134,7 +136,7 @@ class HeaderSection extends StatelessWidget {
width: 100.0,
child: TextField(
controller: TextEditingController(text: "Ingolstadt"),
decoration: InputDecoration(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
),
),
@ -143,8 +145,8 @@ class HeaderSection extends StatelessWidget {
// //width of button
// width: 40,
// ),
SizedBox(width: 3),
Spacer(),
const SizedBox(width: 3),
const Spacer(),
SizedBox(
height: 41, //height of button
//width of button
@ -194,24 +196,24 @@ class EventCard2Section extends StatelessWidget {
final MediaQueryData screen_size;
const EventCard2Section({
Key? key,
super.key,
required this.title,
required this.description,
required this.location,
required this.start_time,
required this.color,
required this.screen_size,
}) : super(key: key);
});
@override
Widget build(BuildContext context) {
return Container(
width: (screen_size.size.width-40),
height: 107,
margin: new EdgeInsets.fromLTRB(20.0, 0, 20.0, 20.0),
margin: const EdgeInsets.fromLTRB(20.0, 0, 20.0, 20.0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
border: Border(
border: const Border(
left: BorderSide(width: 1, color: Color(0xFFBFBCBC)),
top: BorderSide(width: 1, color: Color(0xFFBFBCBC)),
right: BorderSide(color: Color(0xFFBFBCBC)),
@ -221,7 +223,7 @@ class EventCard2Section extends StatelessWidget {
BoxShadow(
color: color, //Color(0xFFF8AB14),
blurRadius: 0,
offset: Offset(0, 10),
offset: const Offset(0, 10),
spreadRadius: 0,
)
],),
@ -244,14 +246,14 @@ class EventCard2Section extends StatelessWidget {
child: Container(
width: 32,
height: 32,
decoration: BoxDecoration(
decoration: const BoxDecoration(
color: Color.fromARGB(
196, 171, 170, 170), // Hintergrundfarbe des Buttons
shape: BoxShape.circle, // Runde Form
),
child: IconButton(
padding: EdgeInsets.zero, // Entfernt zusätzlichen Abstand
icon: Icon(Icons.bookmark_border_outlined),
icon: const Icon(Icons.bookmark_border_outlined),
color: Colors.white, // Icon-Farbe
iconSize: 19, // Größe des Icons
onPressed: () {
@ -272,7 +274,7 @@ class EventCard2Section extends StatelessWidget {
children: [
Text(
title,
style: TextStyle(
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
@ -285,7 +287,7 @@ class EventCard2Section extends StatelessWidget {
height:24,
child:Text(
location,
style: TextStyle(
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
@ -296,7 +298,7 @@ class EventCard2Section extends StatelessWidget {
Text.rich(
TextSpan(
text: 'Beginn: ', // Standard-Text
style: TextStyle(
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 12,
fontFamily: 'Inter',
@ -306,7 +308,7 @@ class EventCard2Section extends StatelessWidget {
children: [
TextSpan(
text: start_time, // Variabler Text
style: TextStyle(
style: const TextStyle(
fontWeight: FontWeight.w800, // Bold
),
),
@ -376,7 +378,7 @@ class EventCard2Section extends StatelessWidget {
//height: 15,
child: Text(
shortenText(description, 30),
style: TextStyle(
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 12,
fontFamily: 'Inter',
@ -415,11 +417,13 @@ class EventCard2Section extends StatelessWidget {
}
class TagSlider extends StatelessWidget {
const TagSlider({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
SizedBox(
width: 390,
height: 73,
child: Row(
@ -442,11 +446,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -471,11 +475,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -500,11 +504,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -529,11 +533,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -558,11 +562,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -587,11 +591,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -616,11 +620,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -645,11 +649,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -674,11 +678,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -703,11 +707,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -732,11 +736,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -761,11 +765,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -790,11 +794,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -819,11 +823,11 @@ class TagSlider extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1),
side: const BorderSide(width: 1),
borderRadius: BorderRadius.circular(10),
),
),
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
@ -853,11 +857,13 @@ class TagSlider extends StatelessWidget {
}
class MusikHeader extends StatelessWidget {
const MusikHeader({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
SizedBox(
width: 390,
height: 32,
child: Row(
@ -868,7 +874,7 @@ class MusikHeader extends StatelessWidget {
Align(
alignment: Alignment.centerLeft,
child: IconButton(
icon: Icon(Icons.keyboard_arrow_left),
icon: const Icon(Icons.keyboard_arrow_left),
onPressed: () {
Navigator.pop(context);
},
@ -878,13 +884,13 @@ class MusikHeader extends StatelessWidget {
alignment: Alignment.center,
child: Row(
children: [
Container(
SizedBox(
width: 32,
height: 32,
child: Image.asset(
'assets/images/Icons/Icon_Musik.png',
), ),
Text(
const Text(
'Musik',
style: TextStyle(
color: Color(0xFF171717),
@ -909,11 +915,13 @@ class MusikHeader extends StatelessWidget {
}
class CardGenre extends StatelessWidget {
const CardGenre({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
SizedBox(
width: 368,
height: 121,
child: Column(
@ -921,7 +929,7 @@ class CardGenre extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
const SizedBox(
width: double.infinity,
child: Text(
'Heute',
@ -940,14 +948,14 @@ class CardGenre extends StatelessWidget {
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
side: BorderSide(
side: const BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignOutside,
color: Color(0xFFDADADA),
),
borderRadius: BorderRadius.circular(10),
),
shadows: [
shadows: const [
BoxShadow(
color: Color(0xFFF8AB14),
blurRadius: 0,
@ -968,7 +976,7 @@ class CardGenre extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
const Text(
'Eventname',
style: TextStyle(
color: Color(0xFF0A0A0A),
@ -985,14 +993,14 @@ class CardGenre extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
SizedBox(
width: 226,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
const SizedBox(
width: 83,
height: 24,
child: Text(
@ -1007,9 +1015,9 @@ class CardGenre extends StatelessWidget {
),
),
const SizedBox(width: 24),
Container(
SizedBox(
height: 20,
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
@ -1054,7 +1062,7 @@ class CardGenre extends StatelessWidget {
),
),
const SizedBox(height: 4),
SizedBox(
const SizedBox(
width: 226,
height: 15,
child: Text(
@ -1071,14 +1079,14 @@ class CardGenre extends StatelessWidget {
],
),
),
Container(
SizedBox(
width: 32,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
SizedBox(
width: 32,
height: 32,
child: Row(
@ -1091,7 +1099,7 @@ class CardGenre extends StatelessWidget {
height: 32,
decoration: ShapeDecoration(
color: Colors.white.withOpacity(0.800000011920929),
shape: OvalBorder(
shape: const OvalBorder(
side: BorderSide(width: 1, color: Color(0xFFABA9A9)),
),
),
@ -1103,7 +1111,7 @@ class CardGenre extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
),
child: FlutterLogo(),
child: const FlutterLogo(),
),
],
),
@ -1124,11 +1132,13 @@ class CardGenre extends StatelessWidget {
class CardGenre_temp extends StatelessWidget {
const CardGenre_temp({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
SizedBox(
width: 368,
height: 121,
child: Column(
@ -1136,7 +1146,7 @@ class CardGenre_temp extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
const SizedBox(
width: double.infinity,
child: Text(
'Heute',
@ -1155,14 +1165,14 @@ class CardGenre_temp extends StatelessWidget {
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
side: BorderSide(
side: const BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignOutside,
color: Color(0xFFDADADA),
),
borderRadius: BorderRadius.circular(10),
),
shadows: [
shadows: const [
],
),
@ -1178,7 +1188,7 @@ class CardGenre_temp extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
const Text(
'Eventname',
style: TextStyle(
color: Color(0xFF0A0A0A),
@ -1195,14 +1205,14 @@ class CardGenre_temp extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
SizedBox(
width: 226,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
const SizedBox(
width: 83,
height: 24,
child: Text(
@ -1217,9 +1227,9 @@ class CardGenre_temp extends StatelessWidget {
),
),
const SizedBox(width: 24),
Container(
SizedBox(
height: 20,
child: Row(
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
@ -1264,7 +1274,7 @@ class CardGenre_temp extends StatelessWidget {
),
),
const SizedBox(height: 4),
SizedBox(
const SizedBox(
width: 226,
height: 15,
child: Text(
@ -1281,14 +1291,14 @@ class CardGenre_temp extends StatelessWidget {
],
),
),
Container(
SizedBox(
width: 32,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
SizedBox(
width: 32,
height: 32,
child: Row(
@ -1301,7 +1311,7 @@ class CardGenre_temp extends StatelessWidget {
height: 32,
decoration: ShapeDecoration(
color: Colors.white.withOpacity(0.800000011920929),
shape: OvalBorder(
shape: const OvalBorder(
side: BorderSide(width: 1, color: Color(0xFFABA9A9)),
),
),
@ -1313,7 +1323,7 @@ class CardGenre_temp extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
),
child: FlutterLogo(),
child: const FlutterLogo(),
),
],
),
@ -1333,6 +1343,8 @@ class CardGenre_temp extends StatelessWidget {
}
class Event_Card extends StatelessWidget {
const Event_Card({super.key});
@override
Widget build(BuildContext context) {
return Column(
@ -1344,14 +1356,14 @@ class Event_Card extends StatelessWidget {
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
side: BorderSide(
side: const BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignOutside,
color: Color(0xFFDADADA),
),
borderRadius: BorderRadius.circular(9),
),
shadows: [
shadows: const [
BoxShadow(
color: Color(0xFFF8AB14),
blurRadius: 0,
@ -1372,10 +1384,10 @@ class Event_Card extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
SizedBox(
width: double.infinity,
height: 48,
child: Column(
child: const Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
@ -1408,7 +1420,7 @@ class Event_Card extends StatelessWidget {
),
),
Container(
child: Column(
child: const Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
@ -1469,14 +1481,14 @@ class Event_Card extends StatelessWidget {
],
),
),
Container(
SizedBox(
width: 32,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
SizedBox(
width: 32,
height: 32,
child: Row(
@ -1489,7 +1501,7 @@ class Event_Card extends StatelessWidget {
height: 32,
decoration: ShapeDecoration(
color: Colors.white.withOpacity(0.800000011920929),
shape: OvalBorder(
shape: const OvalBorder(
side: BorderSide(width: 1, color: Color(0xFFABA9A9)),
),
),
@ -1501,7 +1513,7 @@ class Event_Card extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
),
child: FlutterLogo(),
child: const FlutterLogo(),
),
],
),

View File

@ -20,13 +20,13 @@ class Categories extends ChangeNotifier{
static Categories get instance => _instance;
// Your singleton methods and properties
static List<Category> _categories = [
static final List<Category> _categories = [
Category(
id: '1',
title: 'Musik',
imageUrl: 'assets/images/Musik.png',
iconUrl:'assets/images/Icons/Icon_Musik.png',
color: Color.fromARGB(255, 249, 171, 21), //FD4949 //Musik
color: const Color.fromARGB(255, 249, 171, 21), //FD4949 //Musik
category: '34725c49-740b-45c5-8a51-7c742f92a621',
textheight: 86,
amount:0,
@ -36,7 +36,7 @@ class Categories extends ChangeNotifier{
title: 'Nachtleben',
imageUrl: 'assets/images/Nachtleben.png',
iconUrl:'assets/images/Icons/Icon_Nachtleben.png',
color: Color.fromARGB(255, 253, 73, 73), //FD4949 //Nachtleben
color: const Color.fromARGB(255, 253, 73, 73), //FD4949 //Nachtleben
category: '2d8c714e-3290-4d8c-8a95-e3b100ad8599',
textheight: 86,
amount:0,
@ -46,7 +46,7 @@ class Categories extends ChangeNotifier{
title: 'Kunst & Kultur',
imageUrl: 'assets/images/Kultur.png',
iconUrl:'assets/images/Icons/Icon_Kultur.png',
color: Color.fromARGB(255, 80, 168, 250), //50A8FA//Kunst
color: const Color.fromARGB(255, 80, 168, 250), //50A8FA//Kunst
category: '09d1f862-2b56-47af-8ee6-3c50056e3fa2',
textheight: 58,
amount:0,
@ -56,7 +56,7 @@ class Categories extends ChangeNotifier{
title: 'Sport & Verein',
imageUrl: 'assets/images/Sport.png',
iconUrl:'assets/images/Icons/Icon_Sport.png',
color: Color.fromARGB(255, 80, 240, 250), //50F0FA //Sport
color: const Color.fromARGB(255, 80, 240, 250), //50F0FA //Sport
category: '15119876-9ff0-41e5-8fe5-c3675af5e054',
textheight: 58,
amount:0,
@ -66,7 +66,7 @@ class Categories extends ChangeNotifier{
title: 'Gesundheit',
imageUrl: 'assets/images/Gesundheit.png',
iconUrl:'assets/images/Icons/Icon_Gesundheit.png',
color: Color.fromARGB(255,130, 73, 253), //8249FD //Gesundheit
color: const Color.fromARGB(255,130, 73, 253), //8249FD //Gesundheit
category: '4ad3ac2d-04fc-4aa1-afae-17ec7bfc1714',
textheight: 86,
amount:0,
@ -76,7 +76,7 @@ class Categories extends ChangeNotifier{
title: 'Essen & Trinken',
imageUrl: 'assets/images/Essen.png',
iconUrl:'assets/images/Icons/Icon_Essen.png',
color: Color.fromARGB(255,253, 73,73), //FD4949//Essen
color: const Color.fromARGB(255,253, 73,73), //FD4949//Essen
category: 'ef83c4d3-228a-44e1-8a5d-8b47d2dfc351',
textheight: 58,
amount:0,
@ -86,7 +86,7 @@ class Categories extends ChangeNotifier{
title: 'Soziales',
imageUrl: 'assets/images/Soziales.png',
iconUrl:'assets/images/Icons/Icon_Soziales.png',
color: Color.fromARGB(255,255,0,199), //FF00C7//Essen
color: const Color.fromARGB(255,255,0,199), //FF00C7//Essen
category: '53a1782b-e07b-491d-b778-d99ef9cf57e2',
textheight: 86,
amount:0,
@ -96,7 +96,7 @@ class Categories extends ChangeNotifier{
title: 'Familie',
imageUrl: 'assets/images/Familie.png',
iconUrl:'assets/images/Icons/Icon_Familie.png',
color: Color.fromARGB(255,66,255,0), //42FF00//Essen //HSL 104 100 50 100
color: const Color.fromARGB(255,66,255,0), //42FF00//Essen //HSL 104 100 50 100
category: '30cb3481-c425-4068-9714-adc86df85d3f',
textheight: 86,
amount:0,
@ -186,7 +186,7 @@ class SupabaseDataService {
.single();
return response as Map<String, dynamic>;
return response;
} catch (e) {
throw Exception('Failed to fetch record: $e');
}