rsuite
Version:
A suite of react components
26 lines • 866 B
JavaScript
'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;