mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-26 20:34:10 +01:00
🗣 fix: Add Various State Change Announcements (#11495)
* fix: Agent Builder Reset button announcements * fix: special variables announcements * fix: model select announcements * fix: prompt deletion announcement * refactor: encapsulate model display name logic * chore: address comments * chore: re-order i18n strings
This commit is contained in:
parent
fcb363403a
commit
46624798b6
5 changed files with 39 additions and 2 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import debounce from 'lodash/debounce';
|
||||
import React, { createContext, useContext, useState, useMemo } from 'react';
|
||||
import React, { createContext, useContext, useState, useMemo, useCallback } from 'react';
|
||||
import { EModelEndpoint, isAgentsEndpoint, isAssistantsEndpoint } from 'librechat-data-provider';
|
||||
import type * as t from 'librechat-data-provider';
|
||||
import type { Endpoint, SelectedValues } from '~/common';
|
||||
|
|
@ -8,8 +8,9 @@ import {
|
|||
useSelectorEffects,
|
||||
useKeyDialog,
|
||||
useEndpoints,
|
||||
useLocalize,
|
||||
} from '~/hooks';
|
||||
import { useAgentsMapContext, useAssistantsMapContext } from '~/Providers';
|
||||
import { useAgentsMapContext, useAssistantsMapContext, useLiveAnnouncer } from '~/Providers';
|
||||
import { useGetEndpointsQuery, useListAgentsQuery } from '~/data-provider';
|
||||
import { useModelSelectorChatContext } from './ModelSelectorChatContext';
|
||||
import useSelectMention from '~/hooks/Input/useSelectMention';
|
||||
|
|
@ -59,6 +60,8 @@ export function ModelSelectorProvider({ children, startupConfig }: ModelSelector
|
|||
const { data: endpointsConfig } = useGetEndpointsQuery();
|
||||
const { endpoint, model, spec, agent_id, assistant_id, conversation, newConversation } =
|
||||
useModelSelectorChatContext();
|
||||
const localize = useLocalize();
|
||||
const { announcePolite } = useLiveAnnouncer();
|
||||
const modelSpecs = useMemo(() => {
|
||||
const specs = startupConfig?.modelSpecs?.list ?? [];
|
||||
if (!agentsMap) {
|
||||
|
|
@ -93,6 +96,21 @@ export function ModelSelectorProvider({ children, startupConfig }: ModelSelector
|
|||
endpointsConfig,
|
||||
});
|
||||
|
||||
const getModelDisplayName = useCallback(
|
||||
(endpoint: Endpoint, model: string): string => {
|
||||
if (isAgentsEndpoint(endpoint.value)) {
|
||||
return endpoint.agentNames?.[model] ?? agentsMap?.[model]?.name ?? model;
|
||||
}
|
||||
|
||||
if (isAssistantsEndpoint(endpoint.value)) {
|
||||
return endpoint.assistantNames?.[model] ?? model;
|
||||
}
|
||||
|
||||
return model;
|
||||
},
|
||||
[agentsMap],
|
||||
);
|
||||
|
||||
const { onSelectEndpoint, onSelectSpec } = useSelectMention({
|
||||
// presets,
|
||||
modelSpecs,
|
||||
|
|
@ -207,6 +225,10 @@ export function ModelSelectorProvider({ children, startupConfig }: ModelSelector
|
|||
model,
|
||||
modelSpec: '',
|
||||
});
|
||||
|
||||
const modelDisplayName = getModelDisplayName(endpoint, model);
|
||||
const announcement = localize('com_ui_model_selected', { 0: modelDisplayName });
|
||||
announcePolite({ message: announcement, isStatus: true });
|
||||
};
|
||||
|
||||
const value = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue