UNPKG

rsuite

Version:

A suite of react components

26 lines 866 B
'use client'; import { useMemo } from 'react'; import { useCustom } from "./index.js"; import ArrowUpLineIcon from '@rsuite/icons/ArrowUpLine'; import ArrowDownLineIcon from '@rsuite/icons/ArrowDownLine'; import ArrowLeftLineIcon from '@rsuite/icons/ArrowLeftLine'; import ArrowRightLineIcon from '@rsuite/icons/ArrowRightLine'; export function useToggleCaret(placement) { const { rtl } = useCustom(); return useMemo(() => { switch (true) { case /^top/.test(placement): return ArrowUpLineIcon; case /^right/.test(placement): return rtl ? ArrowLeftLineIcon : ArrowRightLineIcon; case /^left/.test(placement): return rtl ? ArrowRightLineIcon : ArrowLeftLineIcon; case /^bottom/.test(placement): default: return ArrowDownLineIcon; } }, [placement, rtl]); } export default useToggleCaret;