import React, { useCallback } from 'react'; import { Edit3, Check, X } from 'lucide-react'; import { Button, Badge } from '@librechat/client'; import type { LucideIcon } from 'lucide-react'; import type { BadgeItem } from '~/common'; import { useChatBadges, useLocalize } from '~/hooks'; interface EditBadgesProps { isEditingChatBadges: boolean; handleCancelBadges: () => void; handleSaveBadges: () => void; setBadges: React.Dispatch[]>>; } const EditBadgesComponent = ({ isEditingChatBadges, handleCancelBadges, handleSaveBadges, setBadges, }: EditBadgesProps) => { const localize = useLocalize(); const allBadges = useChatBadges() || []; const unavailableBadges = allBadges.filter((badge) => !badge.isAvailable); const handleRestoreBadge = useCallback( (badgeId: string) => { setBadges((prev: Pick[]) => [...prev, { id: badgeId }]); }, [setBadges], ); if (!isEditingChatBadges) { return null; } return (
{localize('com_ui_save_badge_changes')}
{unavailableBadges && unavailableBadges.length > 0 && (
{unavailableBadges.map((badge) => (
handleRestoreBadge(badge.id)} />
))}
)}
); }; export default React.memo(EditBadgesComponent);