mirror of
https://github.com/git-touch/git-touch
synced 2025-03-01 01:37:40 +01:00
refactor: using string extension
This commit is contained in:
parent
05a4ffeeb8
commit
db92210659
@ -36,7 +36,7 @@ class GiteaRepoScreen extends StatelessWidget {
|
|||||||
]);
|
]);
|
||||||
return Tuple2(
|
return Tuple2(
|
||||||
GiteaRepository.fromJson(res[0]),
|
GiteaRepository.fromJson(res[0]),
|
||||||
convertBase64ToString(res[1]['content']),
|
(res[1]['content'] as String)?.base64ToUtf8,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
bodyBuilder: (t, setState) {
|
bodyBuilder: (t, setState) {
|
||||||
|
@ -88,7 +88,7 @@ class ObjectScreen extends StatelessWidget {
|
|||||||
final v = GithubTreeItem.fromJson(data);
|
final v = GithubTreeItem.fromJson(data);
|
||||||
return BlobView(
|
return BlobView(
|
||||||
path,
|
path,
|
||||||
base64Text: v.content,
|
base64Text: v.content?.dropLineBreak,
|
||||||
networkUrl: v.downloadUrl,
|
networkUrl: v.downloadUrl,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ class RepositoryScreen extends StatelessWidget {
|
|||||||
Future<String> _fetchReadme(BuildContext context) async {
|
Future<String> _fetchReadme(BuildContext context) async {
|
||||||
final data = await Provider.of<AuthModel>(context)
|
final data = await Provider.of<AuthModel>(context)
|
||||||
.getWithCredentials('/repos/$owner/$name/readme');
|
.getWithCredentials('/repos/$owner/$name/readme');
|
||||||
return convertBase64ToString(data['content']);
|
return (data['content'] as String)?.dropLineBreak?.base64ToUtf8;
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildLanguages(BuildContext context, GhRepoRepository repo) {
|
Widget _buildLanguages(BuildContext context, GhRepoRepository repo) {
|
||||||
|
@ -1,13 +1,9 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
extension MyString<T extends String> on String {
|
extension MyString<T extends String> on String {
|
||||||
int get toInt {
|
int get toInt => int.parse(this);
|
||||||
return int.parse(this);
|
String get urlencode => Uri.encodeComponent(this);
|
||||||
}
|
String get urldecode => Uri.decodeComponent(this);
|
||||||
|
String get dropLineBreak => this.replaceAll('\n', '');
|
||||||
String get urlencode {
|
String get base64ToUtf8 => utf8.decode(base64.decode(this));
|
||||||
return Uri.encodeComponent(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
String get urldecode {
|
|
||||||
return Uri.decodeComponent(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -189,12 +189,6 @@ class RouterScreen {
|
|||||||
|
|
||||||
final dateFormat = DateFormat.yMMMMd();
|
final dateFormat = DateFormat.yMMMMd();
|
||||||
|
|
||||||
String convertBase64ToString(String input) {
|
|
||||||
if (input == null) return null;
|
|
||||||
final bits = base64.decode(input.replaceAll('\n', ''));
|
|
||||||
return utf8.decode(bits);
|
|
||||||
}
|
|
||||||
|
|
||||||
int sortByKey<T>(T key, T a, T b) {
|
int sortByKey<T>(T key, T a, T b) {
|
||||||
if (a == key && b != key) return -1;
|
if (a == key && b != key) return -1;
|
||||||
if (a != key && b == key) return 1;
|
if (a != key && b == key) return 1;
|
||||||
|
@ -14,11 +14,15 @@ import 'package:git_touch/utils/utils.dart';
|
|||||||
|
|
||||||
class BlobView extends StatelessWidget {
|
class BlobView extends StatelessWidget {
|
||||||
final String name;
|
final String name;
|
||||||
final String text;
|
// final String text;
|
||||||
final String base64Text;
|
final String base64Text;
|
||||||
final String networkUrl;
|
final String networkUrl;
|
||||||
BlobView(this.name, {this.text, this.base64Text, this.networkUrl})
|
BlobView(
|
||||||
: assert(text == null || base64Text == null);
|
this.name, {
|
||||||
|
// this.text,
|
||||||
|
@required this.base64Text,
|
||||||
|
this.networkUrl,
|
||||||
|
});
|
||||||
|
|
||||||
String get _extname {
|
String get _extname {
|
||||||
var dotext = p.extension(name);
|
var dotext = p.extension(name);
|
||||||
@ -27,7 +31,6 @@ class BlobView extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String get _language => _extname.isEmpty ? 'plaintext' : _extname;
|
String get _language => _extname.isEmpty ? 'plaintext' : _extname;
|
||||||
String get _text => text ?? utf8.decode(base64.decode(base64Text));
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -55,13 +58,13 @@ class BlobView extends StatelessWidget {
|
|||||||
case 'markdown':
|
case 'markdown':
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: CommonStyle.padding,
|
padding: CommonStyle.padding,
|
||||||
child: MarkdownView(_text), // TODO: basePath
|
child: MarkdownView(base64Text.base64ToUtf8), // TODO: basePath
|
||||||
);
|
);
|
||||||
default:
|
default:
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
child: HighlightView(
|
child: HighlightView(
|
||||||
_text,
|
base64Text.base64ToUtf8,
|
||||||
language: _language,
|
language: _language,
|
||||||
theme: themeMap[theme.brightness == Brightness.dark
|
theme: themeMap[theme.brightness == Brightness.dark
|
||||||
? codeProvider.themeDark
|
? codeProvider.themeDark
|
||||||
|
Loading…
x
Reference in New Issue
Block a user