media default and content

This commit is contained in:
Joshua Burman 2025-01-03 20:37:45 -05:00
parent 32826abcea
commit 9fc5fb5d22
5 changed files with 26 additions and 119 deletions

View File

@ -19,7 +19,7 @@ Future<void> seedDb(AppDatabase database) async {
[
'Off-Wall Training',
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
'Climbers Rcok Inc.'
'Climbers Rock Inc.'
],
[
'Climbing Outdoors',

View File

@ -7,17 +7,6 @@ import 'package:sendtrain/daos/sessions_dao.dart';
import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/widgets/generic/elements/form_text_input.dart';
// class AchievementEditor extends StatefulWidget {
// const AchievementEditor({super.key, required this.session, this.callback});
// final Session session;
// final Function? callback;
// @override
// State<AchievementEditor> createState() => _AchievementEditorState();
// }
// class _AchievementEditorState extends State<AchievementEditor> {
class AchievementEditor extends StatelessWidget {
AchievementEditor({super.key, required this.session, this.callback});
@ -43,7 +32,7 @@ class AchievementEditor extends StatelessWidget {
child: Text('Create Achievement',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleLarge)),
FormTextInput(controller: tec, title: 'Achievement'),
FormTextInput(controller: tec, title: 'Achievement', icon: Icon(Icons.military_tech_rounded)),
Row(mainAxisAlignment: MainAxisAlignment.end, children: [
Padding(
padding: EdgeInsets.only(top: 10),
@ -52,7 +41,7 @@ class AchievementEditor extends StatelessWidget {
onPressed: () async {
session.achievements;
List achievements =
json.decode(session.achievements!);
json.decode(session.achievements ?? "[]");
achievements.add(tec.text);
Session updatedSession = session.copyWith(
achievements:

View File

@ -4,7 +4,6 @@ import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:provider/provider.dart';
import 'package:sendtrain/daos/activities_dao.dart';
import 'package:sendtrain/daos/sessions_dao.dart';
import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/extensions/string_extensions.dart';
@ -70,10 +69,6 @@ class _SessionViewState extends State<SessionView> {
stream: SessionsDao(Provider.of<AppDatabase>(context))
.watchSession(session.id),
builder: (context, snapshot) {
// return StreamBuilder<List<Activity>>(
// stream: ActivitiesDao(Provider.of<AppDatabase>(context))
// .watchSessionActivities(session.id),
// builder: (context, snapshot) {
if (snapshot.hasData) {
return Scaffold(
floatingActionButtonLocation: ExpandableFab.location,
@ -158,7 +153,8 @@ class _SessionViewState extends State<SessionView> {
style: const TextStyle(
fontSize: 25, fontWeight: FontWeight.bold),
title())),
SessionViewAchievements(session: session, callback: resetState),
SessionViewAchievements(
session: session, callback: resetState),
Padding(
padding: const EdgeInsets.only(left: 15, right: 15),
child: Text(

View File

@ -83,99 +83,3 @@ class SessionViewAchievements extends StatelessWidget {
);
}
}
// class SessionViewAchievements extends StatefulWidget {
// const SessionViewAchievements({super.key, required this.session});
// final Session session;
// @override
// State<SessionViewAchievements> createState() =>
// _SessionViewAchievementsState();
// }
// class _SessionViewAchievementsState extends State<SessionViewAchievements> {
// late final AppDatabase db;
// late Session session;
// late List achievements;
// @override
// void initState() {
// super.initState();
// db = Provider.of<AppDatabase>(context, listen: false);
// session = widget.session;
// achievements = json.decode(session.achievements!);
// }
// void resetState(int sessionId) async {
// Session updatedSession =
// await SessionsDao(Provider.of<AppDatabase>(context, listen: false))
// .find(sessionId);
// setState(() {
// session = updatedSession;
// achievements = json.decode(session.achievements!);
// });
// }
// Session updateAchievements(int index) {
// achievements.removeAt(index);
// return session.copyWith(
// achievements: Value<String>(json.encode(achievements)));
// }
// @override
// Widget build(BuildContext context) {
// Widget content;
// if (achievements.isEmpty) {
// content = Padding(
// padding: const EdgeInsets.only(left: 10, right: 5),
// child: ActionChip(
// visualDensity: VisualDensity.compact,
// avatar: const Icon(Icons.check_circle_outline),
// label: Text(maxLines: 1, 'Add Achievements!'),
// onPressed: () {
// showEditorSheet(context,
// AchievementEditor(session: session, callback: resetState));
// },
// ));
// } else {
// content = ListView.builder(
// scrollDirection: Axis.horizontal,
// padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
// itemCount: achievements.length,
// itemBuilder: (BuildContext context, int index) {
// return Padding(
// padding: const EdgeInsets.only(right: 5),
// child: ActionChip(
// visualDensity: VisualDensity.compact,
// avatar: const Icon(Icons.check_circle_outline),
// label: Text(
// maxLines: 1,
// achievements[index].toString().toTitleCase()),
// onPressed: () async {
// // remove the achievement at index
// // then update session
// Session newSession = updateAchievements(index);
// await showUpdateDialog(
// 'Achievement Removal',
// 'Would you like to remove this achievement?',
// context,
// SessionsDao(db),
// newSession,
// resetState);
// }));
// },
// );
// }
// return Column(
// children: [
// Padding(
// padding: const EdgeInsets.only(bottom: 10),
// child: SizedBox(height: 40, child: content)),
// ],
// );
// }
// }

View File

@ -2,7 +2,9 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:sendtrain/daos/media_items_dao.dart';
import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/helpers/widget_helpers.dart';
import 'package:sendtrain/widgets/media/media_card.dart';
import 'package:sendtrain/widgets/sessions/session_editor.dart';
class SessionViewMedia extends StatefulWidget {
const SessionViewMedia({super.key, required this.session});
@ -27,8 +29,24 @@ class _SessionViewMediaState extends State<SessionViewMedia> {
if (snapshot.hasData) {
final mediaItems = snapshot.data!;
List<Widget> content;
if (mediaItems.isNotEmpty) {
List<Widget> mediaCards = List.generate(mediaItems.length,
(i) => MediaCard(media: mediaItems[i], callback: resetState));
content = mediaCards;
} else {
content = [
FloatingActionButton(
onPressed: () {
showEditorSheet(
context,
SessionEditor(
session: widget.session, callback: resetState));
},
mini: true,
child: Icon(Icons.add_a_photo_rounded))
];
}
return Column(
children: [
@ -41,7 +59,7 @@ class _SessionViewMediaState extends State<SessionViewMedia> {
crossAxisSpacing: 5,
mainAxisSpacing: 5,
crossAxisCount: 1,
children: mediaCards))
children: content))
],
);
} else {