@primer/react
Version:
An implementation of GitHub's Primer Design System using React
22 lines (21 loc) • 770 B
JavaScript
//#region src/utils/character-counter.ts
/**
* Compute the character count state for a given length and limit. This is a pure
* function so the counter can be derived during render without component state.
*/
function getCharacterCountState(currentLength, maxLength) {
const charactersRemaining = maxLength - currentLength;
if (charactersRemaining >= 0) return {
count: charactersRemaining,
isOverLimit: false,
message: `${charactersRemaining} ${charactersRemaining === 1 ? "character" : "characters"} remaining`
};
const charactersOver = -charactersRemaining;
return {
count: charactersOver,
isOverLimit: true,
message: `${charactersOver} ${charactersOver === 1 ? "character" : "characters"} over`
};
}
//#endregion
export { getCharacterCountState };