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