fix: Archive
This commit is contained in:
parent
8af9af10ae
commit
eac784e33b
11 changed files with 89 additions and 53 deletions
|
|
@ -21,11 +21,9 @@ class ArchiveController extends State<Archive> {
|
|||
Future<List<Room>> getArchive(BuildContext context) async {
|
||||
final archive = this.archive;
|
||||
if (archive != null) return archive;
|
||||
return await Matrix.of(context).client.loadArchive();
|
||||
return this.archive = await Matrix.of(context).client.loadArchive();
|
||||
}
|
||||
|
||||
void forgetAction(int i) => setState(() => archive?.removeAt(i));
|
||||
|
||||
void forgetAllAction() async {
|
||||
final archive = this.archive;
|
||||
if (archive == null) return;
|
||||
|
|
|
|||
|
|
@ -21,10 +21,14 @@ class ArchiveView extends StatelessWidget {
|
|||
leading: const BackButton(),
|
||||
title: Text(L10n.of(context)!.archive),
|
||||
actions: [
|
||||
if (snapshot.hasData && archive != null && archive!.isNotEmpty)
|
||||
TextButton(
|
||||
onPressed: controller.forgetAllAction,
|
||||
child: Text(L10n.of(context)!.clearArchive),
|
||||
if (snapshot.data?.isNotEmpty ?? false)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: TextButton.icon(
|
||||
onPressed: controller.forgetAllAction,
|
||||
label: Text(L10n.of(context)!.clearArchive),
|
||||
icon: const Icon(Icons.cleaning_services_outlined),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
|
|
@ -50,7 +54,6 @@ class ArchiveView extends StatelessWidget {
|
|||
itemCount: archive!.length,
|
||||
itemBuilder: (BuildContext context, int i) => ChatListItem(
|
||||
archive![i],
|
||||
onForget: controller.forgetAction,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue