replace route pages with cupertino ones
This commit is contained in:
parent
fc52ce91a8
commit
d3eee1e837
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'pages/instance.dart';
|
||||||
import 'stores/accounts_store.dart';
|
import 'stores/accounts_store.dart';
|
||||||
import 'stores/config_store.dart';
|
import 'stores/config_store.dart';
|
||||||
|
|
||||||
|
@ -51,7 +52,9 @@ class MyApp extends StatelessWidget {
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
visualDensity: VisualDensity.adaptivePlatformDensity,
|
visualDensity: VisualDensity.adaptivePlatformDensity,
|
||||||
),
|
),
|
||||||
home: MyHomePage(title: 'Flutter hello world'),
|
home: InstancePage(
|
||||||
|
instanceUrl: 'dev.lemmy.ml',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:cached_network_image/cached_network_image.dart';
|
import 'package:cached_network_image/cached_network_image.dart';
|
||||||
import 'package:esys_flutter_share/esys_flutter_share.dart';
|
import 'package:esys_flutter_share/esys_flutter_share.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
@ -272,10 +273,11 @@ class _AboutTab extends HookWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
void goToBannedUsers(BuildContext c) {
|
void goToBannedUsers(BuildContext c) {
|
||||||
Navigator.of(c).push(MaterialPageRoute(
|
goTo(
|
||||||
builder: (_) => UsersListPage(
|
c,
|
||||||
|
(_) => UsersListPage(
|
||||||
users: site.banned.reversed.toList(), title: 'Banned users'),
|
users: site.banned.reversed.toList(), title: 'Banned users'),
|
||||||
));
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -284,11 +286,12 @@ class _AboutTab extends HookWidget {
|
||||||
final commSnap = useFuture(communitiesFuture);
|
final commSnap = useFuture(communitiesFuture);
|
||||||
|
|
||||||
void goToCommunities() {
|
void goToCommunities() {
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
goTo(
|
||||||
builder: (_) => CommunitiesListPage(
|
context,
|
||||||
|
(_) => CommunitiesListPage(
|
||||||
communities: commSnap.data,
|
communities: commSnap.data,
|
||||||
title: 'Communities of ${site.site.name}'),
|
title: 'Communities of ${site.site.name}'),
|
||||||
));
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
|
@ -5,6 +6,7 @@ import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../stores/accounts_store.dart';
|
import '../stores/accounts_store.dart';
|
||||||
import '../util/api_extensions.dart';
|
import '../util/api_extensions.dart';
|
||||||
|
import '../util/goto.dart';
|
||||||
import '../widgets/bottom_modal.dart';
|
import '../widgets/bottom_modal.dart';
|
||||||
import '../widgets/user_profile.dart';
|
import '../widgets/user_profile.dart';
|
||||||
import 'settings.dart';
|
import 'settings.dart';
|
||||||
|
@ -27,8 +29,7 @@ class UserProfileTab extends HookWidget {
|
||||||
Text('No account was added.'),
|
Text('No account was added.'),
|
||||||
FlatButton.icon(
|
FlatButton.icon(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
goTo(context, (_) => AccountsConfigPage());
|
||||||
builder: (_) => AccountsConfigPage()));
|
|
||||||
},
|
},
|
||||||
icon: Icon(Icons.add),
|
icon: Icon(Icons.add),
|
||||||
label: Text('Add account'),
|
label: Text('Add account'),
|
||||||
|
@ -113,8 +114,7 @@ class UserProfileTab extends HookWidget {
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Icon(Icons.settings),
|
icon: Icon(Icons.settings),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context)
|
goTo(context, (_) => SettingsPage());
|
||||||
.push(MaterialPageRoute(builder: (_) => SettingsPage()));
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
|
@ -5,6 +6,7 @@ import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../stores/accounts_store.dart';
|
import '../stores/accounts_store.dart';
|
||||||
import '../stores/config_store.dart';
|
import '../stores/config_store.dart';
|
||||||
|
import '../util/goto.dart';
|
||||||
|
|
||||||
class SettingsPage extends StatelessWidget {
|
class SettingsPage extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
|
@ -26,16 +28,14 @@ class SettingsPage extends StatelessWidget {
|
||||||
leading: Icon(Icons.person),
|
leading: Icon(Icons.person),
|
||||||
title: Text('Accounts'),
|
title: Text('Accounts'),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).push(
|
goTo(context, (_) => AccountsConfigPage());
|
||||||
MaterialPageRoute(builder: (_) => AccountsConfigPage()));
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
leading: Icon(Icons.color_lens),
|
leading: Icon(Icons.color_lens),
|
||||||
title: Text('Appearance'),
|
title: Text('Appearance'),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).push(
|
goTo(context, (_) => AppearanceConfigPage());
|
||||||
MaterialPageRoute(builder: (_) => AppearanceConfigPage()));
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart' as ul;
|
import 'package:url_launcher/url_launcher.dart' as ul;
|
||||||
|
@ -7,6 +8,7 @@ import 'pages/full_post.dart';
|
||||||
import 'pages/instance.dart';
|
import 'pages/instance.dart';
|
||||||
import 'pages/user.dart';
|
import 'pages/user.dart';
|
||||||
import 'stores/accounts_store.dart';
|
import 'stores/accounts_store.dart';
|
||||||
|
import 'util/goto.dart';
|
||||||
|
|
||||||
Future<void> linkLauncher({
|
Future<void> linkLauncher({
|
||||||
@required BuildContext context,
|
@required BuildContext context,
|
||||||
|
@ -14,7 +16,7 @@ Future<void> linkLauncher({
|
||||||
@required String instanceUrl,
|
@required String instanceUrl,
|
||||||
}) async {
|
}) async {
|
||||||
push(Widget Function() builder) {
|
push(Widget Function() builder) {
|
||||||
Navigator.of(context).push(MaterialPageRoute(builder: (c) => builder()));
|
goTo(context, (c) => builder());
|
||||||
}
|
}
|
||||||
|
|
||||||
final instances = context.read<AccountsStore>().users.keys.toList();
|
final instances = context.read<AccountsStore>().users.keys.toList();
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../pages/community.dart';
|
import '../pages/community.dart';
|
||||||
|
@ -5,41 +6,46 @@ import '../pages/full_post.dart';
|
||||||
import '../pages/instance.dart';
|
import '../pages/instance.dart';
|
||||||
import '../pages/user.dart';
|
import '../pages/user.dart';
|
||||||
|
|
||||||
void goToInstance(BuildContext context, String instanceUrl) =>
|
Future<dynamic> goTo(
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
BuildContext context,
|
||||||
builder: (context) => InstancePage(instanceUrl: instanceUrl),
|
Widget Function(BuildContext context) builder,
|
||||||
|
) =>
|
||||||
|
Navigator.of(context).push(CupertinoPageRoute(
|
||||||
|
builder: builder,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
void goToInstance(BuildContext context, String instanceUrl) =>
|
||||||
|
goTo(context, (context) => InstancePage(instanceUrl: instanceUrl));
|
||||||
|
|
||||||
// ignore: camel_case_types
|
// ignore: camel_case_types
|
||||||
abstract class goToCommunity {
|
abstract class goToCommunity {
|
||||||
/// Navigates to `CommunityPage`
|
/// Navigates to `CommunityPage`
|
||||||
static void byId(BuildContext context, String instanceUrl, int communityId) =>
|
static void byId(BuildContext context, String instanceUrl, int communityId) =>
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
goTo(
|
||||||
builder: (context) => CommunityPage.fromId(
|
context,
|
||||||
|
(context) => CommunityPage.fromId(
|
||||||
instanceUrl: instanceUrl, communityId: communityId),
|
instanceUrl: instanceUrl, communityId: communityId),
|
||||||
));
|
);
|
||||||
|
|
||||||
static void byName(
|
static void byName(
|
||||||
BuildContext context, String instanceUrl, String communityName) =>
|
BuildContext context, String instanceUrl, String communityName) =>
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
goTo(
|
||||||
builder: (context) => CommunityPage.fromName(
|
context,
|
||||||
|
(context) => CommunityPage.fromName(
|
||||||
instanceUrl: instanceUrl, communityName: communityName),
|
instanceUrl: instanceUrl, communityName: communityName),
|
||||||
));
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ignore: camel_case_types
|
// ignore: camel_case_types
|
||||||
abstract class goToUser {
|
abstract class goToUser {
|
||||||
static void byId(BuildContext context, String instanceUrl, int userId) =>
|
static void byId(BuildContext context, String instanceUrl, int userId) =>
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
goTo(context,
|
||||||
builder: (context) =>
|
(context) => UserPage(instanceUrl: instanceUrl, userId: userId));
|
||||||
UserPage(instanceUrl: instanceUrl, userId: userId)));
|
|
||||||
|
|
||||||
static void byName(
|
static void byName(
|
||||||
BuildContext context, String instanceUrl, String userName) =>
|
BuildContext context, String instanceUrl, String userName) =>
|
||||||
throw UnimplementedError('need to create UserProfile constructor first');
|
throw UnimplementedError('need to create UserProfile constructor first');
|
||||||
}
|
}
|
||||||
|
|
||||||
void goToPost(BuildContext context, String instanceUrl, int postId) =>
|
void goToPost(BuildContext context, String instanceUrl, int postId) => goTo(
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
context, (context) => FullPostPage(instanceUrl: instanceUrl, id: postId));
|
||||||
builder: (context) =>
|
|
||||||
FullPostPage(instanceUrl: instanceUrl, id: postId)));
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../pages/media_view.dart';
|
import '../pages/media_view.dart';
|
||||||
|
import '../util/goto.dart';
|
||||||
|
|
||||||
class FullscreenableImage extends StatelessWidget {
|
class FullscreenableImage extends StatelessWidget {
|
||||||
final String url;
|
final String url;
|
||||||
|
@ -13,9 +15,7 @@ class FullscreenableImage extends StatelessWidget {
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
_onTap(BuildContext c) {
|
_onTap(BuildContext c) {
|
||||||
Navigator.of(c).push(MaterialPageRoute(
|
goTo(c, (context) => MediaViewPage(url));
|
||||||
builder: (context) => MediaViewPage(url),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:cached_network_image/cached_network_image.dart';
|
import 'package:cached_network_image/cached_network_image.dart';
|
||||||
import 'package:esys_flutter_share/esys_flutter_share.dart';
|
import 'package:esys_flutter_share/esys_flutter_share.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
@ -425,9 +426,10 @@ class Post extends StatelessWidget {
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: fullPost
|
onTap: fullPost
|
||||||
? null
|
? null
|
||||||
: () => Navigator.of(context).push(MaterialPageRoute(
|
: () => goTo(
|
||||||
builder: (context) => FullPostPage.fromPostView(
|
context,
|
||||||
post))), //, instanceUrl, post.id),
|
(context) =>
|
||||||
|
FullPostPage.fromPostView(post)), //, instanceUrl, post.id),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
info(),
|
info(),
|
||||||
|
|
Loading…
Reference in New Issue