#1049 - fix max character limit and other server configs are not respected (#1207)

This commit is contained in:
Marcus Kida 2024-01-12 14:33:48 +01:00 committed by GitHub
parent 976f934df9
commit d55800d71a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 11 deletions

View File

@ -114,7 +114,7 @@ extension Mastodon.Entity.Instance {
}
extension Mastodon.Entity.Instance {
public struct Configuration: Codable {
public struct Configuration: Codable, InstanceConfigLimitingPropertyContaining {
public let statuses: Statuses?
public let mediaAttachments: MediaAttachments?
public let polls: Polls?

View File

@ -71,7 +71,7 @@ extension Mastodon.Entity.V2 {
}
extension Mastodon.Entity.V2.Instance {
public struct Configuration: Codable {
public struct Configuration: Codable, InstanceConfigLimitingPropertyContaining {
public let statuses: Mastodon.Entity.Instance.Configuration.Statuses?
public let mediaAttachments: Mastodon.Entity.Instance.Configuration.MediaAttachments?
public let polls: Mastodon.Entity.Instance.Configuration.Polls?

View File

@ -0,0 +1,7 @@
// Copyright © 2024 Mastodon gGmbH. All rights reserved.
public protocol InstanceConfigLimitingPropertyContaining {
var statuses: Mastodon.Entity.Instance.Configuration.Statuses? { get }
var mediaAttachments: Mastodon.Entity.Instance.Configuration.MediaAttachments? { get }
var polls: Mastodon.Entity.Instance.Configuration.Polls? { get }
}

View File

@ -228,15 +228,14 @@ public final class ComposeContentViewModel: NSObject, ObservableObject {
}
// set limit
let _configuration: Mastodon.Entity.Instance.Configuration? = {
var configuration: Mastodon.Entity.Instance.Configuration? = nil
context.managedObjectContext.performAndWait {
let authentication = authContext.mastodonAuthenticationBox.authentication
configuration = authentication.instance(in: context.managedObjectContext)?.configuration
}
return configuration
}()
if let configuration = _configuration {
var configuration: InstanceConfigLimitingPropertyContaining?
context.managedObjectContext.performAndWait {
let authentication = authContext.mastodonAuthenticationBox.authentication
configuration = (authentication.instance(in: context.managedObjectContext)?.configurationV2 ?? authentication.instance(in: context.managedObjectContext)?.configuration)
}
if let configuration {
// set character limit
if let maxCharacters = configuration.statuses?.maxCharacters {
maxTextInputLimit = maxCharacters