@chakra-ui/icons#ChevronRightIcon TypeScript Examples
The following examples show how to use
@chakra-ui/icons#ChevronRightIcon.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: PiggybankListItem.tsx From coindrop with GNU General Public License v3.0 | 5 votes |
PiggybankListItem: FunctionComponent<Props> = ({ id }) => {
const { colors } = useTheme();
const [isLoading, setIsLoading] = useState(false);
const hoverBg = useColorModeValue(colors.gray['100'], colors.gray['600']);
const activeBg = useColorModeValue(colors.gray['200'], colors.gray['700']);
return (
<Box
onClick={() => setIsLoading(true)}
cursor="pointer"
mt={3}
bg={isLoading ? hoverBg : undefined}
_hover={{
bg: hoverBg,
textDecoration: "none",
}}
_active={{
bg: activeBg,
}}
>
<NextLink href={`/${id}`} passHref>
<a id={`link-to-coindrop-${id}`}>
<Box
py={5}
shadow="md"
borderWidth="1px"
borderRadius="10px"
>
{isLoading ? (
<Flex align="center" justify="center">
<Spinner boxSize="32px" />
<Heading ml={2} fontSize="xl">
Loading
</Heading>
</Flex>
) : (
<Flex
justify="space-between"
align="center"
mx={4}
>
<Heading fontSize="xl" wordBreak="break-word">
coindrop.to/
{id}
</Heading>
<ChevronRightIcon boxSize="32px" />
</Flex>
)}
</Box>
</a>
</NextLink>
</Box>
);
}
Example #2
Source File: carousel.tsx From notebook with MIT License | 4 votes |
Carousel: React.SFC<CarouselProps> = ({
onOpen,
onClose,
isOpen,
repoId
}) => {
const [[page, direction], setPage] = React.useState([0, 0]);
const [imageIndex, setImageIndex] = React.useState<number>(0);
const paginate = (newDirection: number) => {
setPage([page + newDirection, newDirection]);
};
React.useEffect(() => {
setImageIndex(repoId);
}, [repoId]);
const nextImage = (newDirection: number) => {
paginate(newDirection);
setImageIndex(imageIndex + 1 < coverImages.length ? imageIndex + 1 : 0);
};
const prevImage = (newDirection: number) => {
paginate(newDirection);
setImageIndex(
0 === imageIndex ? coverImages.length - 1 : imageIndex - 1
);
};
return (
<Modal isCentered onClose={onClose} size={"6xl"} isOpen={isOpen}>
<ModalOverlay />
<ModalContent>
<ModalBody padding="0">
<div className="carousel-container">
<AnimatePresence initial={false} custom={direction}>
<motion.img
key={page}
src={coverImages[imageIndex]}
custom={direction}
variants={variants}
initial="enter"
animate="center"
exit="exit"
transition={{
x: { type: "spring", stiffness: 300, damping: 30 },
opacity: { duration: 0.2 }
}}
drag="x"
dragConstraints={{ left: 0, right: 0 }}
dragElastic={1}
onDragEnd={(e, { offset, velocity }) => {
const swipe = swipePower(offset.x, velocity.x);
if (swipe < -swipeConfidenceThreshold) {
paginate(1);
} else if (swipe > swipeConfidenceThreshold) {
paginate(-1);
}
}}
/>
</AnimatePresence>
<div className="next" onClick={() => nextImage(1)}>
<IconButton
aria-label="left image"
icon={<ChevronLeftIcon />}
cursor="pointer"
as={ChevronRightIcon}
size="md"
colorScheme="teal"
borderRadius="full"
/>
</div>
<div className="prev" onClick={() => prevImage(-1)}>
<IconButton
aria-label="right image"
icon={<ChevronRightIcon />}
cursor="pointer"
as={ChevronLeftIcon}
size="md"
colorScheme="teal"
borderRadius="full"
/>
</div>
</div>
</ModalBody>
</ModalContent>
</Modal>
);
}