1
0
mirror of https://github.com/git-touch/git-touch synced 2025-02-15 02:50:48 +01:00
git-touch-android-ios-app/lib/screens/gh_gists_files.dart
Shreyas Thirumalai 0a1da29c3e
feat: localization (#137)
closes #119

Co-authored-by: Rongjian Zhang <pd4d10@gmail.com>
2021-01-05 17:25:19 +08:00

49 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:git_touch/models/github.dart';
import 'package:git_touch/scaffolds/refresh_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:git_touch/widgets/object_tree.dart';
import 'package:provider/provider.dart';
import 'package:git_touch/models/auth.dart';
import '../generated/l10n.dart';
class GhGistsFilesScreen extends StatelessWidget {
final String id;
final String login;
GhGistsFilesScreen(this.login, this.id);
@override
Widget build(BuildContext context) {
return RefreshStatefulScaffold<GithubGistsItem>(
title: AppBarTitle(S.of(context).files),
fetch: () async {
final data = await context.read<AuthModel>().ghClient.getJSON(
'/gists/$id',
convert: (vs) => GithubGistsItem.fromJson(vs));
return data;
},
bodyBuilder: (payload, _) {
return ObjectTree(
items: payload.fileNames.map((v) {
final uri = Uri(
path: '/github/$login/gists/$id/${v.filename}',
queryParameters: {
'content': v.content,
...(v.rawUrl == null ? {} : {'raw': v.rawUrl}),
},
).toString();
return ObjectTreeItem(
url: uri,
type: 'file',
name: v.filename,
downloadUrl: v.rawUrl,
size: v.size,
);
}),
);
},
);
}
}