Fix navigation buttons disabled state

This commit is contained in:
Ali 2020-03-02 02:58:39 +04:00
parent 1ad432fd9c
commit 4fd8b81a77
2 changed files with 10 additions and 1 deletions

View File

@ -50,6 +50,8 @@ public class ImmediateTextNode: TextNode {
public var trailingLineWidth: CGFloat?
var constrainedSize: CGSize?
public var highlightAttributeAction: (([NSAttributedString.Key: Any]) -> NSAttributedString.Key?)? {
didSet {
if self.isNodeLoaded {
@ -83,6 +85,8 @@ public class ImmediateTextNode: TextNode {
}
public func updateLayout(_ constrainedSize: CGSize) -> CGSize {
self.constrainedSize = constrainedSize
let makeLayout = TextNode.asyncLayout(self)
let (layout, apply) = makeLayout(TextNodeLayoutArguments(attributedString: self.attributedText, backgroundColor: nil, maximumNumberOfLines: self.maximumNumberOfLines, truncationType: self.truncationType, constrainedSize: constrainedSize, alignment: self.textAlignment, lineSpacing: self.lineSpacing, cutout: self.cutout, insets: self.insets, textShadowColor: self.textShadowColor, textStroke: self.textStroke))
let _ = apply()
@ -95,6 +99,8 @@ public class ImmediateTextNode: TextNode {
}
public func updateLayoutInfo(_ constrainedSize: CGSize) -> ImmediateTextNodeLayoutInfo {
self.constrainedSize = constrainedSize
let makeLayout = TextNode.asyncLayout(self)
let (layout, apply) = makeLayout(TextNodeLayoutArguments(attributedString: self.attributedText, backgroundColor: nil, maximumNumberOfLines: self.maximumNumberOfLines, truncationType: self.truncationType, constrainedSize: constrainedSize, alignment: self.textAlignment, lineSpacing: self.lineSpacing, cutout: self.cutout, insets: self.insets))
let _ = apply()

View File

@ -283,7 +283,10 @@ private final class NavigationButtonItemNode: ImmediateTextNode {
public var isEnabled: Bool = true {
didSet {
if self.isEnabled != oldValue {
self.attributedText = NSAttributedString(string: text, attributes: self.attributesForCurrentState())
self.attributedText = NSAttributedString(string: self.text, attributes: self.attributesForCurrentState())
if let constrainedSize = self.constrainedSize {
let _ = self.updateLayout(constrainedSize)
}
}
}
}