✨ Chat, chat local db, chat messaging retriving (no sync yet)
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:island/models/file.dart';
|
||||
@ -42,18 +43,21 @@ class CloudFileWidget extends ConsumerWidget {
|
||||
}
|
||||
|
||||
class ProfilePictureWidget extends ConsumerWidget {
|
||||
final SnCloudFile? item;
|
||||
final String? fileId;
|
||||
final double radius;
|
||||
final IconData? fallbackIcon;
|
||||
const ProfilePictureWidget({
|
||||
super.key,
|
||||
required this.item,
|
||||
required this.fileId,
|
||||
this.radius = 20,
|
||||
this.fallbackIcon,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final serverUrl = ref.watch(serverUrlProvider);
|
||||
final uri = '$serverUrl/files/$fileId';
|
||||
|
||||
return ClipRRect(
|
||||
borderRadius: BorderRadius.all(Radius.circular(radius)),
|
||||
child: Container(
|
||||
@ -61,12 +65,12 @@ class ProfilePictureWidget extends ConsumerWidget {
|
||||
height: radius * 2,
|
||||
color: Theme.of(context).colorScheme.primaryContainer,
|
||||
child:
|
||||
item == null
|
||||
fileId == null
|
||||
? Icon(
|
||||
fallbackIcon ?? Symbols.account_circle,
|
||||
size: radius,
|
||||
).center()
|
||||
: CloudFileWidget(item: item!),
|
||||
: CachedNetworkImage(imageUrl: uri, fit: BoxFit.cover),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ class PostItem extends HookConsumerWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
spacing: 12,
|
||||
children: [
|
||||
ProfilePictureWidget(item: item.publisher.picture),
|
||||
ProfilePictureWidget(fileId: item.publisher.pictureId),
|
||||
Expanded(
|
||||
child: GestureDetector(
|
||||
child: Column(
|
||||
|
@ -66,7 +66,7 @@ class PostQuickReply extends HookConsumerWidget {
|
||||
children: [
|
||||
GestureDetector(
|
||||
child: ProfilePictureWidget(
|
||||
item: currentPublisher.value?.picture,
|
||||
fileId: currentPublisher.value?.pictureId,
|
||||
radius: 16,
|
||||
),
|
||||
onTap: () {
|
||||
|
@ -68,7 +68,7 @@ class PublisherModal extends HookConsumerWidget {
|
||||
for (final publisher in value)
|
||||
ListTile(
|
||||
leading: ProfilePictureWidget(
|
||||
item: publisher.picture,
|
||||
fileId: publisher.picture?.id,
|
||||
),
|
||||
title: Text(publisher.nick),
|
||||
subtitle: Text('@${publisher.name}'),
|
||||
|
Reference in New Issue
Block a user