芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/.cache/admin/src/components/Webhooks/HeadersInput/index.js
import React from 'react'; import { FormattedMessage } from 'react-intl'; import CreatableSelect from 'react-select/creatable'; import PropTypes from 'prop-types'; import { get } from 'lodash'; import { CircleButton } from 'strapi-helper-plugin'; import { InputText } from '@buffetjs/core'; import { Plus } from '@buffetjs/icons'; import getBorderColor from './utils/getBorderColor'; import keys from './keys'; import Wrapper from './Wrapper'; /* eslint-disable react/no-array-index-key */ const HeadersInput = ({ errors, name, onClick, onChange, onRemove, value }) => { const formatOption = value => ({ value, label: value }); const options = keys.map(key => formatOption(key)); const handleChangeKey = (selected, name) => { if (selected === null) { onChange({ target: { name, value: '' } }); } else { const { value } = selected; onChange({ target: { name, value } }); } }; const customStyles = hasError => { return { control: (base, state) => ({ ...base, border: `1px solid ${getBorderColor({ isFocused: state.isFocused, hasError, })} !important`, borderRadius: '2px !important', }), menu: base => { return { ...base, padding: '0', border: '1px solid #e3e9f3', borderTop: '1px solid #78caff', borderTopRightRadius: '0', borderTopLeftRadius: '0', borderBottomRightRadius: '3px', borderBottomLeftRadius: '3px', boxShadow: 'none', marginTop: '-1px;', }; }, menuList: base => ({ ...base, maxHeight: '224px', paddingTop: '0', }), option: (base, state) => { return { ...base, backgroundColor: state.isSelected || state.isFocused ? '#f6f6f6' : '#fff', color: '#000000', fontSize: '13px', fontWeight: state.isSelected ? '600' : '400', cursor: state.isFocused ? 'pointer' : 'initial', height: '32px', lineHeight: '16px', }; }, }; }; return (
{value.map((header, index) => { const { key, value } = header; return (
handleChangeKey(e, `${name}.${index}.key`)} name={`${name}.${index}.key`} options={options} styles={customStyles(get(errors, `headers.${index}.key`, null))} value={formatOption(key)} />
onRemove(index)} />
); })}
onClick(name)} type="button">
); }; HeadersInput.defaultProps = { errors: {}, onRemove: () => {}, }; HeadersInput.propTypes = { errors: PropTypes.object, name: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, onClick: PropTypes.func.isRequired, onRemove: PropTypes.func, value: PropTypes.array.isRequired, }; export default HeadersInput;