import React, { useState, useEffect } from 'react'; import { Props } from './types'; import ReactSelect from '../ReactSelect'; import sortableFieldTypes from '../../../../fields/sortableFieldTypes'; import './index.scss'; const baseClass = 'sort-complex'; const sortOptions = [{ label: 'Ascending', value: '' }, { label: 'Descending', value: '-' }]; const SortComplex: React.FC = (props) => { const { collection, handleChange, } = props; const [sortFields] = useState(() => collection.fields.reduce((fields, field) => { if (field.name && sortableFieldTypes.indexOf(field.type) > -1) { return [ ...fields, { label: field.label, value: field.name }, ]; } return fields; }, [])); const [sortField, setSortField] = useState(null); const [sortOrder, setSortOrder] = useState('-'); useEffect(() => { if (sortField) { handleChange(`${sortOrder}${sortField}`); } }, [sortField, sortOrder, handleChange]); return (
Column to Sort
field.name === sortField)} options={sortFields} onChange={setSortField} />
Order
order.value === sortOrder)} options={sortOptions} onChange={setSortOrder} // onChange={(val) => console.log(val)} />
); }; export default SortComplex;