import React, { useMemo } from 'react'; import { QueryResult, QueryResultItem } from '@aws-sdk/client-kendra'; import Answer from './kendra/Answer'; import QuestionAnswer from './kendra/QuestionAnswer'; import Documents from './kendra/Documents'; import NotFound from './kendra/NotFound'; interface KendraContentProps { json: string; } function KendraContent(props: KendraContentProps) { const { answer, questionAnswer, documents } = useMemo(() => { const res: QueryResult = JSON.parse(props.json); const items: QueryResultItem[] = res.ResultItems || []; const answer = items.find((item) => item.Type === 'ANSWER'); const questionAnswer = items.find( (item) => item.Type === 'QUESTION_ANSWER' ); const documents = items.filter((item) => item.Type === 'DOCUMENT'); return { answer, questionAnswer, documents }; }, [props]); if (answer) { return ; } else if (questionAnswer) { return ; } else if (documents.length > 0) { return ; } else { return ; } } export default KendraContent;