Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / @skava/ui   js

Repository URL to install this package:

Version: 4.2.0-a11y.0 

/ src / components / molecules / DragAndDrop / ProductListFilter / renderProps.tsx

import React from 'react'
import { Toggle } from 'molecules/Toggle'
import { oneStorage } from '@skava/persistence'
import { ProductFilterOptions } from './ProductFilterOptions'
import { FilterViewProps, ItemProps } from './typings'
import { DraggableStateProps } from '../typings'

function defaultRenderOption(props: object, state: DraggableStateProps) {
  const filterList = state.filterList.map((item: FilterViewProps) => {
    return (
      <ProductFilterOptions
        onDragEnd={state.onDragEnd}
        key={item.id}
        id={item.id}
        list={item}
        isFilter={true}
        value={item.id}
        isActive={state.isActive}
        onDragOver={state.onDragOver}
      />
    )
  })
  return filterList
}
const handleChange = (props: Array<ItemProps>) => {
  const selectedFilter: Array<ItemProps> = []
  selectedFilter.push(props)
  const prevSelectedFilter = oneStorage.has('SelectedFilter')
    ? oneStorage.get('SelectedFilter')
    : []
  if (prevSelectedFilter) {
    prevSelectedFilter.forEach((item: ItemProps) => {
      if (selectedFilter[0].label !== item.label) {
        selectedFilter.push(item)
      }
    })
    oneStorage.set('SelectedFilter', selectedFilter)
  } else {
    oneStorage.set('SelectedFilter', selectedFilter)
  }
}

function renderOptionsValue(value: string) {
  return (
    <Toggle
      iconType={'checkbox'}
      key={value}
      label={value}
      value={value}
      onToggle={handleChange}
    />
  )
}

export { defaultRenderOption, renderOptionsValue }