mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-06-19 08:18:48 +00:00
Compare commits
10 Commits
59fde37108
...
33c61333d3
Author | SHA1 | Date | |
---|---|---|---|
33c61333d3 | |||
89b5229ce9 | |||
7756340dd9 | |||
bbd2e9c359 | |||
a32eb1dda3 | |||
aa834f7f04 | |||
064c0fbe42 | |||
bf4cf8eaeb | |||
80ac0c92ba | |||
5ed8fb47aa |
17
README.md
17
README.md
@ -1,7 +1,22 @@
|
||||
# 🚀 Perplexica - An AI-powered search engine 🔎 <!-- omit in toc -->
|
||||
|
||||
[](https://discord.gg/26aArMy8tT)
|
||||
<div align="center" markdown="1">
|
||||
<sup>Special thanks to:</sup>
|
||||
<br>
|
||||
<br>
|
||||
<a href="https://www.warp.dev/perplexica">
|
||||
<img alt="Warp sponsorship" width="400" src="https://github.com/user-attachments/assets/775dd593-9b5f-40f1-bf48-479faff4c27b">
|
||||
</a>
|
||||
|
||||
### [Warp, the AI Devtool that lives in your terminal](https://www.warp.dev/perplexica)
|
||||
|
||||
[Available for MacOS, Linux, & Windows](https://www.warp.dev/perplexica)
|
||||
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
[](https://discord.gg/26aArMy8tT)
|
||||
|
||||

|
||||
|
||||
|
@ -397,6 +397,8 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||
|
||||
const [isMessagesLoaded, setIsMessagesLoaded] = useState(false);
|
||||
|
||||
const [pendingRewrite, setPendingRewrite] = useState<{ content: string; messageId: string } | null>(null);
|
||||
|
||||
const [notFound, setNotFound] = useState(false);
|
||||
|
||||
const [isSettingsOpen, setIsSettingsOpen] = useState(false);
|
||||
@ -436,6 +438,12 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
const chatHistoryRef = useRef<[string, string][]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
chatHistoryRef.current = chatHistory;
|
||||
}, [chatHistory]);
|
||||
|
||||
const messagesRef = useRef<Message[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
@ -478,7 +486,7 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||
files: fileIds,
|
||||
focusMode: focusMode,
|
||||
optimizationMode: optimizationMode,
|
||||
history: [...chatHistory, ['human', message]],
|
||||
history: [...chatHistoryRef.current],
|
||||
}),
|
||||
);
|
||||
|
||||
@ -604,15 +612,22 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||
const message = messages[index - 1];
|
||||
|
||||
setMessages((prev) => {
|
||||
return [...prev.slice(0, messages.length > 2 ? index - 1 : 0)];
|
||||
return [...prev.slice(0, messages.length >= 2 ? index - 1 : 0)];
|
||||
});
|
||||
setChatHistory((prev) => {
|
||||
return [...prev.slice(0, messages.length > 2 ? index - 1 : 0)];
|
||||
return [...prev.slice(0, messages.length >= 2 ? index - 1 : 0)];
|
||||
});
|
||||
|
||||
sendMessage(message.content, message.messageId);
|
||||
setPendingRewrite({content: message.content, messageId: message.messageId});
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (pendingRewrite) {
|
||||
sendMessage(pendingRewrite.content, pendingRewrite.messageId);
|
||||
setPendingRewrite(null);
|
||||
}
|
||||
}, [pendingRewrite]);
|
||||
|
||||
useEffect(() => {
|
||||
if (isReady && initialMessage && ws?.readyState === 1) {
|
||||
sendMessage(initialMessage);
|
||||
|
Reference in New Issue
Block a user