All files / src/gadgets/file-attachment progressive-disclosure.js

100% Statements 7/7
100% Branches 3/3
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                            5x   2x   2x   1x                           2x 2x         1x                        
/* Copyright © 2005-2017 Kuali, Inc. - All Rights Reserved
 * You may use and modify this code under the terms of the Kuali, Inc.
 * Pre-Release License Agreement. You may not distribute it.
 *
 * You should have received a copy of the Kuali, Inc. Pre-Release License
 * Agreement with this file. If not, please write to license@kuali.co.
 */
 
import { isEmpty } from 'lodash'
import PropTypes from 'prop-types'
import { SelectField } from '@kuali/kuali-ui'
import React, { Component } from 'react'
 
export function check (data, config) {
  switch (config.type) {
    case 'exists':
      return !isEmpty(data)
    case 'doesNotExist':
      return isEmpty(data)
    default:
      return true
  }
}
 
export class component extends Component {
  static displayName = 'ProgressiveDisclosure'
 
  static propTypes = {
    details: PropTypes.object.isRequired,
    onChange: PropTypes.func.isRequired,
    value: PropTypes.object.isRequired
  }
 
  render () {
    const { value, onChange } = this.props
    return (
      <div style={{ display: 'flex', flex: 3 }}>
        <SelectField
          style={{ flex: 1 }}
          className='form-control'
          onChange={val => onChange({ ...value, type: val })}
          value={value.type}
          menuItems={[
            { label: '- - -', value: '' },
            { label: 'exists', value: 'exists' },
            { label: 'does not exist', value: 'doesNotExist' }
          ]}
        />
      </div>
    )
  }
}