Tweak bible font and avatar image layout
This commit is contained in:
@@ -6,6 +6,8 @@ services:
|
||||
context: ./backend
|
||||
ports:
|
||||
- "4000:4000"
|
||||
volumes:
|
||||
- backend-uploads:/app/uploads
|
||||
environment:
|
||||
PORT: "4000"
|
||||
MONGODB_URI: "mongodb://mongo:27017/google-tv-dashboard"
|
||||
@@ -25,3 +27,4 @@ services:
|
||||
|
||||
volumes:
|
||||
mongo-data:
|
||||
backend-uploads:
|
||||
|
||||
@@ -114,17 +114,27 @@ class _FamilyManagerTabState extends State<FamilyManagerTab> {
|
||||
return ListTile(
|
||||
leading: CircleAvatar(
|
||||
backgroundColor: memberColor,
|
||||
backgroundImage: member.iconUrl.isNotEmpty
|
||||
? NetworkImage(member.iconUrl)
|
||||
: null,
|
||||
child: member.iconUrl.isEmpty
|
||||
? Text(
|
||||
child: member.iconUrl.isNotEmpty
|
||||
? ClipOval(
|
||||
child: Image.network(
|
||||
member.iconUrl,
|
||||
width: 40,
|
||||
height: 40,
|
||||
fit: BoxFit.cover,
|
||||
errorBuilder: (context, error, stackTrace) => Text(
|
||||
member.name.isNotEmpty
|
||||
? member.name[0].toUpperCase()
|
||||
: '?',
|
||||
style: const TextStyle(fontSize: 20),
|
||||
),
|
||||
),
|
||||
)
|
||||
: Text(
|
||||
member.name.isNotEmpty
|
||||
? member.name[0].toUpperCase()
|
||||
: '?',
|
||||
style: const TextStyle(fontSize: 20),
|
||||
)
|
||||
: null,
|
||||
),
|
||||
),
|
||||
title: Text(member.name),
|
||||
subtitle: Text('Order: ${member.order}'),
|
||||
@@ -185,12 +195,16 @@ class _FamilyManagerTabState extends State<FamilyManagerTab> {
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundColor: selectedColor,
|
||||
backgroundImage: selectedIconBytes != null
|
||||
? MemoryImage(selectedIconBytes!)
|
||||
: null,
|
||||
child: selectedIconBytes == null
|
||||
? const Icon(Icons.person, color: Colors.white)
|
||||
: null,
|
||||
child: selectedIconBytes != null
|
||||
? ClipOval(
|
||||
child: Image.memory(
|
||||
selectedIconBytes!,
|
||||
width: 40,
|
||||
height: 40,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)
|
||||
: const Icon(Icons.person, color: Colors.white),
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
ElevatedButton.icon(
|
||||
@@ -377,12 +391,33 @@ class _FamilyManagerTabState extends State<FamilyManagerTab> {
|
||||
children: [
|
||||
CircleAvatar(
|
||||
backgroundColor: selectedColor,
|
||||
backgroundImage: selectedIconBytes != null
|
||||
? MemoryImage(selectedIconBytes!)
|
||||
: previewImage,
|
||||
child: (selectedIconBytes == null && previewImage == null)
|
||||
? Text(member.name.isNotEmpty ? member.name[0] : '?')
|
||||
: null,
|
||||
child: selectedIconBytes != null
|
||||
? ClipOval(
|
||||
child: Image.memory(
|
||||
selectedIconBytes!,
|
||||
width: 40,
|
||||
height: 40,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)
|
||||
: (previewImage != null
|
||||
? ClipOval(
|
||||
child: Image(
|
||||
image: previewImage!,
|
||||
width: 40,
|
||||
height: 40,
|
||||
fit: BoxFit.cover,
|
||||
errorBuilder:
|
||||
(context, error, stackTrace) => Text(
|
||||
member.name.isNotEmpty
|
||||
? member.name[0]
|
||||
: '?',
|
||||
),
|
||||
),
|
||||
)
|
||||
: Text(member.name.isNotEmpty
|
||||
? member.name[0]
|
||||
: '?')),
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
ElevatedButton.icon(
|
||||
|
||||
@@ -60,7 +60,7 @@ class BibleVerseWidget extends StatelessWidget {
|
||||
Text(
|
||||
verse.text,
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodyLarge?.copyWith(
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
color: Colors.white,
|
||||
height: 1.5,
|
||||
fontStyle: FontStyle.italic,
|
||||
|
||||
@@ -129,11 +129,28 @@ class TodoListWidget extends StatelessWidget {
|
||||
contentPadding: EdgeInsets.zero,
|
||||
leading: CircleAvatar(
|
||||
backgroundColor: memberColor.withOpacity(0.2),
|
||||
backgroundImage: member.iconUrl.isNotEmpty
|
||||
? NetworkImage(member.iconUrl)
|
||||
: null,
|
||||
child: member.iconUrl.isEmpty
|
||||
? (member.name.isNotEmpty
|
||||
child: member.iconUrl.isNotEmpty
|
||||
? ClipOval(
|
||||
child: Image.network(
|
||||
member.iconUrl,
|
||||
width: 40,
|
||||
height: 40,
|
||||
fit: BoxFit.cover,
|
||||
errorBuilder: (context, error, stackTrace) {
|
||||
return Text(
|
||||
member.name.isNotEmpty
|
||||
? member.name[0].toUpperCase()
|
||||
: '?',
|
||||
style: TextStyle(
|
||||
color: memberColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 20,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
: (member.name.isNotEmpty
|
||||
? Text(
|
||||
member.name[0].toUpperCase(),
|
||||
style: TextStyle(
|
||||
@@ -145,8 +162,7 @@ class TodoListWidget extends StatelessWidget {
|
||||
: Icon(
|
||||
Icons.person,
|
||||
color: memberColor,
|
||||
))
|
||||
: null,
|
||||
)),
|
||||
),
|
||||
title: Text(
|
||||
todo.title,
|
||||
|
||||
Reference in New Issue
Block a user