1 /// Here we implement the components exclusive for view managers. 2 3 // MARK: View factory 4 5 /** 6 Defines the factory creating a native view when the module is used as a view. 7 */ 8 @available(*, deprecated, renamed: "View") 9 public func view(_ closure: @escaping () -> UIView) -> ViewManagerDefinitionComponent { 10 return ViewFactory(closure) 11 } 12 13 /** 14 Defines the factory creating a native view when the module is used as a view. 15 */ 16 public func View(_ closure: @escaping () -> UIView) -> ViewManagerDefinitionComponent { 17 return ViewFactory(closure) 18 } 19 20 // MARK: Props 21 22 /** 23 Creates a view prop that defines its name and setter. 24 */ 25 @available(*, deprecated, renamed: "Prop") 26 public func prop<ViewType: UIView, PropType: AnyArgument>( 27 _ name: String, 28 _ setter: @escaping (ViewType, PropType) -> Void 29 ) -> ViewManagerDefinitionComponent { 30 return ConcreteViewProp( 31 name: name, 32 propType: ~PropType.self, 33 setter: setter 34 ) 35 } 36 37 /** 38 Creates a view prop that defines its name and setter. 39 */ 40 public func Prop<ViewType: UIView, PropType: AnyArgument>( 41 _ name: String, 42 _ setter: @escaping (ViewType, PropType) -> Void 43 ) -> ViewManagerDefinitionComponent { 44 return ConcreteViewProp( 45 name: name, 46 propType: ~PropType.self, 47 setter: setter 48 ) 49 } 50