Spaces:
Sleeping
Sleeping
| 'use client'; | |
| import { usePreviousProps } from '@mui/utils'; | |
| /** | |
| * | |
| * Demos: | |
| * | |
| * - [Badge](https://next.mui.com/base-ui/react-badge/#hook) | |
| * | |
| * API: | |
| * | |
| * - [useBadge API](https://next.mui.com/base-ui/react-badge/hooks-api/#use-badge) | |
| */ | |
| function useBadge(parameters) { | |
| const { | |
| badgeContent: badgeContentProp, | |
| invisible: invisibleProp = false, | |
| max: maxProp = 99, | |
| showZero = false | |
| } = parameters; | |
| const prevProps = usePreviousProps({ | |
| badgeContent: badgeContentProp, | |
| max: maxProp | |
| }); | |
| let invisible = invisibleProp; | |
| if (invisibleProp === false && badgeContentProp === 0 && !showZero) { | |
| invisible = true; | |
| } | |
| const { | |
| badgeContent, | |
| max = maxProp | |
| } = invisible ? prevProps : parameters; | |
| const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent; | |
| return { | |
| badgeContent, | |
| invisible, | |
| max, | |
| displayValue | |
| }; | |
| } | |
| export default useBadge; |