Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qjclaw-dmg
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AI-甘富林
qjclaw-dmg
Commits
a110b28a
Commit
a110b28a
authored
May 09, 2026
by
edy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(chat): hide composer skill trigger
parent
d3e07f3d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1 addition
and
40 deletions
+1
-40
ChatComposer.tsx
apps/ui/src/features/chat/ChatComposer.tsx
+1
-40
No files found.
apps/ui/src/features/chat/ChatComposer.tsx
View file @
a110b28a
...
@@ -67,18 +67,10 @@ export function ChatComposer({
...
@@ -67,18 +67,10 @@ export function ChatComposer({
viewMode
,
viewMode
,
shellStyle
,
shellStyle
,
attachmentInputRef
,
attachmentInputRef
,
skillMenuRef
,
attachmentAccept
,
attachmentAccept
,
attachments
,
attachments
,
placeholder
,
placeholder
,
sendButtonLabel
,
sendButtonLabel
,
skillMenuTitle
,
defaultChatLabel
,
defaultSkillId
,
selectedSkillId
,
selectedSkillName
,
skills
,
skillMenuOpen
,
attachmentIcon
,
attachmentIcon
,
submitIcon
,
submitIcon
,
onSubmit
,
onSubmit
,
...
@@ -87,9 +79,6 @@ export function ChatComposer({
...
@@ -87,9 +79,6 @@ export function ChatComposer({
onAttachmentSelection
,
onAttachmentSelection
,
onOpenAttachmentPicker
,
onOpenAttachmentPicker
,
onRemoveAttachment
,
onRemoveAttachment
,
onToggleSkillMenu
,
onClearSelectedSkill
,
onChooseSkill
,
onDragEnter
,
onDragEnter
,
onDragOver
,
onDragOver
,
onDragLeave
,
onDragLeave
,
...
@@ -164,38 +153,10 @@ export function ChatComposer({
...
@@ -164,38 +153,10 @@ export function ChatComposer({
</
div
>
</
div
>
)
:
null
}
)
:
null
}
<
div
className=
"composer-footer"
>
<
div
className=
"composer-footer"
>
<
div
className=
"composer-left-tools"
ref=
{
skillMenuRef
}
>
<
div
className=
"composer-left-tools"
>
<
button
type=
"button"
className=
"attachment-trigger icon-only"
disabled=
{
!
isBound
||
sending
}
onClick=
{
onOpenAttachmentPicker
}
aria
-
label=
"上传附件"
title=
"上传附件"
>
<
button
type=
"button"
className=
"attachment-trigger icon-only"
disabled=
{
!
isBound
||
sending
}
onClick=
{
onOpenAttachmentPicker
}
aria
-
label=
"上传附件"
title=
"上传附件"
>
{
attachmentIcon
}
{
attachmentIcon
}
</
button
>
</
button
>
<
button
type=
"button"
className=
"skill-trigger"
disabled=
{
!
isBound
}
aria
-
label=
{
skillMenuTitle
}
aria
-
expanded=
{
skillMenuOpen
}
onClick=
{
onToggleSkillMenu
}
>
@
</
button
>
{
selectedSkillId
!==
defaultSkillId
?
(
<
button
type=
"button"
className=
"skill-chip"
disabled=
{
!
isBound
}
onClick=
{
onClearSelectedSkill
}
>
{
"@"
+
selectedSkillName
}
</
button
>
)
:
null
}
{
skillMenuOpen
?
(
<
div
className=
"skill-menu"
role=
"menu"
aria
-
label=
{
skillMenuTitle
}
>
{
skills
.
map
((
skill
)
=>
{
const
active
=
skill
.
id
===
selectedSkillId
return
(
<
button
key=
{
skill
.
id
}
type=
"button"
role=
"menuitemradio"
aria
-
checked=
{
active
}
className=
{
"skill-menu-item"
+
(
active
?
" active"
:
""
)
}
onClick=
{
()
=>
onChooseSkill
(
skill
.
id
)
}
>
<
strong
>
{
skill
.
id
===
defaultSkillId
?
defaultChatLabel
:
"@"
+
skill
.
name
}
</
strong
>
<
span
>
{
skill
.
description
}
</
span
>
</
button
>
)
})
}
</
div
>
)
:
null
}
</
div
>
</
div
>
<
button
<
button
type=
"submit"
type=
"submit"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment