This commit is contained in:
parent
976f934df9
commit
d55800d71a
|
@ -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?
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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 }
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue