Skip to content

Instantly share code, notes, and snippets.

@felippewick
Created June 24, 2025 12:24
Show Gist options
  • Save felippewick/683d4b4bbfb56629b75b551b5e17342f to your computer and use it in GitHub Desktop.
Save felippewick/683d4b4bbfb56629b75b551b5e17342f to your computer and use it in GitHub Desktop.
[email protected] height patch
diff --git a/plugin/swift/ShareExtensionViewController.swift b/plugin/swift/ShareExtensionViewController.swift
index fe2403a671cc0fc88faa2ac74be2d030be51e69a..a346ddfa4bc6ded0768e124b95de7306e0dc597d 100644
--- a/plugin/swift/ShareExtensionViewController.swift
+++ b/plugin/swift/ShareExtensionViewController.swift
@@ -47,6 +47,16 @@ class ShareExtensionViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
+
+ // Set preferred size for the share extension modal
+ let screenHeight = UIScreen.main.bounds.height
+ let modalHeight = screenHeight * 0.7 // 70% of screen height
+ self.preferredContentSize = CGSize(width: UIScreen.main.bounds.width, height: modalHeight)
+
+ // Make root view transparent
+ self.view.backgroundColor = .clear
+ self.view.isOpaque = false
+
setupLoadingIndicator()
// Set the contentScaleFactor for the main view of this view controller
@@ -113,18 +123,19 @@ class ShareExtensionViewController: UIViewController {
// Set the content scale factor for the new view (the React Native view) BEFORE setting frame and assigning
reactNativeRootView.contentScaleFactor = currentScale
- // Set the frame of the React Native view to fill the bounds of the original view
- reactNativeRootView.frame = currentBounds
-
-
+ // Set background color and corner radius for the React Native view
+ reactNativeRootView.backgroundColor = .white
+ reactNativeRootView.layer.cornerRadius = 10
+ reactNativeRootView.clipsToBounds = true
+
view.addSubview(reactNativeRootView)
- // Ensure the React Native root view fills its parent (self.view)
+ // Update constraints to respect the modal height
reactNativeRootView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
- reactNativeRootView.topAnchor.constraint(equalTo: self.view.topAnchor),
- reactNativeRootView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
- reactNativeRootView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
+ reactNativeRootView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
+ reactNativeRootView.widthAnchor.constraint(equalTo: self.view.widthAnchor),
+ reactNativeRootView.heightAnchor.constraint(equalToConstant: self.preferredContentSize.height),
reactNativeRootView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor)
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment