44 lines
1.0 KiB
Dart
44 lines
1.0 KiB
Dart
import 'package:lemmy_api_client/v3.dart';
|
|
import 'package:mobx/mobx.dart';
|
|
|
|
import '../../util/async_store.dart';
|
|
|
|
part 'instance_store.g.dart';
|
|
|
|
class InstanceStore = _InstanceStore with _$InstanceStore;
|
|
|
|
abstract class _InstanceStore with Store {
|
|
final String instanceHost;
|
|
|
|
_InstanceStore(this.instanceHost);
|
|
|
|
final siteState = AsyncStore<FullSiteView>();
|
|
final communitiesState = AsyncStore<List<CommunityView>>();
|
|
|
|
@action
|
|
Future<void> fetch(Jwt? token, {bool refresh = false}) async {
|
|
await Future.wait([
|
|
siteState.runLemmy(
|
|
instanceHost,
|
|
GetSite(auth: token?.raw),
|
|
refresh: refresh,
|
|
),
|
|
fetchCommunites(token, refresh: refresh),
|
|
]);
|
|
}
|
|
|
|
@action
|
|
Future<void> fetchCommunites(Jwt? token, {bool refresh = false}) async {
|
|
await communitiesState.runLemmy(
|
|
instanceHost,
|
|
ListCommunities(
|
|
type: PostListingType.local,
|
|
sort: SortType.hot,
|
|
limit: 6,
|
|
auth: token?.raw,
|
|
),
|
|
refresh: refresh,
|
|
);
|
|
}
|
|
}
|