Only allow post-level spoiler text for Friendica servers with v2023.03 or later

This commit is contained in:
Hank Grabowski 2023-03-18 15:13:42 -04:00
parent 3f6f04c9e7
commit 693f781ea9
2 changed files with 10 additions and 8 deletions

View file

@ -178,6 +178,8 @@ class _EditorScreenState extends State<EditorScreen> {
final vc = getIt<FriendicaVersionChecker>(); final vc = getIt<FriendicaVersionChecker>();
final canEdit = vc.canUseFeature(RelaticaFeatures.statusEditing); final canEdit = vc.canUseFeature(RelaticaFeatures.statusEditing);
final canSpoilerText = vc.canUseFeature(RelaticaFeatures.postSpoilerText) ||
widget.parentId.isNotEmpty;
late final body; late final body;
@ -205,14 +207,14 @@ class _EditorScreenState extends State<EditorScreen> {
buildCommentPreview(context, parentEntry!), buildCommentPreview(context, parentEntry!),
TextFormField( TextFormField(
readOnly: isSubmitting, readOnly: isSubmitting,
enabled: !isSubmitting, enabled: !isSubmitting && canSpoilerText,
controller: spoilerController, controller: spoilerController,
decoration: InputDecoration( decoration: InputDecoration(
labelText: '$statusType Spoiler Text (optional)', labelText: canSpoilerText
? '$statusType Spoiler Text (optional)'
: 'Your server doesnt support $statusType Spoiler Text',
border: OutlineInputBorder( border: OutlineInputBorder(
borderSide: BorderSide( borderSide: const BorderSide(),
color: Theme.of(context).backgroundColor,
),
borderRadius: BorderRadius.circular(5.0), borderRadius: BorderRadius.circular(5.0),
), ),
), ),
@ -290,9 +292,7 @@ class _EditorScreenState extends State<EditorScreen> {
labelText: '$statusType Content', labelText: '$statusType Content',
alignLabelWithHint: true, alignLabelWithHint: true,
border: OutlineInputBorder( border: OutlineInputBorder(
borderSide: BorderSide( borderSide: const BorderSide(),
color: Theme.of(context).backgroundColor,
),
borderRadius: BorderRadius.circular(5.0), borderRadius: BorderRadius.circular(5.0),
), ),
), ),

View file

@ -6,6 +6,7 @@ import '../globals.dart';
import '../models/friendica_version.dart'; import '../models/friendica_version.dart';
enum RelaticaFeatures { enum RelaticaFeatures {
postSpoilerText,
statusEditing, statusEditing,
} }
@ -43,6 +44,7 @@ class FriendicaVersionChecker {
"This account's server doesn't meet the necessary minimum requirement: ${getVersionRequirement(feature).toVersionString()}"; "This account's server doesn't meet the necessary minimum requirement: ${getVersionRequirement(feature).toVersionString()}";
static final featureVersionRequirement = <RelaticaFeatures, FriendicaVersion>{ static final featureVersionRequirement = <RelaticaFeatures, FriendicaVersion>{
RelaticaFeatures.postSpoilerText: v2023_03,
RelaticaFeatures.statusEditing: v2023_03, RelaticaFeatures.statusEditing: v2023_03,
}; };
} }