UNPKG

kia-ml

Version:

Kia

123 lines (114 loc) 4.56 kB
import * as React from "react"; import { View, Text, FlatList, TouchableOpacity } from "react-native"; import { isEmptyString } from "../../utils/utils"; import { Icons } from "../../config/icons"; import { KiaIcon } from "../icon/icon"; import { LinkText } from "../link-text/link-text"; import * as styles from "./request-list.style"; import { ThatDot } from "../that-dot/that-dot"; import { spacing } from "../../theme"; import { TouchableKiaIcon } from "../icon/touchable-icon"; import { observer } from 'mobx-react-lite'; import { useNavigation } from '@react-navigation/native'; const summaryIcon = request => { if (request.requestParams.jobs) { if (request.requestParams.jobs.indexOf("summary") != -1) { if (!isEmptyString(request.response.summary)) return Icons.summary.success;else return Icons.summary.processing; } } return ""; }; const qaIcon = request => { if (request.requestParams.jobs) { if (request.requestParams.jobs.indexOf("qa") != -1 || request.requestParams.jobs.indexOf("gen_qa") != -1) { if (request.response.qa.length > 0) return Icons.qa.success;else return Icons.qa.processing; } } return ""; }; function renderProcessedItem(request, unprocessed = false) { const iconForSummary = summaryIcon(request); const iconForQA = qaIcon(request); const navigation = useNavigation(); const requestDetailScreen = () => navigation.navigate('details', { id: request.id }); return /*#__PURE__*/React.createElement(TouchableOpacity, { onPress: requestDetailScreen, style: styles.componentView }, /*#__PURE__*/React.createElement(View, { style: styles.listItemView }, /*#__PURE__*/React.createElement(Text, { numberOfLines: 1, style: styles.titleText }, unprocessed ? "Unprocessed" : request.response.title), /*#__PURE__*/React.createElement(View, { style: styles.timeAgoView }, /*#__PURE__*/React.createElement(TouchableKiaIcon, { onPress: () => request.toggleBookmark(), iconProps: { src: request.bookmarked ? Icons.bookmarks.yes : Icons.bookmarks.no, marginRight: spacing[2], size: 'tiny' } }), /*#__PURE__*/React.createElement(KiaIcon, { src: request.isGlobal ? Icons.global : Icons.private, size: "tiny", marginRight: spacing[2] }), /*#__PURE__*/React.createElement(KiaIcon, { src: Icons.time, size: "tiny" }), /*#__PURE__*/React.createElement(Text, { style: styles.timeAgoText }, request.createdDate))), !isEmptyString(request.requestParams.url) && /*#__PURE__*/React.createElement(View, { style: styles.labelView }, /*#__PURE__*/React.createElement(Text, { style: styles.labelText }, "URL"), /*#__PURE__*/React.createElement(LinkText, { text: request.requestParams.url, url: request.requestParams.url })), !isEmptyString(request.response.longText) && /*#__PURE__*/React.createElement(View, { style: styles.labelView }, /*#__PURE__*/React.createElement(Text, { style: styles.labelText }, "Article"), /*#__PURE__*/React.createElement(Text, { numberOfLines: 3 }, request.response.longText)), /*#__PURE__*/React.createElement(View, { style: styles.listItemView }, !isEmptyString(iconForSummary) && /*#__PURE__*/React.createElement(View, { style: styles.iconView }, /*#__PURE__*/React.createElement(KiaIcon, { src: iconForSummary, size: "medium" }), /*#__PURE__*/React.createElement(Text, { style: styles.iconLabel }, "Summary")), !isEmptyString(iconForQA) && !isEmptyString(iconForSummary) && /*#__PURE__*/React.createElement(ThatDot, null), !isEmptyString(iconForQA) && /*#__PURE__*/React.createElement(View, { style: styles.iconView }, /*#__PURE__*/React.createElement(KiaIcon, { src: iconForQA, size: "medium" }), /*#__PURE__*/React.createElement(Text, { style: styles.iconLabel }, "Question Answer")))); } const onRequestListRefresh = () => { console.log("on refresh"); }; export const RequestListItem = observer(function RequestListItem(props) { const request = props.item; return renderProcessedItem(request, request.response.id == 0); }); export const RequestList = observer(function RequestList(props) { return /*#__PURE__*/React.createElement(FlatList, { data: props.data, renderItem: ({ item }) => /*#__PURE__*/React.createElement(RequestListItem, { item: item }), onEndReached: props.onRequestListEndReached, onEndReachedThreshold: 5, onRefresh: onRequestListRefresh, refreshing: false }); }); //# sourceMappingURL=request-list.js.map