Spaces:
Sleeping
Sleeping
export function useCharacterLimit({ | |
value, | |
nbCharsLimits, | |
warnBelow, | |
}: { | |
value: string, | |
nbCharsLimits: number, | |
warnBelow: number | |
}) { | |
const nbCharsUsed = value.length | |
const nbCharsRemaining = Math.max(0, nbCharsLimits - nbCharsUsed) | |
const colorClass = | |
nbCharsUsed > nbCharsLimits | |
? "text-red-500" : | |
nbCharsRemaining < 4 | |
? "text-orange-600" : | |
nbCharsRemaining < 8 | |
? "text-yellow-600" | |
: "text-green-600" | |
const shouldWarn = nbCharsRemaining < warnBelow | |
return { | |
nbCharsUsed, | |
nbCharsRemaining, | |
nbCharsLimits, | |
colorClass, | |
shouldWarn, | |
} | |
} |