siakad-itm/resources/js/hooks/use-initials.tsx
Yoga Pangestu 0397959f60
Some checks failed
tests / ci (pull_request) Has been cancelled
feat: implement notification system with CRUD operations and UI integration
2026-08-25 13:21:11 +07:00

27 lines
715 B
TypeScript

import { useCallback } from 'react';
export type GetInitialsFn = (fullName: string) => string;
function getInitial(name: string): string {
return Array.from(name)[0] ?? '';
}
export function useInitials(): GetInitialsFn {
return useCallback((fullName: string): string => {
const names = fullName.trim().split(/\s+/u).filter(Boolean);
if (names.length === 0) {
return '';
}
if (names.length === 1) {
return getInitial(names[0]).toUpperCase();
}
const firstInitial = getInitial(names[0]);
const lastInitial = getInitial(names[names.length - 1]);
return `${firstInitial}${lastInitial}`.toUpperCase();
}, []);
}