Skip to content

Commit

Permalink
Adds onAfterUpdateTransaction and changes names
Browse files Browse the repository at this point in the history
  • Loading branch information
Ubax committed Oct 11, 2021
1 parent ddc9d57 commit 252f93d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,31 @@ import com.facebook.react.bridge.JSApplicationIllegalArgumentException
import com.facebook.react.common.MapBuilder
import com.facebook.react.module.annotations.ReactModule
import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.ViewGroupManager
import com.facebook.react.uimanager.annotations.ReactProp
import com.facebook.react.views.view.ReactViewGroup
import com.facebook.react.views.view.ReactViewManager

@ReactModule(name = RNSSearchBarManager.REACT_CLASS)
class RNSSearchBarManager : ReactViewManager() {
@ReactModule(name = SearchBarManager.REACT_CLASS)
class SearchBarManager : ViewGroupManager<SearchBarView>() {
override fun getName(): String {
return REACT_CLASS
}

override fun createViewInstance(context: ThemedReactContext): ReactViewGroup {
return RNSSearchBarView(context)
override fun createViewInstance(context: ThemedReactContext): SearchBarView {
return SearchBarView(context)
}

override fun onAfterUpdateTransaction(view: SearchBarView) {
super.onAfterUpdateTransaction(view)
view.didPropsChange()
}

@ReactProp(name = "autoCapitalize")
fun setAutoCapitalize(view: RNSSearchBarView, autoCapitalize: String?) {
fun setAutoCapitalize(view: SearchBarView, autoCapitalize: String?) {
view.autoCapitalize = when (autoCapitalize) {
null, "none" -> RNSSearchBarView.RNSSearchBarAutoCapitalize.NONE
"words" -> RNSSearchBarView.RNSSearchBarAutoCapitalize.WORDS
"sentences" -> RNSSearchBarView.RNSSearchBarAutoCapitalize.SENTENCES
"characters" -> RNSSearchBarView.RNSSearchBarAutoCapitalize.CHARACTERS
null, "none" -> SearchBarView.SearchBarAutoCapitalize.NONE
"words" -> SearchBarView.SearchBarAutoCapitalize.WORDS
"sentences" -> SearchBarView.SearchBarAutoCapitalize.SENTENCES
"characters" -> SearchBarView.SearchBarAutoCapitalize.CHARACTERS
else -> throw JSApplicationIllegalArgumentException(
"Forbidden auto capitalize value passed"
)
Expand All @@ -33,12 +37,12 @@ class RNSSearchBarManager : ReactViewManager() {
}

@ReactProp(name = "inputType")
fun setInputType(view: RNSSearchBarView, inputType: String?) {
fun setInputType(view: SearchBarView, inputType: String?) {
view.inputType = when (inputType) {
null, "text" -> RNSSearchBarView.RNSSearchBarInputTypes.TEXT
"phone" -> RNSSearchBarView.RNSSearchBarInputTypes.PHONE
"number" -> RNSSearchBarView.RNSSearchBarInputTypes.NUMBER
"email" -> RNSSearchBarView.RNSSearchBarInputTypes.EMAIL
null, "text" -> SearchBarView.SearchBarInputTypes.TEXT
"phone" -> SearchBarView.SearchBarInputTypes.PHONE
"number" -> SearchBarView.SearchBarInputTypes.NUMBER
"email" -> SearchBarView.SearchBarInputTypes.EMAIL
else -> throw JSApplicationIllegalArgumentException(
"Forbidden input type value"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ import com.facebook.react.uimanager.events.RCTEventEmitter
import com.facebook.react.views.view.ReactViewGroup

@SuppressLint("ViewConstructor")
class RNSSearchBarView(reactContext: ReactContext?) : ReactViewGroup(reactContext) {
enum class RNSSearchBarAutoCapitalize {
class SearchBarView(reactContext: ReactContext?) : ReactViewGroup(reactContext) {
enum class SearchBarAutoCapitalize {
NONE, WORDS, SENTENCES, CHARACTERS
}

enum class RNSSearchBarInputTypes {
enum class SearchBarInputTypes {
TEXT, PHONE, NUMBER, EMAIL
}

var inputType: RNSSearchBarInputTypes = RNSSearchBarInputTypes.TEXT
var autoCapitalize: RNSSearchBarAutoCapitalize = RNSSearchBarAutoCapitalize.NONE
var inputType: SearchBarInputTypes = SearchBarInputTypes.TEXT
var autoCapitalize: SearchBarAutoCapitalize = SearchBarAutoCapitalize.NONE

private val screenStackFragment: ScreenStackFragment?
get() {
Expand All @@ -36,12 +36,12 @@ class RNSSearchBarView(reactContext: ReactContext?) : ReactViewGroup(reactContex
super.onAttachedToWindow()

setSearchViewProps()
screenStackFragment?.onSearchViewCreate = {setSearchViewProps()}
screenStackFragment?.onSearchViewCreate = { setSearchViewProps() }
}

private fun setSearchViewProps(){
private fun setSearchViewProps() {
val searchView = screenStackFragment?.searchView
if(searchView != null){
if (searchView != null) {
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextChange(newText: String?): Boolean {
handleTextChange(newText)
Expand All @@ -53,11 +53,11 @@ class RNSSearchBarView(reactContext: ReactContext?) : ReactViewGroup(reactContex
return true
}
})
searchView.inputType=getSearchViewInputType()
searchView.inputType = getSearchViewInputType()
}
}

fun didPropsChange(){
fun didPropsChange() {
setSearchViewProps()
}

Expand All @@ -79,16 +79,16 @@ class RNSSearchBarView(reactContext: ReactContext?) : ReactViewGroup(reactContex
sendEvent("onTextSubmit", event)
}

private fun getSearchViewInputType():Int {
private fun getSearchViewInputType(): Int {
return when (inputType) {
RNSSearchBarInputTypes.PHONE -> InputType.TYPE_CLASS_PHONE
RNSSearchBarInputTypes.NUMBER -> InputType.TYPE_CLASS_NUMBER
RNSSearchBarInputTypes.EMAIL -> InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
RNSSearchBarInputTypes.TEXT -> when (autoCapitalize) {
RNSSearchBarAutoCapitalize.NONE -> InputType.TYPE_CLASS_TEXT
RNSSearchBarAutoCapitalize.WORDS -> InputType.TYPE_TEXT_FLAG_CAP_WORDS
RNSSearchBarAutoCapitalize.SENTENCES -> InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
RNSSearchBarAutoCapitalize.CHARACTERS -> InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
SearchBarInputTypes.PHONE -> InputType.TYPE_CLASS_PHONE
SearchBarInputTypes.NUMBER -> InputType.TYPE_CLASS_NUMBER
SearchBarInputTypes.EMAIL -> InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
SearchBarInputTypes.TEXT -> when (autoCapitalize) {
SearchBarAutoCapitalize.NONE -> InputType.TYPE_CLASS_TEXT
SearchBarAutoCapitalize.WORDS -> InputType.TYPE_TEXT_FLAG_CAP_WORDS
SearchBarAutoCapitalize.SENTENCES -> InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
SearchBarAutoCapitalize.CHARACTERS -> InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
}
}
}
Expand Down

0 comments on commit 252f93d

Please sign in to comment.