0.1.2 • Published 3 years ago

react-native-multi-selectbox-typescript v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

react-native-multi-selectbox-typescript

Typescript version of react-native-multi-select-box

demo

Getting started

How to install 🎹

npm install react-native-multi-selectbox-typescript

Usage 𖣠

import React, { useState } from 'react'
import { Text, View } from 'react-native'
import SelectBox from 'react-native-multi-selectbox-typescript'
import { xorBy } from 'lodash'

// Options data must contain 'item' & 'id' keys

const K_OPTIONS = [
  {
    item: 'Juventus',
    id: 'JUVE',
  },
  {
    item: 'Real Madrid',
    id: 'RM',
  },
  {
    item: 'Barcelona',
    id: 'BR',
  },
  {
    item: 'PSG',
    id: 'PSG',
  },
  {
    item: 'FC Bayern Munich',
    id: 'FBM',
  },
  {
    item: 'Manchester United FC',
    id: 'MUN',
  },
  {
    item: 'Manchester City FC',
    id: 'MCI',
  },
  {
    item: 'Everton FC',
    id: 'EVE',
  },
  {
    item: 'Tottenham Hotspur FC',
    id: 'TOT',
  },
  {
    item: 'Chelsea FC',
    id: 'CHE',
  },
  {
    item: 'Liverpool FC',
    id: 'LIV',
  },
  {
    item: 'Arsenal FC',
    id: 'ARS',
  },

  {
    item: 'Leicester City FC',
    id: 'LEI',
  },
]

function App() {
  const [selectedTeam, setSelectedTeam] = useState({})
  const [selectedTeams, setSelectedTeams] = useState([])
  return (
    <View style={{ margin: 30 }}>
      <View style={{ width: '100%', alignItems: 'center' }}>
        <Text style={{ fontSize: 30, paddingBottom: 20 }}>Demos</Text>
      </View>
      <Text style={{ fontSize: 20, paddingBottom: 10 }}>Select Demo</Text>
      <SelectBox
        label="Select single"
        options={K_OPTIONS}
        value={selectedTeam}
        onChange={onChange()}
        hideInputFilter={false}
      />
      <View style={{ height: 40 }} />
      <Text style={{ fontSize: 20, paddingBottom: 10 }}>MultiSelect Demo</Text>
      <SelectBox
        label="Select multiple"
        options={K_OPTIONS}
        selectedValues={selectedTeams}
        onMultiSelect={onMultiChange()}
        onTapClose={onMultiChange()}
        isMulti
      />
    </View>
  )

  function onMultiChange() {
    return (item) => setSelectedTeams(xorBy(selectedTeams, [item], 'id'))
  }

  function onChange() {
    return (val) => setSelectedTeam(val)
  }
}

export default App
PropTypeDefault Value
labelStringLabel
inputPlaceholderstringLabel
listEmptyTextString"No results found"
widthstring"100%"
viewMarginstring"0px"
isMultibooleanfalse
hideInputFilterbooleantrue
selectedValuesarray[]
valuearray[]
selectIconcomponent<Icon name={'downArrow'} />
labelStylestyle objectDefault style
containerStylestyle objectDefault style
inputFilterContainerStylestyle objectDefault style
inputFilterStylestyle objectDefault style
optionsLabelStylestyle objectDefault style
optionContainerStylestyle objectDefault style
multiOptionContainerStylestyle objectDefault style
multiOptionsLabelStylestyle objectDefault style
multiListEmptyLabelStylestyle objectDefault style
listEmptyLabelStylestyle objectDefault style
selectedItemStylestyle objectDefault style
searchInputPropsobjectDefault props
multiSelectInputFieldPropsobjectDefault props
listOptionPropsobjectDefault props
arrowIconColorcolor stringDefault primary color
searchIconColorcolor stringDefault primary color
toggleIconColorcolor stringDefault primary color
optionsarray[{ item: 'Juventus', id: 'JUVE'},{ item: 'Real Madrid', id: 'RM'},{ item: 'Barcelona', id: 'BR'},{ item: 'PSG', id: 'PSG'},{ item: 'FC Bayern Munich', id: 'FBM'}]