Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/pr_title.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
- synchronize
branches:
- main
- main-design-system
- main-design-system # Remove this once the design system is merged into main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -21,13 +21,13 @@ jobs:
with:
scopes: |
llc
ui
repo
requireScope: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

semantic_changelog_update:
if: ${{ false }} # TODO: Enable after the first release
needs: conventional_pr_title # Trigger after the [conventional_pr_title] completes
runs-on: ubuntu-latest
steps:
Expand Down
45 changes: 36 additions & 9 deletions all_lint_rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ linter:
- always_declare_return_types
- always_put_control_body_on_new_line
- always_put_required_named_parameters_first
- always_require_non_null_named_parameters
- always_specify_types
- always_use_package_imports
- annotate_overrides
- annotate_redeclares
- avoid_annotating_with_dynamic
- avoid_bool_literals_in_conditional_expressions
- avoid_catches_without_on_clauses
Expand All @@ -20,6 +20,7 @@ linter:
- avoid_field_initializers_in_const_classes
- avoid_final_parameters
- avoid_function_literals_in_foreach_calls
- avoid_futureor_void
- avoid_implementing_value_types
- avoid_init_to_null
- avoid_js_rounded_ints
Expand All @@ -32,8 +33,6 @@ linter:
- avoid_relative_lib_imports
- avoid_renaming_method_parameters
- avoid_return_types_on_setters
- avoid_returning_null
- avoid_returning_null_for_future
- avoid_returning_null_for_void
- avoid_returning_this
- avoid_setters_without_getters
Expand Down Expand Up @@ -61,12 +60,15 @@ linter:
- constant_identifier_names
- control_flow_in_finally
- curly_braces_in_flow_control_structures
- dangling_library_doc_comments
- depend_on_referenced_packages
- deprecated_consistency
- deprecated_member_use_from_same_package
- diagnostic_describe_all_properties
- directives_ordering
- discarded_futures
- do_not_use_environment
- document_ignores
- empty_catches
- empty_constructor_bodies
- empty_statements
Expand All @@ -76,32 +78,41 @@ linter:
- flutter_style_todos
- hash_and_equals
- implementation_imports
- iterable_contains_unrelated_type
- implicit_call_tearoffs
- implicit_reopen
- invalid_case_patterns
- invalid_runtime_check_with_js_interop_types
- join_return_with_assignment
- leading_newlines_in_multiline_strings
- library_annotations
- library_names
- library_prefixes
- library_private_types_in_public_api
- lines_longer_than_80_chars
- list_remove_unrelated_type
- literal_only_boolean_expressions
- matching_super_parameters
- missing_code_block_language_in_doc_comment
- missing_whitespace_between_adjacent_strings
- no_adjacent_strings_in_list
- no_default_cases
- no_duplicate_case_values
- no_leading_underscores_for_library_prefixes
- no_leading_underscores_for_local_identifiers
- no_literal_bool_comparisons
- no_logic_in_create_state
- no_runtimeType_toString
- no_self_assignments
- no_wildcard_variable_uses
- non_constant_identifier_names
- noop_primitive_operations
- null_check_on_nullable_type_parameter
- null_closures
- omit_local_variable_types
- omit_obvious_local_variable_types
- omit_obvious_property_types
- one_member_abstracts
- only_throw_errors
- overridden_fields
- package_api_docs
- package_names
- package_prefixed_library_names
- parameter_assignments
Expand All @@ -117,7 +128,6 @@ linter:
- prefer_constructors_over_static_methods
- prefer_contains
- prefer_double_quotes
- prefer_equal_for_default_values
- prefer_expression_function_bodies
- prefer_final_fields
- prefer_final_in_for_each
Expand Down Expand Up @@ -148,29 +158,42 @@ linter:
- provide_deprecation_message
- public_member_api_docs
- recursive_getters
- remove_deprecations_in_breaking_versions
- require_trailing_commas
- secure_pubspec_urls
- simplify_variable_pattern
- sized_box_for_whitespace
- sized_box_shrink_expand
- slash_for_doc_comments
- sort_child_properties_last
- sort_constructors_first
- sort_pub_dependencies
- sort_unnamed_constructors_first
- specify_nonobvious_local_variable_types
- specify_nonobvious_property_types
- strict_top_level_inference
- switch_on_type
- test_types_in_equals
- throw_in_finally
- tighten_type_of_initializing_formals
- type_annotate_public_apis
- type_init_formals
- type_literal_in_constant_pattern
- unawaited_futures
- unintended_html_in_doc_comment
- unnecessary_async
- unnecessary_await_in_return
- unnecessary_brace_in_string_interps
- unnecessary_breaks
- unnecessary_const
- unnecessary_constructor_name
- unnecessary_final
- unnecessary_getters_setters
- unnecessary_ignore
- unnecessary_lambdas
- unnecessary_late
- unnecessary_library_directive
- unnecessary_library_name
- unnecessary_new
- unnecessary_null_aware_assignments
- unnecessary_null_aware_operator_on_extension_on_nullable
Expand All @@ -185,9 +208,11 @@ linter:
- unnecessary_string_interpolations
- unnecessary_this
- unnecessary_to_list_in_spreads
- unnecessary_unawaited
- unnecessary_underscores
- unreachable_from_main
- unrelated_type_equality_checks
- unsafe_html
- unsafe_variance
- use_build_context_synchronously
- use_colored_box
- use_decorated_box
Expand All @@ -199,6 +224,7 @@ linter:
- use_key_in_widget_constructors
- use_late_for_private_fields_and_variables
- use_named_constants
- use_null_aware_elements
- use_raw_strings
- use_rethrow_when_possible
- use_setters_to_change_properties
Expand All @@ -207,5 +233,6 @@ linter:
- use_super_parameters
- use_test_throws_matchers
- use_to_and_as_if_applicable
- use_truncating_division
- valid_regexps
- void_checks
- void_checks
19 changes: 17 additions & 2 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ analyzer:
# We explicitly enabled even conflicting rules and are fixing the conflict
# in this file.
included_file_warning: ignore

todo: ignore
exclude:
# exclude all the generated files
- packages/*/lib/**/*.*.dart

formatter:
page_width: 100
trailing_commas: preserve

linter:
rules:
## Disabled rules because the repository doesn't respect them (yet)
Expand Down Expand Up @@ -93,6 +95,19 @@ linter:
# There are situations where we use default in enums on purpose
no_default_cases: false

# Sometimes static methods are more readable
prefer_constructors_over_static_methods: false

# Conflicts with `omit_local_variable_types`
specify_nonobvious_local_variable_types: false
specify_nonobvious_property_types: false

# Makes the code more verbose without adding much value
document_ignores: false

# False positives
unsafe_variance: false

# Temporarily disabled to find more important issues
public_member_api_docs: false
avoid_print: false
45 changes: 0 additions & 45 deletions apps/design_system_gallery/.gitignore

This file was deleted.

28 changes: 0 additions & 28 deletions apps/design_system_gallery/analysis_options.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion apps/design_system_gallery/lib/components/button.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Widget buildCoolButtonUseCase(BuildContext context) {
onTap: () {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Button clicked')));
).showSnackBar(const SnackBar(content: Text('Button clicked')));
},
type: context.knobs.object.dropdown(
label: 'Type',
Expand Down
2 changes: 1 addition & 1 deletion apps/design_system_gallery/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:design_system_gallery/theme_config.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:widgetbook/widgetbook.dart';
Expand All @@ -7,6 +6,7 @@ import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;
// This file does not exist yet,
// it will be generated in the next step
import 'main.directories.g.dart';
import 'theme_config.dart';

void main() {
runApp(const WidgetbookApp());
Expand Down
23 changes: 9 additions & 14 deletions apps/design_system_gallery/lib/theme_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;

@widgetbook.UseCase(name: 'Default', type: ThemeConfig)
Widget buildCoolButtonUseCase(BuildContext context) {
return ThemeConfig();
return const ThemeConfig();
}

class ThemeConfig extends StatelessWidget {
Expand All @@ -18,7 +18,7 @@ class ThemeConfig extends StatelessWidget {

return Column(
children: [
Text('Theme config'),
const Text('Theme config'),
Row(
spacing: 16,
children: [
Expand All @@ -27,16 +27,13 @@ class ThemeConfig extends StatelessWidget {
height: 25,
color: themeConfiguration.themeData.primaryColor,
),
Text('Primary color'),
const Text('Primary color'),
StreamButton(
label: 'Pick color',
onTap: () => pickColor(
context,
themeConfiguration.themeData.primaryColor ??
Theme.of(context).colorScheme.primary,
(color) {
themeConfiguration.setPrimaryColor(color);
},
themeConfiguration.themeData.primaryColor ?? Theme.of(context).colorScheme.primary,
themeConfiguration.setPrimaryColor,
),
),
],
Expand All @@ -45,15 +42,15 @@ class ThemeConfig extends StatelessWidget {
);
}

void pickColor(
Future<void> pickColor(
BuildContext context,
Color pickerColor,
ValueChanged<Color> onColorChanged,
) {
showDialog(
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('Pick a color'),
title: const Text('Pick a color'),
content: SingleChildScrollView(
child: MaterialPicker(
pickerColor: pickerColor,
Expand All @@ -66,11 +63,9 @@ class ThemeConfig extends StatelessWidget {
}

class ThemeConfiguration extends ChangeNotifier {
StreamTheme themeData;

ThemeConfiguration({required this.themeData});

ThemeConfiguration.empty() : themeData = StreamTheme();
StreamTheme themeData;

void setPrimaryColor(Color color) {
themeData = themeData.copyWith(primaryColor: color);
Expand Down
Loading