mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 21:43:31 +00:00
36 lines
890 B
Dart
36 lines
890 B
Dart
import 'package:relatica/models/circle_data.dart';
|
|
|
|
import '../../models/visibility.dart';
|
|
|
|
extension VisibilityMastodonExtensions on Visibility {
|
|
String toCreateStatusValue(bool onComment) {
|
|
if (type == VisibilityType.public) {
|
|
return 'public';
|
|
}
|
|
|
|
if (!onComment && hasDetails) {
|
|
final circleId =
|
|
allowedCircleIds.firstOrNull ?? allowedUserIds.firstOrNull;
|
|
if (circleId == CircleData.followersPseudoCircle.id) {
|
|
return 'private';
|
|
}
|
|
|
|
return circleId ?? 'private';
|
|
}
|
|
|
|
if (onComment && !hasDetails && type == VisibilityType.private) {
|
|
return 'direct';
|
|
}
|
|
|
|
return 'private';
|
|
}
|
|
|
|
Map<String, dynamic> friendicaExtensionVisibilityJson() {
|
|
return {
|
|
"allow_cid": allowedUserIds,
|
|
"deny_cid": excludedUserIds,
|
|
"allow_gid": allowedCircleIds,
|
|
"deny_gid": excludedCircleIds,
|
|
};
|
|
}
|
|
}
|