From 47f3d5f53c7f6857af6493cc32f20bdfd36b96bd Mon Sep 17 00:00:00 2001 From: Aliaksei Tratseuski Date: Tue, 30 Apr 2024 02:49:06 +0400 Subject: [PATCH] feat: added translations to some of console page elements, empty view when there are 0 logs in console yet. --- assets/translations/en.json | 18 ++++++++++- .../more/console/console_log_item_dialog.dart | 32 +++++++++---------- lib/ui/pages/more/console/console_page.dart | 20 +++++++++--- 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index f5194cdd..50d2b715 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -47,7 +47,23 @@ "console_page": { "title": "Console", "waiting": "Waiting for initialization…", - "copy": "Copy" + "copy": "Copy", + "historyEmpty": "No data yet", + "error":"Error", + "log":"Log", + "rest_api_request":"Rest API Request", + "rest_api_response":"Rest API Response", + "graphql_request":"GraphQL Request", + "graphql_response":"GraphQL Response", + "logged_at": "logged at: ", + "data": "Data", + "erros":"Errors", + "request_data": "Request data", + "headers": "Headers", + "response_data": "Response data", + "context": "Context", + "operation": "Operation", + "variables": "Variables" }, "about_application_page": { "title": "About & support", diff --git a/lib/ui/pages/more/console/console_log_item_dialog.dart b/lib/ui/pages/more/console/console_log_item_dialog.dart index 89e7abb2..686eec77 100644 --- a/lib/ui/pages/more/console/console_log_item_dialog.dart +++ b/lib/ui/pages/more/console/console_log_item_dialog.dart @@ -10,36 +10,35 @@ extension on ConsoleLog { if (log.uri != null) _KeyValueRow('uri', log.uri.toString()), // headers bloc - if (log.headers?.isNotEmpty ?? false) const _SectionRow('Headers'), + if (log.headers?.isNotEmpty ?? false) + const _SectionRow('console_page.headers'), ...?log.headers?.entries .map((final entry) => _KeyValueRow(entry.key, entry.value)), // data bloc - const _SectionRow('Request data'), + const _SectionRow('console_page.data'), _DataRow(log.data?.toString()), ], (final RestApiResponseConsoleLog log) => [ if (log.method != null) _KeyValueRow('method', log.method), if (log.uri != null) _KeyValueRow('uri', log.uri.toString()), if (log.statusCode != null) - _KeyValueRow( - 'statusCode', - log.statusCode.toString(), - ), + _KeyValueRow('statusCode', log.statusCode.toString()), // data bloc - const _SectionRow('Response data'), + const _SectionRow('console_page.response_data'), _DataRow(log.data?.toString()), ], (final GraphQlRequestConsoleLog log) => [ // context - const _SectionRow('Context'), + const _SectionRow('console_page.context'), _DataRow(log.context?.toString()), // data - if (log.operation != null) const _SectionRow('Operation'), + if (log.operation != null) + const _SectionRow('console_page.operation'), _DataRow(log.stringifiedOperation), // errors if (log.variables?.isNotEmpty ?? false) - const _SectionRow('Variables'), + const _SectionRow('console_page.variables'), ...?log.variables?.entries.map( (final entry) => _KeyValueRow( entry.key, @@ -49,10 +48,10 @@ extension on ConsoleLog { ], (final GraphQlResponseConsoleLog log) => [ // context - const _SectionRow('Context'), + const _SectionRow('console_page.context'), _DataRow(log.context?.toString()), // data - if (log.data != null) const _SectionRow('Data'), + if (log.data != null) const _SectionRow('console_page.data'), ...?log.data?.entries.map( (final entry) => _KeyValueRow( entry.key, @@ -60,7 +59,8 @@ extension on ConsoleLog { ), ), // errors - if (log.errors?.isNotEmpty ?? false) const _SectionRow('Errors'), + if (log.errors?.isNotEmpty ?? false) + const _SectionRow('console_page.errors'), ...?log.errors?.map( (final entry) => _KeyValueRow( entry.message, @@ -94,8 +94,7 @@ class ConsoleItemDialog extends StatelessWidget { children: [ Row( children: [ - /// TODO(misterfourtytwo): maybe should add translations later - const Text('logged at: '), + Text('logged_at'.tr()), SelectableText( log.timeString, style: const TextStyle( @@ -160,6 +159,7 @@ class _DataRow extends StatelessWidget { class _SectionRow extends StatelessWidget { const _SectionRow(this.title); + final String title; @override @@ -175,7 +175,7 @@ class _SectionRow extends StatelessWidget { ), ), child: SelectableText( - title, + title.tr(), style: const TextStyle( fontWeight: FontWeight.w800, fontSize: 20, diff --git a/lib/ui/pages/more/console/console_page.dart b/lib/ui/pages/more/console/console_page.dart index 974887d5..83618ba2 100644 --- a/lib/ui/pages/more/console/console_page.dart +++ b/lib/ui/pages/more/console/console_page.dart @@ -78,12 +78,14 @@ class _ConsolePageState extends State { final AsyncSnapshot snapshot, ) { if (snapshot.hasData) { - final List messages = + final List logs = getIt.get().logs; - return _ConsoleViewLoaded( - logs: messages, - ); + return logs.isEmpty + ? const _ConsoleViewEmpty() + : _ConsoleViewLoaded( + logs: logs, + ); } return const _ConsoleViewLoading(); @@ -115,6 +117,16 @@ class _ConsoleViewLoading extends StatelessWidget { ); } +class _ConsoleViewEmpty extends StatelessWidget { + const _ConsoleViewEmpty(); + + @override + Widget build(final BuildContext context) => Align( + alignment: Alignment.topCenter, + child: Text('console_page.historyEmpty'.tr()), + ); +} + class _ConsoleViewLoaded extends StatelessWidget { const _ConsoleViewLoaded({required this.logs});