39 lines
881 B
Dart
39 lines
881 B
Dart
|
import 'package:lemmy_api_client/v3.dart';
|
||
|
import 'package:mobx/mobx.dart';
|
||
|
|
||
|
import '../../../util/async_store.dart';
|
||
|
|
||
|
part 'community_block_store.g.dart';
|
||
|
|
||
|
class CommunityBlockStore = _CommunityBlockStore with _$CommunityBlockStore;
|
||
|
|
||
|
abstract class _CommunityBlockStore with Store {
|
||
|
final String instanceHost;
|
||
|
final Jwt token;
|
||
|
final CommunitySafe community;
|
||
|
|
||
|
_CommunityBlockStore({
|
||
|
required this.instanceHost,
|
||
|
required this.token,
|
||
|
required this.community,
|
||
|
});
|
||
|
|
||
|
final unblockingState = AsyncStore<BlockedCommunity>();
|
||
|
|
||
|
@observable
|
||
|
bool blocked = true;
|
||
|
|
||
|
Future<void> unblock() async {
|
||
|
final result = await unblockingState.runLemmy(
|
||
|
instanceHost,
|
||
|
BlockCommunity(
|
||
|
communityId: community.id,
|
||
|
block: false,
|
||
|
auth: token.raw,
|
||
|
));
|
||
|
if (result != null) {
|
||
|
blocked = result.blocked;
|
||
|
}
|
||
|
}
|
||
|
}
|