@nguyentc21/react-native-tooltip
Version:
Simple tooltip for React native app
31 lines (25 loc) • 920 B
text/typescript
import { useMemo } from 'react';
import calculateCaretWidth from '../utils/caret/calculateCaretWidth';
import type { ViewProps } from 'react-native';
import type { Placement } from '../types';
type UseStylesParams = {
caretSize: number;
placement: Placement;
offset: number;
};
export default (params: UseStylesParams) => {
const { caretSize, placement, offset } = params;
return useMemo(() => {
const caretWidth = calculateCaretWidth(caretSize);
const caretHeight = caretWidth * 0.5;
const totalOffset = caretHeight + offset;
const isVerticalTooltip = placement === 'bottom' || placement === 'top';
const offsetViewStyles: ViewProps['style'] = totalOffset
? {
width: isVerticalTooltip ? '100%' : totalOffset,
height: isVerticalTooltip ? totalOffset : '100%',
}
: undefined;
return offsetViewStyles;
}, [caretSize, offset, placement]);
};