43 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
//  Package imports.
 | 
						|
import PropTypes from 'prop-types';
 | 
						|
import React from 'react';
 | 
						|
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
						|
 | 
						|
//  Components.
 | 
						|
import ComposerTextareaSuggestionsItem from './item';
 | 
						|
 | 
						|
//  The component.
 | 
						|
export default function ComposerTextareaSuggestions ({
 | 
						|
  hidden,
 | 
						|
  onSuggestionClick,
 | 
						|
  suggestions,
 | 
						|
  value,
 | 
						|
}) {
 | 
						|
 | 
						|
  //  The result.
 | 
						|
  return (
 | 
						|
    <div
 | 
						|
      className='composer--textarea--suggestions'
 | 
						|
      hidden={hidden || !suggestions || suggestions.isEmpty()}
 | 
						|
    >
 | 
						|
      {!hidden && suggestions ? suggestions.map(
 | 
						|
        (suggestion, index) => (
 | 
						|
          <ComposerTextareaSuggestionsItem
 | 
						|
            index={index}
 | 
						|
            key={typeof suggestion === 'object' ? suggestion.id : suggestion}
 | 
						|
            onClick={onSuggestionClick}
 | 
						|
            selected={index === value}
 | 
						|
            suggestion={suggestion}
 | 
						|
          />
 | 
						|
        )
 | 
						|
      ) : null}
 | 
						|
    </div>
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
ComposerTextareaSuggestions.propTypes = {
 | 
						|
  hidden: PropTypes.bool,
 | 
						|
  onSuggestionClick: PropTypes.func,
 | 
						|
  suggestions: ImmutablePropTypes.list,
 | 
						|
  value: PropTypes.number,
 | 
						|
};
 |