UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

22 lines (21 loc) 770 B
//#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 };