2024-10-20 17:29:47 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
import { useRecoilState } from 'recoil';
|
2025-08-04 18:50:54 +02:00
|
|
|
import { Switch, Label, InfoHoverCard, ESide } from '@librechat/client';
|
2024-10-20 17:29:47 +02:00
|
|
|
import { useLocalize } from '~/hooks';
|
|
|
|
|
import store from '~/store';
|
|
|
|
|
|
|
|
|
|
export default function DisplayUsernameMessages() {
|
|
|
|
|
const localize = useLocalize();
|
|
|
|
|
const [UsernameDisplay, setUsernameDisplay] = useRecoilState(store.UsernameDisplay);
|
|
|
|
|
|
|
|
|
|
const handleCheckedChange = (checked: boolean) => {
|
|
|
|
|
setUsernameDisplay(checked);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className="flex items-center justify-between">
|
|
|
|
|
<div className="flex items-center space-x-2">
|
2025-10-07 20:12:49 +02:00
|
|
|
<Label id="user-name-display-label">{localize('com_nav_user_name_display')}</Label>
|
2025-08-04 18:50:54 +02:00
|
|
|
<InfoHoverCard side={ESide.Bottom} text={localize('com_nav_info_user_name_display')} />
|
2024-10-20 17:29:47 +02:00
|
|
|
</div>
|
|
|
|
|
<Switch
|
|
|
|
|
id="UsernameDisplay"
|
|
|
|
|
checked={UsernameDisplay}
|
|
|
|
|
onCheckedChange={handleCheckedChange}
|
|
|
|
|
className="ml-4"
|
|
|
|
|
data-testid="UsernameDisplay"
|
2025-10-07 20:12:49 +02:00
|
|
|
aria-labelledby="user-name-display-label"
|
2024-10-20 17:29:47 +02:00
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|