diff --git a/analysis_options.yaml b/analysis_options.yaml index acc17647..fedac90d 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,61 +1,61 @@ -#include: package:pedantic/analysis_options.yaml -# -#analyzer: -# exclude: -# - lib/**/*.g.dart -# - example/* -# -#linter: -# rules: -# # these rules are documented on and in the same order as -# # the Dart Lint rules page to make maintenance easier -# # https://github.com/dart-lang/linter/blob/master/example/all.yaml -# # - always_declare_return_types -# # - always_specify_types -# # - annotate_overrides -# # - avoid_as -# - avoid_empty_else -# - avoid_init_to_null -# - avoid_return_types_on_setters -# - avoid_web_libraries_in_flutter -# - await_only_futures -# - camel_case_types -# - cancel_subscriptions -# - close_sinks -# # - comment_references # we do not presume as to what people want to reference in their dartdocs -# # - constant_identifier_names # https://github.com/dart-lang/linter/issues/204 -# - control_flow_in_finally -# - empty_constructor_bodies -# - empty_statements -# - hash_and_equals -# - implementation_imports -# # - invariant_booleans -# # - iterable_contains_unrelated_type -# - library_names -# # - library_prefixes -# # - list_remove_unrelated_type -# # - literal_only_boolean_expressions -# - non_constant_identifier_names -# # - one_member_abstracts -# # - only_throw_errors -# # - overridden_fields -## - package_api_docs -# - package_names -# - package_prefixed_library_names -# - prefer_is_not_empty -# # - prefer_mixin # https://github.com/dart-lang/language/issues/32 -## - public_member_api_docs -# - slash_for_doc_comments -# # - sort_constructors_first -# # - sort_unnamed_constructors_first -# # - super_goes_last # no longer needed w/ Dart 2 -# - test_types_in_equals -# - throw_in_finally -# # - type_annotate_public_apis # subset of always_specify_types -# - type_init_formals -# # - unawaited_futures -# - unnecessary_brace_in_string_interps -# - unnecessary_getters_setters -# - unnecessary_statements -# - unrelated_type_equality_checks -# - valid_regexps +include: package:pedantic/analysis_options.yaml + +analyzer: + exclude: + - lib/**/*.g.dart + - example/* + +linter: + rules: + # these rules are documented on and in the same order as + # the Dart Lint rules page to make maintenance easier + # https://github.com/dart-lang/linter/blob/master/example/all.yaml + # - always_declare_return_types + # - always_specify_types + # - annotate_overrides + # - avoid_as + - avoid_empty_else + - avoid_init_to_null + - avoid_return_types_on_setters + - avoid_web_libraries_in_flutter + - await_only_futures + - camel_case_types + - cancel_subscriptions + - close_sinks + # - comment_references # we do not presume as to what people want to reference in their dartdocs + # - constant_identifier_names # https://github.com/dart-lang/linter/issues/204 + - control_flow_in_finally + - empty_constructor_bodies + - empty_statements + - hash_and_equals + - implementation_imports + # - invariant_booleans + # - iterable_contains_unrelated_type + - library_names + # - library_prefixes + # - list_remove_unrelated_type + # - literal_only_boolean_expressions + - non_constant_identifier_names + # - one_member_abstracts + # - only_throw_errors + # - overridden_fields +# - package_api_docs + - package_names + - package_prefixed_library_names + - prefer_is_not_empty + # - prefer_mixin # https://github.com/dart-lang/language/issues/32 +# - public_member_api_docs + - slash_for_doc_comments + # - sort_constructors_first + # - sort_unnamed_constructors_first + # - super_goes_last # no longer needed w/ Dart 2 + - test_types_in_equals + - throw_in_finally + # - type_annotate_public_apis # subset of always_specify_types + - type_init_formals + # - unawaited_futures + - unnecessary_brace_in_string_interps + - unnecessary_getters_setters + - unnecessary_statements + - unrelated_type_equality_checks + - valid_regexps diff --git a/lib/src/channel_list_view.dart b/lib/src/channel_list_view.dart index 329f27a5..e9114403 100644 --- a/lib/src/channel_list_view.dart +++ b/lib/src/channel_list_view.dart @@ -126,7 +126,7 @@ class _ChannelListViewState extends State { return widget.errorBuilder(snapshot.error); } - String message = snapshot.error.toString(); + var message = snapshot.error.toString(); if (snapshot.error is DioError) { final dioError = snapshot.error as DioError; if (dioError.type == DioErrorType.RESPONSE) { diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index 93b2d3ff..b6e3beba 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -68,6 +68,9 @@ class ChannelPreview extends StatelessWidget { stream: channel.lastMessageAtStream, initialData: channel.lastMessageAt, builder: (context, snapshot) { + if (!snapshot.hasData) { + return SizedBox(); + } final lastMessageAt = snapshot.data.toLocal(); String stringDate; diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index 1b9a688d..4067092a 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -93,7 +93,7 @@ class _MessageWidgetState extends State final alignment = _isMyMessage ? Alignment.centerRight : Alignment.centerLeft; - List row = [ + var row = [ Column( crossAxisAlignment: _isMyMessage ? CrossAxisAlignment.end : CrossAxisAlignment.start, @@ -302,7 +302,7 @@ class _MessageWidgetState extends State })); if (widget.message.text.trim().isNotEmpty) { - String text = widget.message.text; + var text = widget.message.text; text = _replaceMentions(text); column.addAll(