refactor badges
This commit is contained in:
parent
6523420120
commit
8d0eafae8a
5 changed files with 26 additions and 9 deletions
|
|
@ -3,9 +3,9 @@ import "package:nexus/controllers/spaces_controller.dart";
|
|||
import "package:nexus/helpers/extension_helper.dart";
|
||||
import "package:nexus/models/full_room.dart";
|
||||
|
||||
class CurrentRoomController extends AsyncNotifier<FullRoom> {
|
||||
class CurrentRoomController extends AsyncNotifier<FullRoom?> {
|
||||
@override
|
||||
Future<FullRoom> build() async => (await ref.watch(
|
||||
Future<FullRoom?> build() async => (await ref.watch(
|
||||
SpacesController.provider.future,
|
||||
))[0].children[0].roomData.fullRoom;
|
||||
|
||||
|
|
@ -15,7 +15,7 @@ class CurrentRoomController extends AsyncNotifier<FullRoom> {
|
|||
}
|
||||
|
||||
static final provider =
|
||||
AsyncNotifierProvider<CurrentRoomController, FullRoom>(
|
||||
AsyncNotifierProvider<CurrentRoomController, FullRoom?>(
|
||||
CurrentRoomController.new,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ class MessageController extends AsyncNotifier<TextMessage?> {
|
|||
@override
|
||||
Future<TextMessage?> build() async {
|
||||
final room = await ref.watch(CurrentRoomController.provider.future);
|
||||
if (room == null) return null;
|
||||
|
||||
final event = await room.roomData.getEventById(id);
|
||||
return (await event?.toMessage(mustBeText: true)) as TextMessage;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,18 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:nexus/controllers/secure_storage_controller.dart";
|
||||
|
||||
class SettingsPage extends StatelessWidget {
|
||||
class SettingsPage extends ConsumerWidget {
|
||||
const SettingsPage({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(appBar: AppBar(title: Text("Settings")));
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: Text("Settings")),
|
||||
body: ElevatedButton(
|
||||
onPressed: ref.watch(SecureStorageController.provider.notifier).clear,
|
||||
child: Text("Log out"),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,9 +31,8 @@ class AvatarOrHash extends StatelessWidget {
|
|||
child: Center(
|
||||
child: Badge(
|
||||
isLabelVisible: hasBadge,
|
||||
label: SizedBox.shrink(),
|
||||
offset: Offset(8, -8),
|
||||
backgroundColor: Theme.of(context).colorScheme.primary,
|
||||
smallSize: 8,
|
||||
backgroundColor: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.all(Radius.circular(4)),
|
||||
child: SizedBox(
|
||||
|
|
|
|||
|
|
@ -60,6 +60,14 @@ class RoomChat extends HookConsumerWidget {
|
|||
.watch(CurrentRoomController.provider)
|
||||
.betterWhen(
|
||||
data: (room) {
|
||||
if (room == null) {
|
||||
return Center(
|
||||
child: Text(
|
||||
"Nothing to see here...",
|
||||
style: theme.textTheme.headlineMedium,
|
||||
),
|
||||
);
|
||||
}
|
||||
final controllerProvider = RoomChatController.provider(
|
||||
room.roomData,
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue