Skip to content

Commit

Permalink
remove SlidableController
Browse files Browse the repository at this point in the history
  • Loading branch information
wuuzw committed Feb 3, 2021
1 parent 7e1c66c commit 735bffc
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 93 deletions.
2 changes: 0 additions & 2 deletions lib/app/modules/bookmarks/bookmark_controller.dart
@@ -1,5 +1,4 @@
import 'package:flutter_modular/flutter_modular.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:mobx/mobx.dart';

import '../../shared/models/feed_item.dart';
Expand All @@ -12,7 +11,6 @@ class BookmarkController = _BookmarksControllerBase with _$BookmarkController;

abstract class _BookmarksControllerBase with Store {
final BookmarkRepository _bookmarksRepository = Modular.get();
final SlidableController slidableController = SlidableController();

_BookmarksControllerBase();

Expand Down
2 changes: 0 additions & 2 deletions lib/app/modules/bookmarks/widgets/bookmark_tile.dart
Expand Up @@ -20,8 +20,6 @@ class BookmarkTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Slidable(
key: Key(bookmark.id.toString()),
controller: controller.slidableController,
actionExtentRatio: actionExtentRatio,
actionPane: SlidableDrawerActionPane(),
child: Tile(
Expand Down
172 changes: 85 additions & 87 deletions lib/app/modules/home/home_controller.dart
@@ -1,87 +1,85 @@
import 'package:flutter_modular/flutter_modular.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:mobx/mobx.dart';

import '../../shared/models/feed_item.dart';
import '../../shared/models/feed_type.dart';
import '../../shared/repositories/bookmark_repository.dart';
import 'repository/home_repository.dart';

part 'home_controller.g.dart';

@Injectable()
class HomeController = _HomeControllerBase with _$HomeController;

abstract class _HomeControllerBase with Store {
final HomeRepository _repository;
final BookmarkRepository _bookmarksRepository = Modular.get();
final SlidableController slidableController = SlidableController();

int _currentPage = 1;
List<FeedItem> feedItems = [];

@observable
FeedType feedType = FeedType.top;

@observable
bool hasNextPage = false;

@observable
ObservableFuture feedItemsFuture;

@observable
bool isLoadingNextPage = false;

_HomeControllerBase(this._repository);

@action
Future<void> loadFeedItems() async {
feedItems.clear();
_currentPage = 1;
var future = ObservableFuture<void>(loadNextPage());

feedItemsFuture = future;
}

@action
Future<void> loadNextPage() async {
if (isLoadingNextPage || (_currentPage > 1 && !hasNextPage)) {
return;
}

try {
isLoadingNextPage = true;
var feed;
switch (feedType) {
case FeedType.top:
feed = await _repository.top(page: _currentPage);
break;
case FeedType.newest:
feed = await _repository.newest(page: _currentPage);
break;
case FeedType.best:
feed = await _repository.best(page: _currentPage);
break;
case FeedType.ask:
feed = await _repository.ask(page: _currentPage);
break;
case FeedType.show:
feed = await _repository.show(page: _currentPage);
break;
case FeedType.job:
feed = await _repository.jobs();
break;
}

feedItems.addAll(feed.items);
hasNextPage = feed.hasNextPage;
_currentPage++;
} finally {
isLoadingNextPage = false;
}
}

void addBookmark(FeedItem item) {
_bookmarksRepository.add(item);
}
}
import 'package:flutter_modular/flutter_modular.dart';
import 'package:mobx/mobx.dart';

import '../../shared/models/feed_item.dart';
import '../../shared/models/feed_type.dart';
import '../../shared/repositories/bookmark_repository.dart';
import 'repository/home_repository.dart';

part 'home_controller.g.dart';

@Injectable()
class HomeController = _HomeControllerBase with _$HomeController;

abstract class _HomeControllerBase with Store {
final HomeRepository _repository;
final BookmarkRepository _bookmarksRepository = Modular.get();

int _currentPage = 1;
List<FeedItem> feedItems = [];

@observable
FeedType feedType = FeedType.top;

@observable
bool hasNextPage = false;

@observable
ObservableFuture feedItemsFuture;

@observable
bool isLoadingNextPage = false;

_HomeControllerBase(this._repository);

@action
Future<void> loadFeedItems() async {
feedItems.clear();
_currentPage = 1;
var future = ObservableFuture<void>(loadNextPage());

feedItemsFuture = future;
}

@action
Future<void> loadNextPage() async {
if (isLoadingNextPage || (_currentPage > 1 && !hasNextPage)) {
return;
}

try {
isLoadingNextPage = true;
var feed;
switch (feedType) {
case FeedType.top:
feed = await _repository.top(page: _currentPage);
break;
case FeedType.newest:
feed = await _repository.newest(page: _currentPage);
break;
case FeedType.best:
feed = await _repository.best(page: _currentPage);
break;
case FeedType.ask:
feed = await _repository.ask(page: _currentPage);
break;
case FeedType.show:
feed = await _repository.show(page: _currentPage);
break;
case FeedType.job:
feed = await _repository.jobs();
break;
}

feedItems.addAll(feed.items);
hasNextPage = feed.hasNextPage;
_currentPage++;
} finally {
isLoadingNextPage = false;
}
}

void addBookmark(FeedItem item) {
_bookmarksRepository.add(item);
}
}
2 changes: 0 additions & 2 deletions lib/app/modules/home/widgets/feed_tile.dart
Expand Up @@ -20,8 +20,6 @@ class FeedTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Slidable(
key: Key(feedItem.id.toString()),
controller: controller.slidableController,
actionExtentRatio: actionExtentRatio,
actionPane: SlidableDrawerActionPane(),
child: Tile(
Expand Down

0 comments on commit 735bffc

Please sign in to comment.