fix: path url encode

This commit is contained in:
Rongjian Zhang 2019-12-12 21:06:12 +08:00
parent 2400513007
commit 7b688efcb2
4 changed files with 23 additions and 6 deletions

View File

@ -283,8 +283,13 @@ void main() async {
));
themeModel.router.define('/:owner/:name/blob/:ref', handler: Handler(
handlerFunc: (context, params) {
final pathParam = params['path'];
return ObjectScreen(
params['owner'][0], params['name'][0], params['ref'][0]);
params['owner'].first,
params['name'].first,
params['ref'].first,
paths: pathParam?.first?.urldecode?.split('/') ?? [],
);
},
));
themeModel.router.define('/:owner/:name/issues/new', handler: Handler(

View File

@ -116,17 +116,18 @@ class ObjectScreen extends StatelessWidget {
switch (data.resolveType) {
case 'Tree':
final tree = data as GithubObjectTree;
return TableView(
hasIcon: true,
items: tree.entries.map((item) {
// if (item.type == 'commit') return null;
final p = [...paths, item.name].join('/').urlencode;
final url = '/$owner/$name/blob/$branch?path=$p';
return TableViewItem(
leftWidget: _buildIcon(item),
text: Text(item.name),
url: (() {
if (item.type == 'commit') return null;
final p = [...paths, item.name].join('/');
return '/$owner/$name/blob/$branch?path=$p';
})(),
url: url,
);
}),
);

View File

@ -0,0 +1,9 @@
extension MyString<T extends String> on String {
String get urlencode {
return Uri.encodeComponent(this);
}
String get urldecode {
return Uri.decodeComponent(this);
}
}

View File

@ -9,6 +9,8 @@ import 'package:primer/primer.dart';
import 'package:provider/provider.dart';
import 'package:tuple/tuple.dart';
import 'package:url_launcher/url_launcher.dart';
export 'extensions.dart';
export 'package:flutter_vector_icons/flutter_vector_icons.dart';
class StorageKeys {