feat: tela de apps com logos/menu de exclusao, correcao de tema nas mini apps e sidebar de navegacao
Some checks failed
Main Deploy Workflow / deploy_web (push) Has been cancelled
Main Deploy Workflow / deploy_playstore_internal (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled

This commit is contained in:
2026-09-19 00:08:35 -03:00
parent 1f692b1e4e
commit 6c689d1f34
23 changed files with 1039 additions and 114 deletions

View File

@@ -4,15 +4,16 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import 'package:async/async.dart';
import 'package:tatchat/l10n/l10n.dart';
import 'package:tatchat/widgets/avatar.dart';
import 'package:tatchat/widgets/matrix.dart';
import 'package:go_router/go_router.dart';
import 'package:material_ui/material_ui.dart';
import 'package:matrix/matrix.dart' hide Result;
import 'package:tatchat/config/themes.dart';
import 'package:tatchat/l10n/l10n.dart';
import 'package:tatchat/utils/tatu_share.dart';
import 'package:tatchat/widgets/avatar.dart';
import 'package:tatchat/widgets/matrix.dart';
import 'package:url_launcher/url_launcher_string.dart';
import 'package:tatchat/utils/tatu_share.dart';
import 'chat_list.dart';
class ClientChooserButton extends StatelessWidget {
@@ -30,6 +31,23 @@ class ClientChooserButton extends StatelessWidget {
? -1
: 1,
);
if (FluffyThemes.isColumnMode(context)) {
// In column mode the settings/actions live in the navigation sidebar,
// so the avatar popup only offers the account switcher.
return <PopupMenuEntry<Object>>[
..._bundleEntries(context, matrix, bundles),
PopupMenuItem(
value: SettingsAction.addAccount,
child: Row(
children: [
const Icon(Icons.person_add_outlined),
const SizedBox(width: 18),
Text(L10n.of(context).addAccount),
],
),
),
];
}
return <PopupMenuEntry<Object>>[
PopupMenuItem(
value: SettingsAction.newGroup,
@@ -102,6 +120,26 @@ class ClientChooserButton extends StatelessWidget {
),
),
const PopupMenuDivider(),
..._bundleEntries(context, matrix, bundles),
PopupMenuItem(
value: SettingsAction.addAccount,
child: Row(
children: [
const Icon(Icons.person_add_outlined),
const SizedBox(width: 18),
Text(L10n.of(context).addAccount),
],
),
),
];
}
List<PopupMenuEntry<Object>> _bundleEntries(
BuildContext context,
MatrixState matrix,
List<String?> bundles,
) {
return <PopupMenuEntry<Object>>[
for (final bundle in bundles) ...[
if (matrix.accountBundles[bundle]!.length != 1 ||
matrix.accountBundles[bundle]!.single!.userID != bundle)
@@ -163,16 +201,6 @@ class ClientChooserButton extends StatelessWidget {
),
),
],
PopupMenuItem(
value: SettingsAction.addAccount,
child: Row(
children: [
const Icon(Icons.person_add_outlined),
const SizedBox(width: 18),
Text(L10n.of(context).addAccount),
],
),
),
];
}