Этот коммит содержится в:
Constantin Rusu 2025-03-14 17:25:03 +00:00
родитель e3e5bbd907
Коммит 957edb0406
4 изменённых файлов: 64 добавлений и 5 удалений

Просмотреть файл

@ -134,4 +134,11 @@
.memo-body p:last-child {
margin-bottom: 1rem;
}
/* Memo footer styles for the secure chat button */
.memo-footer {
border-top: 1px solid rgba(255, 255, 255, 0.1);
margin-top: 0.5rem;
padding-top: 1rem;
}

Просмотреть файл

@ -3,6 +3,18 @@ import './ExpertMemo.css';
import { useTranslation } from 'react-i18next';
import { BriefingAudio } from './BriefingAudio';
import { cn } from '@/lib/utils';
import { Button } from '@/components/ui/button';
import { MessageSquare } from 'lucide-react';
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
DialogTrigger,
DialogFooter,
DialogClose,
} from '@/components/ui/dialog';
interface ExpertMemoProps {
from: string;
@ -95,6 +107,38 @@ export const ExpertMemo: React.FC<ExpertMemoProps> = ({
{formatContent(children)}
</div>
<div className={cn("memo-gradient", showGradient && "show")} />
<div className="memo-footer p-4 flex justify-end">
<Dialog>
<DialogTrigger asChild>
<Button
variant="outline"
size="sm"
className="border-yellow-500/30 hover:border-yellow-500/50 text-yellow-500"
>
<MessageSquare className="h-4 w-4 mr-1" />
{t('memo.secureChat', 'Direct Chat with Expert (Secure)')}
</Button>
</DialogTrigger>
<DialogContent className="bg-gray-900 border-yellow-500/30 text-white">
<DialogHeader>
<DialogTitle className="text-yellow-500">{t('memo.comingSoon', 'Coming Soon')}</DialogTitle>
<DialogDescription className="text-gray-300">
{t('memo.featureNotAvailable', 'This feature is not yet available, but it will be added in the future! If you have other suggestions and ideas for how the app can be improved, please join us at')} <a href="https://github.com/kodackx/disinformation-quest" target="_blank" rel="noopener noreferrer" className="text-yellow-500 hover:underline">GitHub</a>.
</DialogDescription>
</DialogHeader>
<DialogFooter className="mt-4">
<DialogClose asChild>
<Button
variant="outline"
className="border-yellow-500/30 hover:border-yellow-500/50 text-yellow-500"
>
{t('buttons.close', 'Close')}
</Button>
</DialogClose>
</DialogFooter>
</DialogContent>
</Dialog>
</div>
</div>
);
};

Просмотреть файл

@ -35,7 +35,10 @@
},
"memo": {
"expertNote": "EXPERT NOTE",
"urgentInput": "URGENT INPUT NEEDED"
"urgentInput": "URGENT INPUT NEEDED",
"secureChat": "Direct Chat with Expert (Secure)",
"comingSoon": "Coming Soon",
"featureNotAvailable": "This feature is not yet available, but it will be added in the future! If you have other suggestions and ideas for how the app can be improved, please join us at"
},
"audio": {
"briefing": "Briefing",
@ -51,7 +54,8 @@
"beginSimulation": "Begin Simulation",
"continue": "Continue",
"viewReport": "View Final Report",
"share": "Share Results"
"share": "Share Results",
"close": "Close"
},
"warnings": {
"selfDestruct": "WARNING: This document will self-destruct upon closing"

Просмотреть файл

@ -35,7 +35,10 @@
},
"memo": {
"expertNote": "RAPORT EXPERT",
"urgentInput": "INTERVENȚIE URGENTĂ NECESARĂ"
"urgentInput": "INTERVENȚIE URGENTĂ NECESARĂ",
"secureChat": "Chat Securizat cu Expertul",
"comingSoon": "În Curând",
"featureNotAvailable": "Această funcționalitate nu este încă disponibilă, dar va fi adăugată în viitor! Dacă aveți alte sugestii și idei pentru îmbunătățirea aplicației, vă rugăm să ni vă alăturați pe"
},
"audio": {
"briefing": "Briefing",
@ -51,7 +54,8 @@
"beginSimulation": "Începe Simularea",
"continue": "Continuă",
"viewReport": "Vezi Raportul Final",
"share": "Distribuie Rezultatele"
"share": "Distribuie Rezultatele",
"close": "Închide"
},
"warnings": {
"selfDestruct": "AVERTISMENT: Acest document se va autodistruge la închidere"
@ -519,7 +523,7 @@
"subject": "Răspuns la Dezvăluirea Media",
"content": {
"greeting": "Agent,",
"intro": "ALERTĂ: Canale media majore au publicat o dezvăluire care relevă detalii despre operațiunea noastră. Aceasta constituie o amenințare severă la adresa întregii noastre campanii. Modul în care răspundem în următoarele 48 de ore va determina dacă munca noastră supraviețuiește sau se prăbușește. Trebuie să acționăm imediat.",
"intro": "ALERTĂ: Canale media majore au publicat o dezvăluire care relevă detalii despre operațiunea noastră. Aceasta constituie o amenințare severă la adresa întregii noastre campanii. Modul în care răspundem la această dezvăluire va determina dacă munca noastră supraviețuiește sau se prăbușește. Trebuie să acționăm imediat.",
"strategy1": "Opțiunea 1: Promovează Libertatea Intelectuală. Vezi fișierul atașat pentru detalii operaționale complete.",
"strategy2": "Opțiunea 2: Pune sub Semnul Întrebării Credibilitatea Media. Vezi fișierul atașat pentru detalii operaționale complete.",
"conclusion": "Acesta este momentul care testează întreaga noastră operațiune, Agent. Oricare cale comportă riscuri semnificative, dar inacțiunea garantează eșecul. Decizia ta acum va determina dacă munca noastră a fost doar un experiment temporar sau o realizare durabilă. Alege cu grijă.",