-
Notifications
You must be signed in to change notification settings - Fork 60.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
修复自定义模型与预设模型名重复时,无法正确将自定义模型认定为openai渠道的bug #4748
Changes from 7 commits
f10d590
17c0fc2
f139d6a
c5925ab
bff65fc
973a3a4
55f8438
3cd5418
8aac3dd
85cef99
005af84
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -341,6 +341,7 @@ function ChatAction(props: { | |||||||||||||
text: string; | ||||||||||||||
icon: JSX.Element; | ||||||||||||||
onClick: () => void; | ||||||||||||||
isExpanded?: boolean; | ||||||||||||||
}) { | ||||||||||||||
const iconRef = useRef<HTMLDivElement>(null); | ||||||||||||||
const textRef = useRef<HTMLDivElement>(null); | ||||||||||||||
|
@@ -360,6 +361,9 @@ function ChatAction(props: { | |||||||||||||
}); | ||||||||||||||
} | ||||||||||||||
|
||||||||||||||
useEffect(() => { | ||||||||||||||
updateWidth(); | ||||||||||||||
}, [props.icon, props.text]); | ||||||||||||||
Comment on lines
+364
to
+366
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure The useEffect(() => {
updateWidth();
- }, [props.icon, props.text]);
+ }, [props.icon, props.text, updateWidth]); Committable suggestion
Suggested change
ToolsBiome
|
||||||||||||||
return ( | ||||||||||||||
<div | ||||||||||||||
className={`${styles["chat-input-action"]} clickable`} | ||||||||||||||
|
@@ -375,6 +379,7 @@ function ChatAction(props: { | |||||||||||||
"--full-width": `${width.full}px`, | ||||||||||||||
} as React.CSSProperties | ||||||||||||||
} | ||||||||||||||
data-expanded={props.isExpanded} // 使用 data 属性来控制样式 | ||||||||||||||
> | ||||||||||||||
<div ref={iconRef} className={styles["icon"]}> | ||||||||||||||
{props.icon} | ||||||||||||||
|
@@ -520,21 +525,21 @@ export function ChatActions(props: { | |||||||||||||
icon={props.uploading ? <LoadingButtonIcon /> : <ImageIcon />} | ||||||||||||||
/> | ||||||||||||||
)} | ||||||||||||||
<ChatAction | ||||||||||||||
onClick={nextTheme} | ||||||||||||||
text={Locale.Chat.InputActions.Theme[theme]} | ||||||||||||||
icon={ | ||||||||||||||
<> | ||||||||||||||
{theme === Theme.Auto ? ( | ||||||||||||||
<AutoIcon /> | ||||||||||||||
) : theme === Theme.Light ? ( | ||||||||||||||
<LightIcon /> | ||||||||||||||
) : theme === Theme.Dark ? ( | ||||||||||||||
<DarkIcon /> | ||||||||||||||
) : null} | ||||||||||||||
</> | ||||||||||||||
} | ||||||||||||||
/> | ||||||||||||||
{/*<ChatAction*/} | ||||||||||||||
{/* onClick={nextTheme}*/} | ||||||||||||||
{/* text={Locale.Chat.InputActions.Theme[theme]}*/} | ||||||||||||||
{/* icon={*/} | ||||||||||||||
{/* <>*/} | ||||||||||||||
{/* {theme === Theme.Auto ? (*/} | ||||||||||||||
{/* <AutoIcon />*/} | ||||||||||||||
{/* ) : theme === Theme.Light ? (*/} | ||||||||||||||
{/* <LightIcon />*/} | ||||||||||||||
{/* ) : theme === Theme.Dark ? (*/} | ||||||||||||||
{/* <DarkIcon />*/} | ||||||||||||||
{/* ) : null}*/} | ||||||||||||||
{/* </>*/} | ||||||||||||||
{/* }*/} | ||||||||||||||
{/*/>*/} | ||||||||||||||
|
||||||||||||||
<ChatAction | ||||||||||||||
onClick={props.showPromptHints} | ||||||||||||||
|
@@ -551,25 +556,28 @@ export function ChatActions(props: { | |||||||||||||
/> | ||||||||||||||
|
||||||||||||||
<ChatAction | ||||||||||||||
text={Locale.Chat.InputActions.Clear} | ||||||||||||||
icon={<BreakIcon />} | ||||||||||||||
onClick={() => { | ||||||||||||||
chatStore.updateCurrentSession((session) => { | ||||||||||||||
if (session.clearContextIndex === session.messages.length) { | ||||||||||||||
session.clearContextIndex = undefined; | ||||||||||||||
} else { | ||||||||||||||
session.clearContextIndex = session.messages.length; | ||||||||||||||
session.memoryPrompt = ""; // will clear memory | ||||||||||||||
} | ||||||||||||||
}); | ||||||||||||||
}} | ||||||||||||||
/> | ||||||||||||||
|
||||||||||||||
<ChatAction | ||||||||||||||
isExpanded={true} | ||||||||||||||
onClick={() => setShowModelSelector(true)} | ||||||||||||||
text={currentModel} | ||||||||||||||
icon={<RobotIcon />} | ||||||||||||||
/> | ||||||||||||||
<div style={{ marginLeft: "auto" }}> | ||||||||||||||
<ChatAction | ||||||||||||||
isExpanded={true} | ||||||||||||||
text={Locale.Chat.InputActions.Clear} | ||||||||||||||
icon={<BreakIcon />} | ||||||||||||||
onClick={() => { | ||||||||||||||
chatStore.updateCurrentSession((session) => { | ||||||||||||||
if (session.clearContextIndex === session.messages.length) { | ||||||||||||||
session.clearContextIndex = undefined; | ||||||||||||||
} else { | ||||||||||||||
session.clearContextIndex = session.messages.length; | ||||||||||||||
session.memoryPrompt = ""; // will clear memory | ||||||||||||||
} | ||||||||||||||
}); | ||||||||||||||
}} | ||||||||||||||
/> | ||||||||||||||
</div> | ||||||||||||||
|
||||||||||||||
{showModelSelector && ( | ||||||||||||||
<Selector | ||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add keyboard accessibility to the
ChatAction
component.The
ChatAction
component should also respond to keyboard events to ensure accessibility. Consider addingonKeyDown
or similar keyboard event handlers.function ChatAction(props: { text: string; icon: JSX.Element; onClick: () => void; isExpanded?: boolean; }) { + onKeyDown={(e) => e.key === 'Enter' && props.onClick()} ... }