import React from "react"; import * as _ from "lodash"; import Kendra from "aws-sdk/clients/kendra"; import { isNullOrUndefined, truncateString } from "../../utils"; import "../../search.scss"; import Feedback from "./Feedback"; import { Relevance } from "../../constants"; const IgnoreFormats = ["PLAIN_TEXT"]; const MAX_URI_LENGTH = 30; interface ResultFooterProps { queryResultItem: Kendra.QueryResultItem; attributes: any; submitFeedback: ( relevance: Relevance, resultItem: Kendra.QueryResultItem ) => Promise; } export default class ResultFooter extends React.Component< ResultFooterProps, {} > { private submitClickFeedback = () => { this.props.submitFeedback(Relevance.Click, this.props.queryResultItem); }; render() { const { attributes, queryResultItem, submitFeedback } = this.props; const fileFormatName = attributes.FileFormat ? attributes.FileFormat.StringValue : undefined; let fileFormat; if ( !isNullOrUndefined(fileFormatName) && IgnoreFormats.indexOf(fileFormatName) === -1 ) { fileFormat = (
{fileFormatName.toUpperCase()}
); } let sourceLink; const uri = queryResultItem.DocumentURI; if (uri && !_.isEmpty(uri)) { sourceLink = (
{truncateString(uri, MAX_URI_LENGTH)}
); } return (
{fileFormat} {sourceLink}
); } }