-
-
+
+
+
-
);
};
diff --git a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FeedTitleDisplayer/FeedTitleDisplayer.tsx b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FeedTitleDisplayer/FeedTitleDisplayer.tsx
index 8843550c9..db193e825 100644
--- a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FeedTitleDisplayer/FeedTitleDisplayer.tsx
+++ b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FeedTitleDisplayer/FeedTitleDisplayer.tsx
@@ -1,40 +1,24 @@
-import { useState } from "react";
+import Tooltip from "@/lib/components/ui/Tooltip";
import { enhanceUrlDisplay } from "./utils/enhanceUrlDisplay";
import { removeFileExtension } from "./utils/removeFileExtension";
type FeedTitleDisplayerProps = {
title: string;
- truncate?: boolean;
+ isUrl?: boolean;
};
export const FeedTitleDisplayer = ({
title,
- truncate = false,
+ isUrl = false,
}: FeedTitleDisplayerProps): JSX.Element => {
- const [showFullUrl, setShowFullUrl] = useState(false);
-
- const toggleShowFullUrl = () => {
- setShowFullUrl(!showFullUrl);
- };
-
- if (truncate) {
- return (
-
-
-
- {removeFileExtension(title)}
-
-
-
- );
- }
-
return (
-
- {showFullUrl ? title : enhanceUrlDisplay(title)}
-
+
+
+ {isUrl ? enhanceUrlDisplay(title) : removeFileExtension(title)}
+
+
);
};
diff --git a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem.tsx b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem.tsx
new file mode 100644
index 000000000..01e2b2ba6
--- /dev/null
+++ b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem.tsx
@@ -0,0 +1,35 @@
+import { IoMdCloseCircle } from "react-icons/io";
+
+import { getFileIcon } from "@/lib/helpers/getFileIcon";
+
+import { FeedTitleDisplayer } from "./FeedTitleDisplayer";
+import { StyledFeedItemDiv } from "../styles/StyledFeedItemDiv";
+
+type FileFeedItemProps = {
+ file: File;
+ onRemove: () => void;
+};
+
+export const FileFeedItem = ({
+ file,
+ onRemove,
+}: FileFeedItemProps): JSX.Element => {
+ const icon = getFileIcon(file.name);
+
+ return (
+
+
+
+
+
+
+ );
+};
diff --git a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem/FileFeedItem.tsx b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem/FileFeedItem.tsx
deleted file mode 100644
index cc039a6b2..000000000
--- a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem/FileFeedItem.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { IoMdCloseCircle } from "react-icons/io";
-
-import { getFileIcon } from "@/lib/helpers/getFileIcon";
-
-import { StyledFeedItemDiv } from "../../styles/StyledFeedItemDiv";
-import { FeedTitleDisplayer } from "../FeedTitleDisplayer";
-
-type FileFeedItemProps = {
- file: File;
- onRemove: () => void;
-};
-
-export const FileFeedItem = ({
- file,
- onRemove,
-}: FileFeedItemProps): JSX.Element => {
- const icon = getFileIcon(file.name);
-
- return (
-
-
- {icon}
-
-
-
-
- );
-};
diff --git a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem/index.ts b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem/index.ts
deleted file mode 100644
index 372bc409d..000000000
--- a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/components/FileFeedItem/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./FileFeedItem";
diff --git a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/styles/StyledFeedItemDiv.tsx b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/styles/StyledFeedItemDiv.tsx
index aeac0696d..31cf0d628 100644
--- a/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/styles/StyledFeedItemDiv.tsx
+++ b/frontend/lib/components/KnowledgeToFeedInput/components/FeedItems/styles/StyledFeedItemDiv.tsx
@@ -10,7 +10,7 @@ export const StyledFeedItemDiv = ({
diff --git a/frontend/lib/components/ui/Field.tsx b/frontend/lib/components/ui/Field.tsx
index dc7c39f4e..d33051223 100644
--- a/frontend/lib/components/ui/Field.tsx
+++ b/frontend/lib/components/ui/Field.tsx
@@ -44,6 +44,7 @@ const Field = forwardRef(
ref={forwardedRef as RefObject
}
className={cn(
`w-full bg-gray-50 dark:bg-gray-900 px-4 py-2 border rounded-md border-black/10 dark:border-white/25`,
+ icon !== undefined ? "pr-12" : "",
inputClassName
)}
name={name}
diff --git a/frontend/lib/context/KnowledgeToFeedProvider/knowledgeToFeed-provider.tsx b/frontend/lib/context/KnowledgeToFeedProvider/knowledgeToFeed-provider.tsx
index 8d2eba342..cb06437f7 100644
--- a/frontend/lib/context/KnowledgeToFeedProvider/knowledgeToFeed-provider.tsx
+++ b/frontend/lib/context/KnowledgeToFeedProvider/knowledgeToFeed-provider.tsx
@@ -7,6 +7,8 @@ import { FeedItemType } from "@/app/chat/[chatId]/components/ActionsBar/types";
type KnowledgeToFeedContextType = {
knowledgeToFeed: FeedItemType[];
setKnowledgeToFeed: React.Dispatch>;
+ shouldDisplayFeedCard: boolean;
+ setShouldDisplayFeedCard: React.Dispatch>;
};
export const KnowledgeToFeedContext = createContext<
@@ -19,12 +21,15 @@ export const KnowledgeToFeedProvider = ({
children: React.ReactNode;
}): JSX.Element => {
const [knowledgeToFeed, setKnowledgeToFeed] = useState([]);
+ const [shouldDisplayFeedCard, setShouldDisplayFeedCard] = useState(false);
return (
{children}
diff --git a/frontend/lib/hooks/useDropzone.ts b/frontend/lib/hooks/useDropzone.ts
index cbf08d445..9057ad842 100644
--- a/frontend/lib/hooks/useDropzone.ts
+++ b/frontend/lib/hooks/useDropzone.ts
@@ -4,14 +4,14 @@ import { useTranslation } from "react-i18next";
import { FeedItemUploadType } from "@/app/chat/[chatId]/components/ActionsBar/types";
import { useEventTracking } from "@/services/analytics/june/useEventTracking";
-
import { useToast } from "./useToast";
import { useKnowledgeToFeedContext } from "../context/KnowledgeToFeedProvider/hooks/useKnowledgeToFeedContext";
import { acceptedFormats } from "../helpers/acceptedFormats";
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export const useCustomDropzone = () => {
- const { knowledgeToFeed, addKnowledgeToFeed } = useKnowledgeToFeedContext();
+ const { knowledgeToFeed, addKnowledgeToFeed, setShouldDisplayFeedCard } =
+ useKnowledgeToFeedContext();
const files: File[] = (
knowledgeToFeed.filter((c) => c.source === "upload") as FeedItemUploadType[]
@@ -23,6 +23,7 @@ export const useCustomDropzone = () => {
const { t } = useTranslation(["upload"]);
const onDrop = (acceptedFiles: File[], fileRejections: FileRejection[]) => {
+ setShouldDisplayFeedCard(true);
if (fileRejections.length > 0) {
const firstRejection = fileRejections[0];
diff --git a/frontend/public/locales/en/brain.json b/frontend/public/locales/en/brain.json
index 45f826804..012a427ff 100644
--- a/frontend/public/locales/en/brain.json
+++ b/frontend/public/locales/en/brain.json
@@ -30,7 +30,7 @@
"private_brain_label": "Private",
"public_brain_label": "Public",
"brain_status_label":"Access",
- "set_brain_status_to_public_modal_title": "Are you sure you want to set this as Public?
",
+ "set_brain_status_to_public_modal_title": "Are you sure you want to set this as Public?
",
"set_brain_status_to_public_modal_description": "Every Quivr user will be able to:
- Subscribe to your brain in the 'brains library'.
- Use this brain and check the prompt and model configurations.
They won't have access to your uploaded files and people section.",
"confirm_set_brain_status_to_public": "Yes, set as public",
"cancel_set_brain_status_to_public": "No, keep it private",
@@ -41,7 +41,7 @@
"public_brain_subscription_success_message":"You have successfully subscribed to the brain",
"public_brain_last_update_label":"Last update",
"public_brain_already_subscribed_button_label":"Subscribed",
- "set_brain_status_to_private_modal_title":"Are you sure you want to set this as Private?
",
+ "set_brain_status_to_private_modal_title":"Are you sure you want to set this as Private?
",
"set_brain_status_to_private_modal_description":"Every Quivr users won't be able to use this brain anymore and they won't see it in the brain library.",
"confirm_set_brain_status_to_private":"Yes, set as private",
"cancel_set_brain_status_to_private":"No, keep it public",
diff --git a/frontend/public/locales/en/upload.json b/frontend/public/locales/en/upload.json
index 8e6496743..aa0ed0263 100644
--- a/frontend/public/locales/en/upload.json
+++ b/frontend/public/locales/en/upload.json
@@ -6,7 +6,7 @@
"success": "File uploaded successfully",
"uploadFailed": "Failed to upload file: {{message}}",
"maxSizeError": "File too big",
- "alreadyAdded": "{{fileName}} was already added",
+ "alreadyAdded": "{{fileName}} was already added but not sent to your brain",
"addFiles": "Please, add files to upload",
"selectBrain": "Please, select or create a brain to upload a file",
"invalidUrl": "Invalid URL",
@@ -16,5 +16,5 @@
"missingNecessaryRole": "You don't have the necessary role to upload content to the selected brain. 🧠💡🥲",
"invalidFileType": "Invalid file type",
"feed_form_submit_button":"Send to my brain",
- "selected_brain_select_label":"Brain selected"
+ "selected_brain_select_label":"Select a brain"
}
diff --git a/frontend/public/locales/es/brain.json b/frontend/public/locales/es/brain.json
index e544cf802..f7fb8588f 100644
--- a/frontend/public/locales/es/brain.json
+++ b/frontend/public/locales/es/brain.json
@@ -30,7 +30,7 @@
"private_brain_label": "Privado",
"public_brain_label": "Público",
"brain_status_label": "Estado",
- "set_brain_status_to_public_modal_title": "¿Estás seguro de querer establecer esto como Público?
",
+ "set_brain_status_to_public_modal_title": "¿Estás seguro de querer establecer esto como Público?
",
"set_brain_status_to_public_modal_description": "Cada usuario de Quivr podrá:
- Suscribirse a tu cerebro en la 'biblioteca de cerebros'.
- Usar este cerebro y comprobar las configuraciones de las indicaciones y el modelo.
No tendrán acceso a tus archivos cargados ni a la sección de personas.",
"confirm_set_brain_status_to_public": "Sí, establecer como público",
"cancel_set_brain_status_to_public": "No, mantenerlo privado",
@@ -40,7 +40,7 @@
"public_brain_subscription_success_message": "Te has suscrito con éxito al cerebro",
"public_brain_last_update_label": "Última actualización",
"public_brain_already_subscribed_button_label": "Ya suscrito",
- "set_brain_status_to_private_modal_title": "¿Estás seguro de que quieres establecer esto como Privado?
",
+ "set_brain_status_to_private_modal_title": "¿Estás seguro de que quieres establecer esto como Privado?
",
"set_brain_status_to_private_modal_description": "Los usuarios de Quivr ya no podrán utilizar este cerebro y no lo verán en la biblioteca de cerebros.",
"confirm_set_brain_status_to_private": "Sí, establecer como privado",
"cancel_set_brain_status_to_private": "No, mantenerlo público",
diff --git a/frontend/public/locales/es/upload.json b/frontend/public/locales/es/upload.json
index a772d04b5..1593bc9df 100644
--- a/frontend/public/locales/es/upload.json
+++ b/frontend/public/locales/es/upload.json
@@ -1,6 +1,6 @@
{
"addFiles": "Por favor, agregar archivos a subir",
- "alreadyAdded": "{{fileName}} ya fue agregado",
+ "alreadyAdded": "Ya se agregó {{fileName}} pero no se envió a tu cerebro.",
"crawlFailed": "Error al rastrear sitio web: {{message}}",
"drop": "Suelte los archivos aquí...",
"uploadFailed": "Error al subir archivo: {{message}}",
@@ -16,5 +16,5 @@
"webSite": "Ingrese la URL del sitio web",
"invalidFileType": "Tipo de archivo no permitido",
"feed_form_submit_button": "Enviar a mi cerebro",
- "selected_brain_select_label": "Cerebro seleccionado"
+ "selected_brain_select_label": "Seleccionar un cerebro"
}
\ No newline at end of file
diff --git a/frontend/public/locales/fr/brain.json b/frontend/public/locales/fr/brain.json
index 01f34f665..045623d0b 100644
--- a/frontend/public/locales/fr/brain.json
+++ b/frontend/public/locales/fr/brain.json
@@ -30,7 +30,7 @@
"private_brain_label": "Privé",
"public_brain_label": "Public",
"brain_status_label": "Statut",
- "set_brain_status_to_public_modal_title": "Êtes-vous sûr de vouloir définir ceci comme Public?
",
+ "set_brain_status_to_public_modal_title": "Êtes-vous sûr de vouloir définir ceci comme Public?
",
"set_brain_status_to_public_modal_description": "Chaque utilisateur de Quivr pourra :
- S'abonner à votre cerveau dans la 'bibliothèque des cerveaux'.
- Utiliser ce cerveau et vérifier les configurations de prompts et de modèles.
Ils n'auront pas accès à vos fichiers téléchargés et à la section des personnes.",
"confirm_set_brain_status_to_public": "Oui, définir comme public",
"cancel_set_brain_status_to_public": "Non, le garder privé",
@@ -40,7 +40,7 @@
"public_brain_subscription_success_message": "Vous vous êtes abonné avec succès au cerveau",
"public_brain_last_update_label": "Dernière mise à jour",
"public_brain_already_subscribed_button_label": "Abonné",
- "set_brain_status_to_private_modal_title": "Êtes-vous sûr de vouloir définir ceci comme Privé?
",
+ "set_brain_status_to_private_modal_title": "Êtes-vous sûr de vouloir définir ceci comme Privé?
",
"set_brain_status_to_private_modal_description": "Les utilisateurs de Quivr ne pourront plus utiliser ce cerveau et ne le verront plus dans la bibliothèque des cerveaux.",
"confirm_set_brain_status_to_private": "Oui, définir comme privé",
"cancel_set_brain_status_to_private": "Non, le laisser public",
diff --git a/frontend/public/locales/fr/upload.json b/frontend/public/locales/fr/upload.json
index 2f924d34e..2896166b8 100644
--- a/frontend/public/locales/fr/upload.json
+++ b/frontend/public/locales/fr/upload.json
@@ -6,7 +6,7 @@
"success": "Fichier téléchargé avec succès",
"uploadFailed": "Échec du téléchargement du fichier : {{message}}",
"maxSizeError": "Fichier trop volumineux",
- "alreadyAdded": "{{fileName}} a déjà été ajouté",
+ "alreadyAdded": "{{fileName}} a déjà été ajouté mais n'a pas été envoyé à votre cerveau.",
"addFiles": "Veuillez ajouter des fichiers à télécharger",
"selectBrain": "Veuillez sélectionner ou créer un cerveau pour télécharger un fichier",
"invalidUrl": "URL invalide",
@@ -16,5 +16,5 @@
"missingNecessaryRole": "Vous n'avez pas le rôle nécessaire pour télécharger du contenu dans le cerveau sélectionné. 🧠💡🥲",
"invalidFileType": "Type de fichier invalide",
"feed_form_submit_button":"Envoyer à mon cerveau",
- "selected_brain_select_label": "Cerveau sélectionné"
+ "selected_brain_select_label": "Sélectionnez un cerveau"
}
\ No newline at end of file
diff --git a/frontend/public/locales/pt-br/brain.json b/frontend/public/locales/pt-br/brain.json
index 2940dce31..316a53747 100644
--- a/frontend/public/locales/pt-br/brain.json
+++ b/frontend/public/locales/pt-br/brain.json
@@ -30,7 +30,7 @@
"private_brain_label": "Privado",
"public_brain_label": "Público",
"brain_status_label": "Status",
- "set_brain_status_to_public_modal_title": "Tem certeza de que deseja definir isso como Público?
",
+ "set_brain_status_to_public_modal_title": "Tem certeza de que deseja definir isso como Público?
",
"set_brain_status_to_public_modal_description": "Cada usuário do Quivr poderá:
- Se inscrever em seu cérebro na 'biblioteca de cérebros'.
- Usar este cérebro e verificar as configurações de prompts e modelos.
Eles não terão acesso aos seus arquivos enviados e à seção de pessoas.",
"confirm_set_brain_status_to_public": "Sim, definir como público",
"cancel_set_brain_status_to_public": "Não, mantê-lo privado",
@@ -40,7 +40,7 @@
"public_brain_subscription_success_message": "Você se inscreveu com sucesso no cérebro",
"public_brain_last_update_label": "Última atualização",
"public_brain_already_subscribed_button_label": "Inscrito",
- "set_brain_status_to_private_modal_title": "Tem a certeza de que deseja definir isto como Privado?
",
+ "set_brain_status_to_private_modal_title": "Tem a certeza de que deseja definir isto como Privado?
",
"set_brain_status_to_private_modal_description": "Os utilizadores do Quivr não poderão mais utilizar este cérebro e não o verão na biblioteca de cérebros.",
"confirm_set_brain_status_to_private": "Sim, definir como privado",
"cancel_set_brain_status_to_private": "Não, mantê-lo público",
diff --git a/frontend/public/locales/pt-br/upload.json b/frontend/public/locales/pt-br/upload.json
index 2df60ab33..9004ffa9a 100644
--- a/frontend/public/locales/pt-br/upload.json
+++ b/frontend/public/locales/pt-br/upload.json
@@ -6,7 +6,7 @@
"success": "Arquivo enviado com sucesso",
"uploadFailed": "Falha ao enviar arquivo: {{message}}",
"maxSizeError": "Arquivo muito grande",
- "alreadyAdded": "{{fileName}} já foi adicionado",
+ "alreadyAdded": "{{fileName}} já foi adicionado, mas não foi enviado para o seu cérebro.",
"addFiles": "Por favor, adicione arquivos para enviar",
"selectBrain": "Por favor, selecione ou crie um cérebro para enviar um arquivo",
"invalidUrl": "URL inválido",
@@ -16,5 +16,5 @@
"missingNecessaryRole": "Você não possui a função necessária para enviar conteúdo para o cérebro selecionado. 🧠💡🥲",
"invalidFileType": "Tipo de arquivo inválido",
"feed_form_submit_button": "Enviar para o meu cérebro",
- "selected_brain_select_label": "Cérebro selecionado"
+ "selected_brain_select_label": "Selecione um cérebro"
}
\ No newline at end of file
diff --git a/frontend/public/locales/ru/brain.json b/frontend/public/locales/ru/brain.json
index 45fd64547..255edb695 100644
--- a/frontend/public/locales/ru/brain.json
+++ b/frontend/public/locales/ru/brain.json
@@ -30,7 +30,7 @@
"private_brain_label": "Приватный",
"public_brain_label": "Публичный",
"brain_status_label": "Статус",
- "set_brain_status_to_public_modal_title": "Вы уверены, что хотите установить это как Публичный?
",
+ "set_brain_status_to_public_modal_title": "Вы уверены, что хотите установить это как Публичный?
",
"set_brain_status_to_public_modal_description": "Каждый пользователь Quivr сможет:
- Подписаться на ваш мозг в 'библиотеке мозгов'.
- Использовать этот мозг и проверить настройки подсказок и модели.
У них не будет доступа к вашим загруженным файлам и разделу 'люди'.",
"confirm_set_brain_status_to_public": "Да, установить как публичный",
"cancel_set_brain_status_to_public": "Нет, оставить приватным",
@@ -40,7 +40,7 @@
"public_brain_subscription_success_message": "Вы успешно подписались на мозг",
"public_brain_last_update_label": "Последнее обновление",
"public_brain_already_subscribed_button_label": "Вы уже подписаны",
- "set_brain_status_to_private_modal_title": "Вы уверены, что хотите установить это как Частное?
",
+ "set_brain_status_to_private_modal_title": "Вы уверены, что хотите установить это как Частное?
",
"set_brain_status_to_private_modal_description": "Пользователи Quivr больше не смогут использовать этот мозг, и они не увидят его в библиотеке мозгов.",
"confirm_set_brain_status_to_private": "Да, установить как частное",
"cancel_set_brain_status_to_private": "Нет, оставить общедоступным",
diff --git a/frontend/public/locales/ru/upload.json b/frontend/public/locales/ru/upload.json
index 562d2be1b..ce5c4b5e7 100644
--- a/frontend/public/locales/ru/upload.json
+++ b/frontend/public/locales/ru/upload.json
@@ -6,7 +6,7 @@
"success": "Файл успешно загружен",
"uploadFailed": "Не удалось загрузить файл: {{message}}",
"maxSizeError": "Файл слишком большой",
- "alreadyAdded": "{{fileName}} уже добавлен",
+ "alreadyAdded": "{{fileName}} уже добавлен, но не отправлен в ваш мозг.",
"addFiles": "Пожалуйста, добавьте файлы для загрузки",
"selectBrain": "Пожалуйста, выберите или создайте мозг для загрузки файла",
"invalidUrl": "Неверный URL",
@@ -16,5 +16,5 @@
"missingNecessaryRole": "У вас нет необходимой роли для загрузки контента в выбранный мозг. 🧠💡🥲",
"invalidFileType": "Неверный тип файла",
"feed_form_submit_button": "Отправить в мой мозг",
- "selected_brain_select_label": "Выбран мозг"
+ "selected_brain_select_label": "Выберите мозг"
}
diff --git a/frontend/public/locales/zh-cn/brain.json b/frontend/public/locales/zh-cn/brain.json
index 24b71236c..93bd07d23 100644
--- a/frontend/public/locales/zh-cn/brain.json
+++ b/frontend/public/locales/zh-cn/brain.json
@@ -30,7 +30,7 @@
"private_brain_label": "私有",
"public_brain_label": "公开",
"brain_status_label": "状态",
- "set_brain_status_to_public_modal_title": "您确定要将此设置为公共吗?
",
+ "set_brain_status_to_public_modal_title": "您确定要将此设置为公共吗?
",
"set_brain_status_to_public_modal_description": "每个 Quivr 用户将能够:
- 在 '大脑库' 中订阅您的大脑。
- 使用此大脑并检查提示和模型配置。
他们将无法访问您上传的文件和人员部分。",
"confirm_set_brain_status_to_public": "是的,设为公共",
"cancel_set_brain_status_to_public": "不,保持私密",
@@ -40,7 +40,7 @@
"public_brain_subscription_success_message": "Вы успешно подписались на мозг",
"public_brain_last_update_label": "Последнее обновление",
"public_brain_already_subscribed_button_label": "已订阅",
- "set_brain_status_to_private_modal_title": "您确定要将此设置为私有吗?
",
+ "set_brain_status_to_private_modal_title": "您确定要将此设置为私有吗?
",
"set_brain_status_to_private_modal_description": "Quivr的用户将无法再使用此大脑,并且不会在大脑库中看到它。",
"confirm_set_brain_status_to_private": "是的,设为私有",
"cancel_set_brain_status_to_private": "不,保持为公开",
diff --git a/frontend/public/locales/zh-cn/upload.json b/frontend/public/locales/zh-cn/upload.json
index fa5ca56aa..b083e3d2c 100644
--- a/frontend/public/locales/zh-cn/upload.json
+++ b/frontend/public/locales/zh-cn/upload.json
@@ -6,7 +6,7 @@
"success": "文件上传成功",
"uploadFailed": "上传文件失败:{{message}}",
"maxSizeError": "文件太大",
- "alreadyAdded": "已添加 {{filename}}",
+ "alreadyAdded": "{{fileName}} 已经添加,但尚未发送到您的大脑。",
"addFiles": "请添加要上传的文件",
"selectBrain": "请选择或创建一个大脑来上传文件。",
"invalidUrl": "无效的URL",
@@ -16,5 +16,5 @@
"missingNecessaryRole": "您没有所选大脑的上传权限。 🧠💡🥲",
"invalidFileType": "文件类型不受支持",
"feed_form_submit_button":"发送到我的大脑",
- "selected_brain_select_label": "已选择的大脑"
+ "selected_brain_select_label": "选择一个大脑"
}
\ No newline at end of file
diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js
index cbc7de391..1822912e7 100644
--- a/frontend/tailwind.config.js
+++ b/frontend/tailwind.config.js
@@ -17,6 +17,9 @@ module.exports = {
colors: {
black: "#00121F",
primary: "#4F46E5",
+ "chat-bg-gray": "#D9D9D9",
+ "msg-gray": "#9B9B9B",
+ "msg-purple": "#E0DDFC",
},
},
},