2023-11-15 21:05:45 +00:00
|
|
|
import 'package:relatica/models/circle_data.dart';
|
2023-03-21 02:46:39 +00:00
|
|
|
|
2023-03-21 01:55:47 +00:00
|
|
|
import '../../models/visibility.dart';
|
|
|
|
|
|
|
|
extension VisibilityMastodonExtensions on Visibility {
|
2023-11-18 02:47:44 +00:00
|
|
|
String toCreateStatusValue(bool onComment) {
|
2023-03-21 01:55:47 +00:00
|
|
|
if (type == VisibilityType.public) {
|
|
|
|
return 'public';
|
|
|
|
}
|
|
|
|
|
2023-11-18 02:47:44 +00:00
|
|
|
if (!onComment && hasDetails) {
|
|
|
|
final circleId =
|
|
|
|
allowedCircleIds.firstOrNull ?? allowedUserIds.firstOrNull;
|
2023-11-15 21:05:45 +00:00
|
|
|
if (circleId == CircleData.followersPseudoCircle.id) {
|
2023-03-21 02:46:39 +00:00
|
|
|
return 'private';
|
|
|
|
}
|
|
|
|
|
2023-11-18 02:47:44 +00:00
|
|
|
return circleId ?? 'private';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (onComment && !hasDetails && type == VisibilityType.private) {
|
|
|
|
return 'direct';
|
2023-03-21 01:55:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return 'private';
|
|
|
|
}
|
2023-11-18 02:47:44 +00:00
|
|
|
|
|
|
|
Map<String, dynamic> friendicaExtensionVisibilityJson() {
|
|
|
|
return {
|
|
|
|
"allow_cid": allowedUserIds,
|
|
|
|
"deny_cid": excludedUserIds,
|
|
|
|
"allow_gid": allowedCircleIds,
|
|
|
|
"deny_gid": excludedCircleIds,
|
|
|
|
};
|
|
|
|
}
|
2023-11-15 21:05:45 +00:00
|
|
|
}
|