Skip to content

Commit 0a2597d

Browse files
Tomasz KądziołkaTomasz Kądziołka
authored andcommitted
Corrected style for code card
1 parent a595dde commit 0a2597d

File tree

7 files changed

+67
-42
lines changed

7 files changed

+67
-42
lines changed

flutter_module/lib/presentation/pages/main_page.dart

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_hooks/flutter_hooks.dart';
33
import 'package:flutter_module/messages.dart';
4+
import 'package:flutter_module/presentation/styles/color_styles.dart';
5+
import 'package:flutter_module/presentation/styles/dimens.dart';
6+
import 'package:flutter_module/presentation/styles/padding_styles.dart';
47
import 'package:flutter_module/presentation/widgets/snippet_list_item.dart';
58
import 'package:flutter_module/presentation/widgets/view_state_wrapper.dart';
69
import 'package:flutter_module/utils/extensions/build_context_extensions.dart';
@@ -39,6 +42,7 @@ class MainPage extends HookWidget {
3942

4043
return Scaffold(
4144
appBar: AppBar(title: const Text("SnipMe")),
45+
backgroundColor: ColorStyles.pageBackground(),
4246
body: ViewStateWrapper<List<Snippet>>(
4347
isLoading: data.state == ModelState.loading || data.is_loading == true,
4448
error: data.error,
@@ -77,8 +81,14 @@ class _MainPage extends StatelessWidget {
7781
Widget build(BuildContext context) {
7882
return ListView.builder(
7983
itemCount: snippets.length,
80-
itemBuilder: (_, index) => SnippetListTile(
81-
snippet: snippets[index],
84+
itemBuilder: (_, index) => Padding(
85+
padding: const EdgeInsets.symmetric(
86+
vertical: Dimens.s,
87+
horizontal: Dimens.m,
88+
),
89+
child: SnippetListTile(
90+
snippet: snippets[index],
91+
),
8292
),
8393
);
8494
}

flutter_module/lib/presentation/styles/color_styles.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ class ColorStyles extends Color {
44

55
ColorStyles.surfacePrimary(): super(Colors.white.value);
66

7-
ColorStyles.codeBackground(): super(Colors.black.withOpacity(0.5).value);
7+
ColorStyles.pageBackground(): super(0xFFF5F5F5);
8+
9+
ColorStyles.codeBackground(): super(0xFFF0F0F0);
810

911
}

flutter_module/lib/presentation/styles/padding_styles.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import 'package:flutter_module/presentation/styles/dimens.dart';
33

44
class PaddingStyles extends Padding {
55

6+
const PaddingStyles.small(Widget child, {Key? key})
7+
: super(key: key, padding: const EdgeInsets.all(Dimens.m), child: child);
8+
69
const PaddingStyles.regular(Widget child, {Key? key})
7-
: super(key: key, padding: const EdgeInsets.all(Dimens.l));
10+
: super(key: key, padding: const EdgeInsets.all(Dimens.l), child: child);
811
}

flutter_module/lib/presentation/styles/text_styles.dart

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ class TextStyles extends Text {
1010
style: const TextStyle(fontSize: 16),
1111
);
1212

13-
const TextStyles.code(this.text, {Key? key}) : super(
13+
const TextStyles.code(this.text, {Key? key})
14+
: super(
1415
text,
1516
key: key,
1617
style: const TextStyle(
@@ -26,30 +27,24 @@ class TextStyles extends Text {
2627
style: const TextStyle(),
2728
);
2829

29-
TextStyles.secondary(this.text, {Key? key})
30+
const TextStyles.secondary(this.text, {Key? key})
3031
: super(
3132
text,
3233
key: key,
33-
style: TextStyle(color: Colors.black.withOpacity(0.5)),
34+
style: const TextStyle(color: Colors.grey),
3435
);
3536

36-
TextStyles.label(this.text, {Key? key})
37+
const TextStyles.label(this.text, {Key? key})
3738
: super(
3839
text,
3940
key: key,
40-
style: TextStyle(
41-
fontSize: 12,
42-
color: Colors.black.withOpacity(0.5),
43-
),
41+
style: const TextStyle(fontSize: 12, color: Colors.grey),
4442
);
4543

46-
TextStyles.helper(this.text, {Key? key})
44+
const TextStyles.helper(this.text, {Key? key})
4745
: super(
4846
text,
4947
key: key,
50-
style: TextStyle(
51-
fontSize: 12,
52-
color: Colors.black.withOpacity(0.5),
53-
),
48+
style: const TextStyle(fontSize: 10, color: Colors.grey),
5449
);
5550
}

flutter_module/lib/presentation/widgets/code_text_view.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:convert';
22

33
import 'package:flutter/material.dart';
44
import 'package:flutter_module/messages.dart';
5+
import 'package:flutter_module/presentation/styles/text_styles.dart';
56
import 'package:flutter_module/utils/extensions/collection_extensions.dart';
67
import 'package:flutter_module/utils/extensions/text_extensions.dart';
78

@@ -55,17 +56,18 @@ class CodeTextView extends StatelessWidget {
5556

5657
return SelectableText.rich(
5758
TextSpan(
58-
style: TextStyle(color: Colors.black),
5959
children: tokens.toSpans(
6060
code.lines(maxLinesOrAll),
61-
TextStyle(color: Colors.black),
61+
TextStyles.code(code).style!,
6262
),
6363
),
6464
minLines: 1,
6565
maxLines: maxLinesOrAll,
6666
onTap: onTap,
6767
toolbarOptions: options?.toolbarOptions,
6868
showCursor: options?.showCursor ?? false,
69+
enableInteractiveSelection: false,
70+
scrollPhysics: const NeverScrollableScrollPhysics(),
6971
);
7072
}
7173
}

flutter_module/lib/presentation/widgets/snippet_list_item.dart

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,33 +24,45 @@ class SnippetListTile extends HookWidget {
2424
shape: RoundedRectangleBorder(
2525
borderRadius: BorderRadius.circular(Dimens.m),
2626
),
27-
child: Column(
28-
children: [
29-
PaddingStyles.regular(
30-
TextStyles.title(snippet.title ?? ""),
31-
),
32-
ColoredBox(
33-
color: ColorStyles.codeBackground(),
34-
child: Padding(
35-
padding: const EdgeInsets.symmetric(
36-
vertical: Dimens.m,
37-
horizontal: Dimens.l,
38-
),
39-
child: CodeTextView.preview(
40-
code: snippet.code?.raw ?? "",
41-
tokens: snippet.code?.tokens,
27+
// TODO Fix full width
28+
child: Expanded(
29+
child: Column(
30+
crossAxisAlignment: CrossAxisAlignment.stretch,
31+
children: [
32+
Padding(
33+
padding: const EdgeInsets.only(
34+
top: Dimens.l,
35+
left: Dimens.l,
36+
right: Dimens.l,
37+
bottom: Dimens.m
4238
),
39+
child: TextStyles.title(snippet.title ?? ""),
4340
),
44-
),
45-
const SizedBox(height: Dimens.m),
46-
if (isExpanded) ...[
47-
Padding(
48-
padding: const EdgeInsets.symmetric(horizontal: Dimens.l),
49-
child: SnippetDetailsBar(snippet: snippet),
41+
ColoredBox(
42+
color: ColorStyles.codeBackground(),
43+
child: Padding(
44+
padding: const EdgeInsets.symmetric(
45+
vertical: Dimens.m,
46+
horizontal: Dimens.l,
47+
),
48+
child: Expanded(
49+
child: CodeTextView.preview(
50+
code: snippet.code?.raw ?? "",
51+
tokens: snippet.code?.tokens,
52+
),
53+
),
54+
),
5055
),
5156
const SizedBox(height: Dimens.m),
57+
if (isExpanded) ...[
58+
Padding(
59+
padding: const EdgeInsets.symmetric(horizontal: Dimens.l),
60+
child: SnippetDetailsBar(snippet: snippet),
61+
),
62+
const SizedBox(height: Dimens.m),
63+
],
5264
],
53-
],
65+
),
5466
),
5567
);
5668
}

flutter_module/lib/utils/extensions/collection_extensions.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:equatable/equatable.dart';
22
import 'package:flutter/material.dart';
33
import 'package:flutter/painting.dart';
44
import 'package:flutter_module/messages.dart';
5+
import 'package:flutter_module/presentation/styles/text_styles.dart';
56
import 'package:flutter_module/utils/extensions/text_extensions.dart';
67
import 'package:collection/collection.dart';
78

@@ -63,7 +64,7 @@ extension SyntaxSpanExtension on List<SyntaxToken?>? {
6364
);
6465

6566
if (foundToken != null) {
66-
style = TextStyle(color: foundToken.color);
67+
style = TextStyles.code(text).style!.copyWith(color: foundToken.color);
6768
}
6869

6970
return TextSpan(text: phrase, style: style);

0 commit comments

Comments
 (0)