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, | |
| } | |
| } |