mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-21 02:40:14 +01:00
* chore: enforcing language keys to adhere to the new standard. * chore: enforcing i18n forbids to write plain text in JSX markup * chore: enforcing i18n forbids to write plain text in JSX markup * fix: ci with checkbox for unused keys :) * refactor: removed all the unused `i18n` keys
39 lines
973 B
TypeScript
39 lines
973 B
TypeScript
import React from 'react';
|
|
import { HoverCardPortal, HoverCardContent } from '~/components/ui';
|
|
import { TranslationKeys, useLocalize } from '~/hooks';
|
|
import { ESide } from '~/common';
|
|
|
|
type TOptionHoverProps = {
|
|
description: string;
|
|
langCode?: boolean;
|
|
sideOffset?: number;
|
|
disabled?: boolean;
|
|
side: ESide;
|
|
className?: string;
|
|
};
|
|
|
|
function OptionHover({
|
|
side,
|
|
description,
|
|
disabled,
|
|
langCode,
|
|
sideOffset = 30,
|
|
className,
|
|
}: TOptionHoverProps) {
|
|
const localize = useLocalize();
|
|
if (disabled) {
|
|
return null;
|
|
}
|
|
const text = langCode ? localize(description as TranslationKeys) : description;
|
|
return (
|
|
<HoverCardPortal>
|
|
<HoverCardContent side={side} className={`z-[999] w-80 ${className}`} sideOffset={sideOffset}>
|
|
<div className="space-y-2">
|
|
<p className="text-sm text-gray-600 dark:text-gray-300">{text}</p>
|
|
</div>
|
|
</HoverCardContent>
|
|
</HoverCardPortal>
|
|
);
|
|
}
|
|
|
|
export default OptionHover;
|