mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
* 🔧 refactor: Improve accessibility and styling in ChatGroupItem and FilterPrompts components * 🔧 fix: Add button type and keyboard accessibility to dropdown menu trigger in ChatGroupItem * 🔧 fix(757): Enhance accessibility by updating aria-labels and adding localization for prompt groups * 🔧 fix(618): Update version to 0.3.1 and enhance accessibility in InfoHoverCard component * 🔧 fix(618): Update aria-label in InfoHoverCard to use dynamic text prop for improved accessibility * 🔧 fix: Enhance accessibility by updating aria-labels and roles in Conversations components * 🔧 fix(620): Enhance accessibility by adding tabIndex to Tabs.Content components in ArtifactTabs, Settings, and Speech components * refactor: remove RevokeKeysButton component and update related components for accessibility - Deleted RevokeKeysButton component. - Updated SharedLinks and General components to use Label for accessibility. - Enhanced Personalization component with aria-labelledby and aria-describedby attributes. - Refactored ConversationModeSwitch to use ToggleSwitch for better state management. - Improved AutoSendTextSelector with local state management and accessibility attributes. - Replaced Switch components with ToggleSwitch in various Speech and TTS components for consistency. - Added aria-labelledby attributes to Dropdown components for better accessibility. - Updated translation.json to include new localization keys and improved existing ones. - Enhanced Slider component to support aria attributes for better accessibility. * 🔧 fix: Enhance user feedback for API key operations with success and error messages * 🔧 fix: Update aria-labels in Avatar component for improved localization and accessibility * 🔧 fix: Refactor handleFile and handleDrop functions for improved readability and maintainability
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { useRecoilState } from 'recoil';
|
|
import { Dropdown } from '@librechat/client';
|
|
import { useLocalize } from '~/hooks';
|
|
import store from '~/store';
|
|
|
|
interface EngineSTTDropdownProps {
|
|
external: boolean;
|
|
}
|
|
|
|
const EngineSTTDropdown: React.FC<EngineSTTDropdownProps> = ({ external }) => {
|
|
const localize = useLocalize();
|
|
const [engineSTT, setEngineSTT] = useRecoilState<string>(store.engineSTT);
|
|
|
|
const endpointOptions = external
|
|
? [
|
|
{ value: 'browser', label: localize('com_nav_browser') },
|
|
{ value: 'external', label: localize('com_nav_external') },
|
|
]
|
|
: [{ value: 'browser', label: localize('com_nav_browser') }];
|
|
|
|
const handleSelect = (value: string) => {
|
|
setEngineSTT(value);
|
|
};
|
|
|
|
const labelId = 'engine-stt-dropdown-label';
|
|
|
|
return (
|
|
<div className="flex items-center justify-between">
|
|
<div id={labelId}>{localize('com_nav_engine')}</div>
|
|
<Dropdown
|
|
value={engineSTT}
|
|
onChange={handleSelect}
|
|
options={endpointOptions}
|
|
sizeClasses="w-[180px]"
|
|
testId="EngineSTTDropdown"
|
|
className="z-50"
|
|
aria-labelledby={labelId}
|
|
/>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default EngineSTTDropdown;
|