sort/components/html/icon.tsx

34 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-09-07 01:22:11 +00:00
import React from 'react';
import { ScrollView, TouchableOpacity, Alert, Text, GestureResponderEvent, Dimensions } from 'react-native';
import RenderHtml, { TChildrenRenderer } from 'react-native-render-html';
import { Cfg } from './action';
import Ionicons from '@expo/vector-icons/Ionicons';
export function IconRenderer({
...props
}: {
[key: string]: any;
}) {
const { tnode } = props;
const { domNode } = tnode;
const { attribs } = domNode;
const onPress = () => {
const config = Cfg.action as { [key: string]: (event: Function) => void };
const custAction: ((event: Function) => void) | null =
(attribs?.action && typeof config[attribs?.action] === 'function')
? config[attribs?.action]
: null;
if (custAction) {
attribs.pop = custAction;
custAction(attribs);
}
}
const windowHeight = Dimensions.get('window').height;
const scrollViewHeight = windowHeight - (attribs.min ? attribs.min : 380); // Subtracting 90 from the total height
return (
<Ionicons name={attribs.icon ? attribs.icon : "checkmark-circle"} size={attribs.size ? Number(attribs.size) : 32} color={attribs.color ? attribs.color : "green"} />
);
}