kia-ml
Version:
Kia
123 lines (114 loc) • 4.56 kB
JavaScript
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