mirror of
https://github.com/git-touch/git-touch
synced 2025-03-04 03:07:56 +01:00
style: unused local variable
This commit is contained in:
parent
26b78a31a6
commit
b7dcf933a3
@ -143,7 +143,6 @@ class _HomeState extends State<Home> {
|
||||
}
|
||||
|
||||
Widget _buildNotificationIcon(BuildContext context, IconData iconData) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final count = Provider.of<NotificationModel>(context).count;
|
||||
if (count == 0) {
|
||||
return Icon(iconData);
|
||||
@ -239,7 +238,6 @@ class _HomeState extends State<Home> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
|
||||
if (auth.activeAccount == null) {
|
||||
|
@ -1,11 +1,9 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/error_reload.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:git_touch/widgets/loading.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class LongListPayload<T, K> {
|
||||
LongListPayload({
|
||||
@ -101,8 +99,6 @@ class _LongListStatefulScaffoldState<T, K>
|
||||
}
|
||||
|
||||
Widget _buildItem(BuildContext context, int index) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
if (index % 2 == 1) {
|
||||
return CommonStyle.border;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/bitbucket.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_entry.dart';
|
||||
@ -45,7 +44,6 @@ class BbIssueScreen extends StatelessWidget {
|
||||
bodyBuilder: (data, _) {
|
||||
final issue = data.item1;
|
||||
final comments = data.item2;
|
||||
final theme = context.read<ThemeModel>();
|
||||
return Column(children: <Widget>[
|
||||
Container(
|
||||
padding: CommonStyle.padding,
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -22,7 +21,6 @@ class _BbIssueCommentScreenState extends State<BbIssueCommentScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: const Text('New Comment'),
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/bitbucket.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -23,7 +22,6 @@ class _BbIssueFormScreenState extends State<BbIssueFormScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: Text(AppLocalizations.of(context)!.submitAnIssue),
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_button.dart';
|
||||
@ -19,7 +18,6 @@ class GeCommitScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = context.watch<ThemeModel>();
|
||||
return RefreshStatefulScaffold<GiteeCommit>(
|
||||
title: Text('Commit: ${sha.substring(0, 7)}'),
|
||||
fetch: () async {
|
||||
|
@ -4,7 +4,6 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/list_stateful.dart';
|
||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -36,7 +35,6 @@ class GeContributorsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
itemBuilder: (v) {
|
||||
final theme = context.read<ThemeModel>();
|
||||
return Container(
|
||||
padding: CommonStyle.padding,
|
||||
child: Row(
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_button.dart';
|
||||
@ -24,7 +23,6 @@ class GeIssueScreen extends StatelessWidget {
|
||||
List<ActionItem> _buildCommentActionItem(
|
||||
BuildContext context, GiteeComment comment) {
|
||||
final auth = context.read<AuthModel>();
|
||||
final theme = context.read<ThemeModel>();
|
||||
return [
|
||||
ActionItem(
|
||||
text: 'Edit',
|
||||
@ -72,7 +70,6 @@ class GeIssueScreen extends StatelessWidget {
|
||||
bodyBuilder: (data, _) {
|
||||
final issue = data.item1;
|
||||
final comments = data.item2;
|
||||
final theme = context.read<ThemeModel>();
|
||||
return Column(children: <Widget>[
|
||||
Container(
|
||||
padding: CommonStyle.padding,
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -36,7 +35,6 @@ class _GeIssueCommentScreenState extends State<GeIssueCommentScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: Text(isEdit ? 'Update Comment' : 'New Comment'),
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -23,7 +22,6 @@ class _GeIssueFormScreenState extends State<GeIssueFormScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: Text(AppLocalizations.of(context)!.submitAnIssue),
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_button.dart';
|
||||
@ -24,7 +23,6 @@ class GePullScreen extends StatelessWidget {
|
||||
List<ActionItem> _buildCommentActionItem(
|
||||
BuildContext context, GiteeComment comment) {
|
||||
final auth = context.read<AuthModel>();
|
||||
final theme = context.read<ThemeModel>();
|
||||
return [
|
||||
ActionItem(
|
||||
text: 'Edit',
|
||||
@ -81,7 +79,6 @@ class GePullScreen extends StatelessWidget {
|
||||
final comments = data.item2;
|
||||
final files = data.item3;
|
||||
final commits = data.item4;
|
||||
final theme = context.read<ThemeModel>();
|
||||
var additions = 0;
|
||||
var deletions = 0;
|
||||
for (final file in files) {
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/issue_item.dart';
|
||||
@ -119,8 +118,6 @@ class _GeSearchScreenState extends State<GeSearchScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return CommonScaffold(
|
||||
title: Container(
|
||||
color: AntTheme.of(context).colorBackground,
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/long_list.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_button.dart';
|
||||
@ -29,7 +28,6 @@ class GhIssueScreen extends StatelessWidget {
|
||||
required Widget body,
|
||||
Iterable<Widget> extraWidgets = const [],
|
||||
}) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: <Widget>[
|
||||
@ -134,7 +132,6 @@ class GhIssueScreen extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
headerBuilder: (p) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
if (p.issueOrPullRequest!.G__typename == 'Issue') {
|
||||
final issue = p.issueOrPullRequest
|
||||
as GIssueData_repository_issueOrPullRequest__asIssue;
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:github/github.dart';
|
||||
@ -23,8 +22,6 @@ class _GhIssueFormScreenState extends State<GhIssueFormScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return CommonScaffold(
|
||||
title: Text(AppLocalizations.of(context)!.submitAnIssue),
|
||||
body: Column(
|
||||
|
@ -5,7 +5,6 @@ import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/github.dart';
|
||||
import 'package:git_touch/models/notification.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/tab_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||
@ -106,7 +105,6 @@ ${item.key}: pullRequest(number: ${item.subject!.number}) {
|
||||
MapEntry<String, NotificationGroup> entry,
|
||||
Map<String, NotificationGroup> groupMap,
|
||||
) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final group = entry.value;
|
||||
return ListGroup(
|
||||
title: Row(
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/issue_item.dart';
|
||||
@ -179,8 +178,6 @@ class _GhSearchScreenState extends State<GhSearchScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return CommonScaffold(
|
||||
title: Container(
|
||||
color: AntTheme.of(context).colorBackground,
|
||||
|
@ -1,7 +1,6 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/tab_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||
@ -9,7 +8,6 @@ import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:git_touch/widgets/repo_item.dart';
|
||||
import 'package:git_touch/widgets/user_item.dart';
|
||||
import 'package:github_trending/github_trending.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class GhTrendingScreen extends StatelessWidget {
|
||||
static final trending = GithubTrending(prefix: 'https://gtrend.yapie.me');
|
||||
@ -30,7 +28,6 @@ class GhTrendingScreen extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
bodyBuilder: (payload, activeTab) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: join(
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_button.dart';
|
||||
@ -60,8 +59,6 @@ class _User extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: <Widget>[
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitlab.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -22,7 +21,6 @@ class _GlIssueFormScreenState extends State<GlIssueFormScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: Text(AppLocalizations.of(context)!.submitAnIssue),
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitlab.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/list_stateful.dart';
|
||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
@ -16,7 +15,6 @@ class GlProjectActivityScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return ListStatefulScaffold<GitlabEvent, int>(
|
||||
title: AppBarTitle(AppLocalizations.of(context)!.activity),
|
||||
fetch: (page) async {
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitlab.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/loading.dart';
|
||||
@ -95,8 +94,6 @@ class _GlSearchScreenState extends State<GlSearchScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return CommonScaffold(
|
||||
title: Container(
|
||||
color: AntTheme.of(context).colorBackground,
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitlab.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
@ -11,7 +10,6 @@ import 'package:provider/provider.dart';
|
||||
|
||||
class GlTodosScreen extends StatelessWidget {
|
||||
InlineSpan _buildActor(BuildContext context, GitlabTodo p) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return TextSpan(
|
||||
text: p.author!.name,
|
||||
style: TextStyle(color: AntTheme.of(context).colorPrimary),
|
||||
@ -19,7 +17,6 @@ class GlTodosScreen extends StatelessWidget {
|
||||
}
|
||||
|
||||
InlineSpan _buildIssue(BuildContext context, GitlabTodo p) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return TextSpan(
|
||||
text: '${p.project!.pathWithNamespace}!${p.target!.iid}',
|
||||
style: TextStyle(color: AntTheme.of(context).colorPrimary),
|
||||
@ -60,8 +57,6 @@ class GlTodosScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return RefreshStatefulScaffold<Iterable<GitlabTodo>>(
|
||||
title: const Text('Todos'),
|
||||
fetch: () async {
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitea.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/action_button.dart';
|
||||
@ -24,7 +23,6 @@ class GtIssueScreen extends StatelessWidget {
|
||||
List<ActionItem> _buildCommentActionItem(
|
||||
BuildContext context, GiteaComment comment) {
|
||||
final auth = context.read<AuthModel>();
|
||||
final theme = context.read<ThemeModel>();
|
||||
return [
|
||||
ActionItem(
|
||||
text: 'Edit',
|
||||
@ -72,7 +70,6 @@ class GtIssueScreen extends StatelessWidget {
|
||||
bodyBuilder: (data, _) {
|
||||
final issue = data.item1;
|
||||
final comments = data.item2;
|
||||
final theme = context.read<ThemeModel>();
|
||||
return Column(children: <Widget>[
|
||||
Container(
|
||||
padding: CommonStyle.padding,
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -36,7 +35,6 @@ class _GtIssueCommentScreenState extends State<GtIssueCommentScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: Text(isEdit ? 'Update Comment' : 'New Comment'),
|
||||
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/gitea.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/scaffolds/common.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
@ -23,7 +22,6 @@ class _GtIssueFormScreenState extends State<GtIssueFormScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
return CommonScaffold(
|
||||
title: Text(AppLocalizations.of(context)!.submitAnIssue),
|
||||
|
@ -86,7 +86,6 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
|
||||
Widget _buildAddItem(
|
||||
{IconData? brand, required String text, Function? onTap}) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return LinkWidget(
|
||||
onTap: onTap,
|
||||
child: Container(
|
||||
|
@ -1,12 +1,10 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/widgets/border_view.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:primer/primer.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
import 'package:universal_io/io.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
@ -52,7 +50,6 @@ TextSpan createLinkSpan(
|
||||
String? text,
|
||||
String url,
|
||||
) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return TextSpan(
|
||||
text: text,
|
||||
style: TextStyle(
|
||||
|
@ -1,7 +1,5 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class ActionEntry extends StatelessWidget {
|
||||
const ActionEntry({this.url, this.iconData, this.onTap});
|
||||
@ -11,7 +9,6 @@ class ActionEntry extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return CupertinoButton(
|
||||
minSize: 0,
|
||||
padding: EdgeInsets.zero,
|
||||
|
@ -1,7 +1,5 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class BorderView extends StatelessWidget {
|
||||
const BorderView({
|
||||
@ -13,8 +11,6 @@ class BorderView extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
if (height == null) {
|
||||
// Physical pixel
|
||||
return Container(
|
||||
|
@ -212,7 +212,6 @@ class CommentItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
|
@ -1,9 +1,7 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:timeago/timeago.dart' as timeago;
|
||||
|
||||
class CommitItem extends StatelessWidget {
|
||||
@ -25,7 +23,6 @@ class CommitItem extends StatelessWidget {
|
||||
final List<Widget>? widgets;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return AntListItem(
|
||||
onClick: () {
|
||||
context.pushUrl(url!);
|
||||
|
@ -1,9 +1,7 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class ContributorItem extends StatelessWidget {
|
||||
const ContributorItem({
|
||||
@ -19,7 +17,6 @@ class ContributorItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return AntListItem(
|
||||
onClick: () {
|
||||
context.pushUrl(url);
|
||||
|
@ -1,9 +1,7 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class EntryItem extends StatelessWidget {
|
||||
const EntryItem({
|
||||
@ -17,8 +15,6 @@ class EntryItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return Expanded(
|
||||
child: LinkWidget(
|
||||
url: url,
|
||||
|
@ -4,13 +4,11 @@ import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/github.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:git_touch/widgets/branch_name.dart';
|
||||
import 'package:git_touch/widgets/issue_icon.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:timeago/timeago.dart' as timeago;
|
||||
|
||||
class EventItem extends StatelessWidget {
|
||||
@ -18,7 +16,6 @@ class EventItem extends StatelessWidget {
|
||||
final GithubEvent e;
|
||||
|
||||
InlineSpan _buildLinkSpan(BuildContext context, String? text, String? url) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return TextSpan(
|
||||
text: text,
|
||||
style: TextStyle(color: AntTheme.of(context).colorPrimary),
|
||||
@ -45,7 +42,6 @@ class EventItem extends StatelessWidget {
|
||||
required List<InlineSpan> spans,
|
||||
Widget? card,
|
||||
}) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Container(
|
||||
padding: CommonStyle.padding,
|
||||
child: Column(
|
||||
@ -97,7 +93,6 @@ class EventItem extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _buildDefaultItem(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return _buildItem(
|
||||
context: context,
|
||||
spans: [
|
||||
@ -112,7 +107,6 @@ class EventItem extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _buildCommitsCard(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return LinkWidget(
|
||||
url:
|
||||
'/github/${e.repoOwner}/${e.repoName}/compare/${e.payload!.before}/${e.payload!.head}',
|
||||
@ -172,7 +166,6 @@ class EventItem extends StatelessWidget {
|
||||
|
||||
// Todo: Add a screen for the url
|
||||
Widget _buildCommitCommentCard(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return LinkWidget(
|
||||
url: e.payload!.comment!.htmlUrl,
|
||||
child: Container(
|
||||
@ -214,7 +207,6 @@ class EventItem extends StatelessWidget {
|
||||
Widget _buildIssueCard(
|
||||
BuildContext context, GithubEventIssue issue, String? body,
|
||||
{isPullRequest = false}) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
IssueIconState state;
|
||||
if (isPullRequest) {
|
||||
if (issue.merged == true) {
|
||||
|
@ -1,12 +1,10 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:from_css_color/from_css_color.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:github/github.dart' as github;
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:timeago/timeago.dart' as timeago;
|
||||
|
||||
class GistsItem extends StatelessWidget {
|
||||
@ -29,7 +27,6 @@ class GistsItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return LinkWidget(
|
||||
url: '/github/$login/gists/$id',
|
||||
child: Container(
|
||||
|
@ -1,9 +1,7 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:timeago/timeago.dart' as timeago;
|
||||
|
||||
const issueGqlChunk = '''
|
||||
@ -56,8 +54,6 @@ class IssueItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return AntListItem(
|
||||
arrow: null,
|
||||
onClick: () {
|
||||
|
@ -1,10 +1,8 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:from_css_color/from_css_color.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:github/github.dart' as github;
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class LanguageBarItem {
|
||||
LanguageBarItem({
|
||||
@ -63,7 +61,6 @@ class LanguageBar extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _buildPopup(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Container(
|
||||
color: AntTheme.of(context).colorBackground,
|
||||
padding: CommonStyle.padding,
|
||||
|
@ -1,7 +1,5 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
// TODO:
|
||||
class CupertinoLink extends StatefulWidget {
|
||||
@ -60,8 +58,6 @@ class LinkWidget extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
Widget w = CupertinoButton(
|
||||
minSize: 0,
|
||||
padding: EdgeInsets.zero,
|
||||
|
@ -1,8 +1,6 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/widgets/empty.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class ListGroup<T> extends StatelessWidget {
|
||||
const ListGroup({
|
||||
@ -17,7 +15,6 @@ class ListGroup<T> extends StatelessWidget {
|
||||
final EdgeInsetsGeometry padding;
|
||||
|
||||
Widget _buildItem(BuildContext context, MapEntry<int, T> entry) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
border:
|
||||
@ -29,7 +26,6 @@ class ListGroup<T> extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Container(
|
||||
padding: padding,
|
||||
child: Container(
|
||||
|
@ -99,7 +99,6 @@ class MarkdownFlutterView extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final code = Provider.of<CodeModel>(context);
|
||||
final basicStyle = TextStyle(
|
||||
fontSize: 16, color: AntTheme.of(context).colorText, height: 1.5);
|
||||
@ -123,8 +122,6 @@ class MarkdownFlutterView extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
onTapLink: (text, url, title) {
|
||||
final theme = context.read<ThemeModel>();
|
||||
|
||||
if (basePaths != null &&
|
||||
!url!.startsWith('https://') &&
|
||||
!url.startsWith('http://')) {
|
||||
|
@ -2,7 +2,6 @@ import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/github.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/issue_icon.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
@ -64,7 +63,6 @@ class _NotificationItemState extends State<NotificationItem> {
|
||||
}
|
||||
|
||||
Widget _buildCheckIcon() {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Icon(
|
||||
payload.unread! ? Ionicons.checkmark : Octicons.dot_fill,
|
||||
color: loading
|
||||
@ -115,7 +113,6 @@ class _NotificationItemState extends State<NotificationItem> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return LinkWidget(
|
||||
url: _url,
|
||||
onTap: _markAsRead,
|
||||
|
@ -1,12 +1,10 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:git_touch/widgets/markdown_view.dart';
|
||||
import 'package:gql_github/releases.data.gql.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:timeago/timeago.dart' as timeago;
|
||||
|
||||
class ReleaseItem extends StatelessWidget {
|
||||
@ -28,7 +26,6 @@ class ReleaseItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Column(
|
||||
children: [
|
||||
const SizedBox(
|
||||
|
@ -1,10 +1,8 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class RepoHeader extends StatelessWidget {
|
||||
const RepoHeader({
|
||||
@ -28,7 +26,6 @@ class RepoHeader extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return Container(
|
||||
padding: CommonStyle.padding,
|
||||
child: Column(
|
||||
|
@ -1,7 +1,5 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MyTextField extends StatelessWidget {
|
||||
const MyTextField({required this.controller, this.placeholder});
|
||||
@ -10,8 +8,6 @@ class MyTextField extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return CupertinoTextField(
|
||||
controller: controller,
|
||||
placeholder: placeholder,
|
||||
|
@ -3,14 +3,12 @@ import 'dart:core';
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/branch_name.dart';
|
||||
import 'package:git_touch/widgets/comment_item.dart';
|
||||
import 'package:git_touch/widgets/hex_color_tag.dart';
|
||||
import 'package:gql_github/issue.data.gql.dart';
|
||||
import 'package:gql_github/schema.schema.gql.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
TextSpan createUserSpan(BuildContext context, String? login) {
|
||||
return createLinkSpan(context, login, '/github/$login');
|
||||
@ -30,8 +28,6 @@ class TimelineEventItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
return Row(
|
||||
children: <Widget>[
|
||||
const SizedBox(width: 6),
|
||||
@ -73,8 +69,6 @@ class TimelineItem extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _buildByType(BuildContext context, String? type) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
switch (type) {
|
||||
// common types
|
||||
case 'PullRequestCommit':
|
||||
|
@ -1,10 +1,8 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:git_touch/widgets/mutation_button.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class UserHeader extends StatelessWidget {
|
||||
const UserHeader({
|
||||
@ -27,7 +25,6 @@ class UserHeader extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final right = isViewer
|
||||
? [
|
||||
MutationButton(
|
||||
|
@ -1,10 +1,8 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:git_touch/widgets/avatar.dart';
|
||||
import 'package:gql_github/users.data.gql.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
const userGqlChunk = '''
|
||||
login
|
||||
@ -20,8 +18,6 @@ class GhBioWidget extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
if (isNotNullOrEmpty(location)) {
|
||||
return Row(
|
||||
children: <Widget>[
|
||||
@ -124,7 +120,6 @@ class UserItem extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return AntListItem(
|
||||
onClick: () {
|
||||
context.pushUrl(url);
|
||||
|
@ -1,8 +1,6 @@
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class UserName extends StatelessWidget {
|
||||
const UserName(this.login, this.prefix);
|
||||
@ -11,7 +9,6 @@ class UserName extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
return LinkWidget(
|
||||
url: '/$prefix/$login',
|
||||
child: Container(
|
||||
|
Loading…
x
Reference in New Issue
Block a user