2024-11-12 15:55:30 +01:00

70 lines
1.6 KiB
TypeScript

import React, { useState } from 'react';
import { type Order, type Robot } from '../../../models';
import EncryptedSocketChat from './EncryptedSocketChat';
import EncryptedTurtleChat from './EncryptedTurtleChat';
interface Props {
order: Order;
status: number;
chatOffset: number;
messages: EncryptedChatMessage[];
setMessages: (state: EncryptedChatMessage[]) => void;
}
export interface EncryptedChatMessage {
userNick: string;
robot: Robot;
validSignature: boolean;
plainTextMessage: string;
encryptedMessage: string;
time: string;
index: number;
}
export interface ServerMessage {
message: string;
time: string;
index: number;
nick: string;
}
const EncryptedChat: React.FC<Props> = ({
order,
chatOffset,
setMessages,
messages,
status,
}: Props): JSX.Element => {
const [turtleMode, setTurtleMode] = useState<boolean>(false);
return turtleMode ? (
<EncryptedTurtleChat
messages={messages}
setMessages={setMessages}
order={order}
takerNick={order.taker_nick}
takerHashId={order.taker_hash_id}
makerHashId={order.maker_hash_id}
userNick={order.ur_nick}
chatOffset={chatOffset}
turtleMode={turtleMode}
setTurtleMode={setTurtleMode}
/>
) : (
<EncryptedSocketChat
status={status}
messages={messages}
setMessages={setMessages}
order={order}
takerNick={order.taker_nick}
takerHashId={order.taker_hash_id}
makerHashId={order.maker_hash_id}
userNick={order.ur_nick}
turtleMode={turtleMode}
setTurtleMode={setTurtleMode}
/>
);
};
export default EncryptedChat;