mirror of
https://github.com/tiennm99/DocsGPT.git
synced 2026-10-11 03:12:55 +00:00
19 files changed
+36
-28
No files matched your search
@@ -1587,7 +1587,7 @@ function WorkflowBuilderInner() {
|
||||
size="icon-sm"
|
||||
onClick={() => setShowWorkflowSettings(!showWorkflowSettings)}
|
||||
className="text-muted-foreground hover:bg-accent hover:text-foreground size-auto p-1"
|
||||
aria-label="Workflow settings"
|
||||
aria-label="Edit workflow details"
|
||||
title={
|
||||
workflowDescription
|
||||
? `${workflowName || 'New Workflow'} — ${workflowDescription}`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ExternalLink, Plus } from 'lucide-react';
|
||||
import { Plus, Share } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { ShareConversationModal } from '../modals/ShareConversationModal';
|
||||
@@ -73,11 +73,7 @@ export default function ActionButtons({
|
||||
onClick={() => setShareModalState(true)}
|
||||
className="text-muted-foreground hover:text-foreground rounded-full"
|
||||
>
|
||||
<ExternalLink
|
||||
className="size-5"
|
||||
strokeWidth={1.75}
|
||||
aria-label="share"
|
||||
/>
|
||||
<Share className="size-5" strokeWidth={1.75} aria-label="share" />
|
||||
</Button>
|
||||
{isShareModalOpen && (
|
||||
<ShareConversationModal
|
||||
|
||||
@@ -22,7 +22,7 @@ export default function AttachFileButton({ onChange }: AttachFileButtonProps) {
|
||||
<img
|
||||
src={ClipIcon}
|
||||
alt="Attach"
|
||||
className="mr-1 h-3.5 w-3.5 sm:mr-1.5 sm:h-4 sm:w-4"
|
||||
className="mr-1 h-3.5 w-3.5 sm:mr-1.5 sm:h-4 sm:w-4 dark:invert"
|
||||
/>
|
||||
<span className="xs:text-xs dark:text-foreground text-muted-foreground text-xs font-medium sm:text-sm">
|
||||
{t('conversation.attachments.attach')}
|
||||
|
||||
@@ -61,7 +61,7 @@ export default function SourcesTrigger({
|
||||
<img
|
||||
src={SourceIcon}
|
||||
alt="Sources"
|
||||
className="mr-1 h-3.5 w-3.5 shrink-0 sm:mr-1.5 sm:h-4"
|
||||
className="mr-1 h-3.5 w-3.5 shrink-0 sm:mr-1.5 sm:h-4 sm:w-4 dark:invert"
|
||||
/>
|
||||
<span className="xs:text-xs dark:text-foreground text-muted-foreground truncate overflow-hidden text-xs font-medium sm:text-sm">
|
||||
{selectedDocs && selectedDocs.length > 0
|
||||
|
||||
@@ -62,7 +62,7 @@ export default function ToolsTrigger({
|
||||
<img
|
||||
src={ToolIcon}
|
||||
alt="Tools"
|
||||
className="mr-1 h-3.5 w-3.5 shrink-0 sm:mr-1.5 sm:h-4 sm:w-4"
|
||||
className="mr-1 h-3.5 w-3.5 shrink-0 sm:mr-1.5 sm:h-4 sm:w-4 dark:invert"
|
||||
/>
|
||||
<span className="xs:text-xs dark:text-foreground text-muted-foreground truncate overflow-hidden text-xs font-medium sm:text-sm">
|
||||
{t('settings.tools.label')}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ExternalLink, X } from 'lucide-react';
|
||||
import { Share, X } from 'lucide-react';
|
||||
import {
|
||||
SyntheticEvent,
|
||||
useCallback,
|
||||
@@ -135,7 +135,7 @@ export default function ConversationTile({
|
||||
|
||||
const menuOptions: ConversationMenuOption[] = [
|
||||
{
|
||||
icon: <ExternalLink className="size-3.5" strokeWidth={1.75} />,
|
||||
icon: <Share className="size-4" strokeWidth={1.75} />,
|
||||
label: t('convTile.share'),
|
||||
onClick: (event: SyntheticEvent) => {
|
||||
event.stopPropagation();
|
||||
@@ -216,11 +216,13 @@ export default function ConversationTile({
|
||||
<div className="dark:text-muted-foreground flex text-white">
|
||||
{isEdit ? (
|
||||
<div className="flex gap-1">
|
||||
<img
|
||||
src={CheckMark2}
|
||||
alt="Edit"
|
||||
className="mr-2 h-4 w-4 cursor-pointer text-white hover:opacity-50"
|
||||
id={`img-${conversation.id}`}
|
||||
<Button
|
||||
type="button"
|
||||
variant="ghost"
|
||||
size="icon-sm"
|
||||
aria-label={t('convTile.save')}
|
||||
title={t('convTile.save')}
|
||||
className="mr-2 h-auto w-auto bg-transparent p-0 hover:bg-transparent hover:opacity-50"
|
||||
onClick={(event: SyntheticEvent) => {
|
||||
event.stopPropagation();
|
||||
handleSaveConversation({
|
||||
@@ -228,12 +230,15 @@ export default function ConversationTile({
|
||||
name: conversationName,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
>
|
||||
<img src={CheckMark2} alt="" className="h-4 w-4" />
|
||||
</Button>
|
||||
<Button
|
||||
type="button"
|
||||
variant="ghost"
|
||||
size="icon-sm"
|
||||
aria-label="Exit"
|
||||
aria-label={t('cancel')}
|
||||
title={t('cancel')}
|
||||
id={`img-${conversation.id}`}
|
||||
className="mt-px mr-4 h-auto w-auto bg-transparent p-0 hover:bg-transparent hover:opacity-50"
|
||||
onClick={(event: SyntheticEvent) => {
|
||||
|
||||
@@ -1063,6 +1063,7 @@
|
||||
"share": "Teilen",
|
||||
"delete": "Löschen",
|
||||
"rename": "Umbenennen",
|
||||
"save": "Speichern",
|
||||
"deleteWarning": "Bist du sicher, dass du diese Konversation löschen möchtest?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -1068,6 +1068,7 @@
|
||||
"share": "Share",
|
||||
"delete": "Delete",
|
||||
"rename": "Rename",
|
||||
"save": "Save",
|
||||
"deleteWarning": "Are you sure you want to delete this conversation?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -1063,6 +1063,7 @@
|
||||
"share": "Compartir",
|
||||
"delete": "Eliminar",
|
||||
"rename": "Renombrar",
|
||||
"save": "Guardar",
|
||||
"deleteWarning": "¿Está seguro de que desea eliminar esta conversación?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -1063,6 +1063,7 @@
|
||||
"share": "共有",
|
||||
"delete": "削除",
|
||||
"rename": "名前変更",
|
||||
"save": "保存",
|
||||
"deleteWarning": "この会話を削除してもよろしいですか?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -1063,6 +1063,7 @@
|
||||
"share": "Поделиться",
|
||||
"delete": "Удалить",
|
||||
"rename": "Переименовать",
|
||||
"save": "Сохранить",
|
||||
"deleteWarning": "Вы уверены, что хотите удалить этот разговор?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -1063,6 +1063,7 @@
|
||||
"share": "分享",
|
||||
"delete": "刪除",
|
||||
"rename": "重新命名",
|
||||
"save": "儲存",
|
||||
"deleteWarning": "您確定要刪除這個對話嗎?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -1063,6 +1063,7 @@
|
||||
"share": "分享",
|
||||
"delete": "删除",
|
||||
"rename": "重命名",
|
||||
"save": "保存",
|
||||
"deleteWarning": "您确定要删除此对话吗?"
|
||||
},
|
||||
"pagination": {
|
||||
|
||||
@@ -269,7 +269,7 @@ export default function MoveToFolderModal({
|
||||
<img
|
||||
src={ChevronRight}
|
||||
alt="expand"
|
||||
className={`h-3 w-3 ${selectedFolderId === folder.id ? 'brightness-0 invert' : ''}`}
|
||||
className={`h-3 w-3 ${selectedFolderId === folder.id ? 'brightness-0 invert' : 'dark:invert'}`}
|
||||
/>
|
||||
</span>
|
||||
)}
|
||||
|
||||
@@ -402,7 +402,7 @@ function Log({
|
||||
<img
|
||||
src={ChevronRight}
|
||||
alt="Expand log entry"
|
||||
className={`mt-[3px] h-3 w-3 transition duration-300 ${isOpen ? 'rotate-90' : ''}`}
|
||||
className={`mt-[3px] h-3 w-3 transition duration-300 dark:invert ${isOpen ? 'rotate-90' : ''}`}
|
||||
/>
|
||||
<span className="flex flex-row flex-wrap gap-2">
|
||||
<h2 className="dark:text-foreground text-xs text-black/60">{`${log.timestamp}`}</h2>
|
||||
|
||||
@@ -484,7 +484,7 @@ export default function ToolConfig({
|
||||
<img
|
||||
src={ChevronRight}
|
||||
alt="expand"
|
||||
className={`h-4 w-4 opacity-60 transition-transform duration-200 ${isExpanded ? 'rotate-90' : ''}`}
|
||||
className={`h-4 w-4 opacity-60 transition-transform duration-200 dark:invert ${isExpanded ? 'rotate-90' : ''}`}
|
||||
/>
|
||||
<p className="text-foreground dark:text-foreground font-semibold">
|
||||
{action.name}
|
||||
@@ -919,7 +919,7 @@ function APIToolConfig({
|
||||
<img
|
||||
src={ChevronRight}
|
||||
alt="expand"
|
||||
className={`h-4 w-4 opacity-60 transition-transform duration-200 ${isExpanded ? 'rotate-90' : ''}`}
|
||||
className={`h-4 w-4 opacity-60 transition-transform duration-200 dark:invert ${isExpanded ? 'rotate-90' : ''}`}
|
||||
/>
|
||||
<span
|
||||
className={`rounded px-2 py-0.5 text-xs font-medium ${getMethodColorClass(action.method)}`}
|
||||
|
||||
@@ -792,7 +792,7 @@ export default function RetrievalOptions({
|
||||
<img
|
||||
src={ChevronRight}
|
||||
alt=""
|
||||
className={`h-3 w-3 transform transition-transform ${
|
||||
className={`h-3 w-3 transform transition-transform dark:invert ${
|
||||
expanded ? 'rotate-90' : ''
|
||||
}`}
|
||||
/>
|
||||
|
||||
@@ -3,11 +3,11 @@ import { useTranslation } from 'react-i18next';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import {
|
||||
Building2,
|
||||
Check,
|
||||
ChevronsUpDown,
|
||||
Plus,
|
||||
Settings as SettingsIcon,
|
||||
User,
|
||||
Users,
|
||||
} from 'lucide-react';
|
||||
|
||||
@@ -149,7 +149,7 @@ export default function TeamSwitcher({
|
||||
{currentTeam ? (
|
||||
<Users className="size-4" strokeWidth={1.75} />
|
||||
) : (
|
||||
<Building2 className="size-4" strokeWidth={1.75} />
|
||||
<User className="size-4" strokeWidth={1.75} />
|
||||
)}
|
||||
</span>
|
||||
<span className="min-w-0 flex-1">
|
||||
@@ -174,7 +174,7 @@ export default function TeamSwitcher({
|
||||
{/* Personal account entry */}
|
||||
{currentTeam && (
|
||||
<DropdownMenuItem onSelect={() => selectTeam(null)}>
|
||||
<Building2 className="size-4" strokeWidth={1.75} />
|
||||
<User className="size-4" strokeWidth={1.75} />
|
||||
<span className="min-w-0 flex-1 truncate">
|
||||
{t('teams.switcher.personal')}
|
||||
</span>
|
||||
|
||||
@@ -1086,7 +1086,7 @@ function Upload({
|
||||
<img
|
||||
src={ChevronRight}
|
||||
alt="back"
|
||||
className="h-3 w-3 rotate-180 transform"
|
||||
className="h-3 w-3 rotate-180 transform dark:invert"
|
||||
/>
|
||||
<span>{t('modals.uploadDoc.back')}</span>
|
||||
</Button>
|
||||
|
||||
Reference in new issue
Block a user