package com.svgurl import com.facebook.react.module.annotations.ReactModule import com.facebook.react.uimanager.SimpleViewManager import com.facebook.react.uimanager.ThemedReactContext import com.facebook.react.uimanager.ViewManagerDelegate import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.viewmanagers.SvgUrlViewManagerInterface import com.facebook.react.viewmanagers.SvgUrlViewManagerDelegate @ReactModule(name = SvgUrlViewManager.NAME) class SvgUrlViewManager : SimpleViewManager(), SvgUrlViewManagerInterface { private val delegate: ViewManagerDelegate = SvgUrlViewManagerDelegate(this) override fun getDelegate(): ViewManagerDelegate = delegate override fun getName() = NAME override fun createViewInstance(reactContext: ThemedReactContext): SvgUrlView { return SvgUrlView(reactContext) } // === React Props === @ReactProp(name = "url") override fun setUrl(view: SvgUrlView, url: String?) { url?.let { view.setUrl(it) } } @ReactProp(name = "width") override fun setWidth(view: SvgUrlView, width: Int) { view.setWidthProp(width) } @ReactProp(name = "height") override fun setHeight(view: SvgUrlView, height: Int) { view.setHeightProp(height) } // === Implement required abstract methods === @ReactProp(name = "showSkeleton") override fun setShowSkeleton(view: SvgUrlView, value: Boolean) { view.setShowSkeleton(value) } @ReactProp(name = "placeholder") override fun setPlaceholder(view: SvgUrlView, value: String?) { view.setPlaceholder(value) } @ReactProp(name = "failedPlaceholder") override fun setFailedPlaceholder(view: SvgUrlView, value: String?) { view.setFailedPlaceholder(value) } companion object { const val NAME = "SvgUrlView" } }