diff --git a/submodules/TelegramUI/Components/ContextMenuScreen/Sources/ContextMenuActionNode.swift b/submodules/TelegramUI/Components/ContextMenuScreen/Sources/ContextMenuActionNode.swift index 6f00594791..71fdce0495 100644 --- a/submodules/TelegramUI/Components/ContextMenuScreen/Sources/ContextMenuActionNode.swift +++ b/submodules/TelegramUI/Components/ContextMenuScreen/Sources/ContextMenuActionNode.swift @@ -143,6 +143,7 @@ final class ContextMenuActionNode: ASDisplayNode { override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize { if let textNode = self.textNode { + let constrainedSize = CGSize(width: constrainedSize.width - 36.0 - 24.0, height: constrainedSize.height) let textSize = textNode.updateLayout(constrainedSize) self.textSize = textSize @@ -151,7 +152,7 @@ final class ContextMenuActionNode: ASDisplayNode { totalWidth += textSize.width if let subtitleNode = self.subtitleNode { - let subtitleSize = subtitleNode.updateLayout(constrainedSize) + let subtitleSize = subtitleNode.updateLayout(CGSize(width: constrainedSize.width * 0.75, height: constrainedSize.height)) self.subtitleSize = subtitleSize totalWidth = max(totalWidth, subtitleSize.width) totalHeight += 14.0 diff --git a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/CreateLinkScreen.swift b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/CreateLinkScreen.swift index 1c82fb22d7..506b9d1612 100644 --- a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/CreateLinkScreen.swift +++ b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/CreateLinkScreen.swift @@ -204,6 +204,14 @@ private final class SheetContent: CombinedComponent { ) ) + state.selectLink = { + if let controller = controller() as? CreateLinkScreen { + if let view = controller.node.hostView.findTaggedView(tag: linkTag) as? LinkFieldComponent.View { + view.selectAll() + } + } + } + let urlSection = urlSection.update( component: ListSectionComponent( theme: theme, @@ -325,6 +333,8 @@ private final class CreateLinkSheetComponent: CombinedComponent { private let linkDisposable = MetaDisposable() private let linkPromise = ValuePromise() + var selectLink: () -> Void = {} + init( context: AccountContext, link: CreateLinkScreen.Link? @@ -340,6 +350,20 @@ private final class CreateLinkSheetComponent: CombinedComponent { super.init() + if link == nil { + Queue.mainQueue().after(0.1, { + let pasteboard = UIPasteboard.general + if pasteboard.hasURLs { + if let url = pasteboard.url?.absoluteString, !url.isEmpty { + self.link = url + self.updated() + + self.selectLink() + } + } + }) + } + self.linkDisposable.set((self.linkPromise.get() |> delay(1.5, queue: Queue.mainQueue()) |> deliverOnMainQueue).startStrict(next: { [weak self] link in @@ -707,6 +731,10 @@ private final class LinkFieldComponent: Component { self.textField.becomeFirstResponder() } + func selectAll() { + self.textField.selectAll(nil) + } + func update(component: LinkFieldComponent, availableSize: CGSize, state: EmptyComponentState, environment: Environment, transition: ComponentTransition) -> CGSize { self.textField.textColor = component.textColor self.textField.text = component.text