diff --git a/components/Chat/Chat.tsx b/components/Chat/Chat.tsx index 3da9b02..67f9502 100644 --- a/components/Chat/Chat.tsx +++ b/components/Chat/Chat.tsx @@ -11,7 +11,7 @@ interface Props { conversation: Conversation; models: OpenAIModel[]; apiKey: string; - isUsingEnv: boolean; + serverSideApiKeyIsSet: boolean; messageIsStreaming: boolean; modelError: boolean; messageError: boolean; @@ -19,14 +19,13 @@ interface Props { lightMode: "light" | "dark"; onSend: (message: Message, isResend: boolean) => void; onUpdateConversation: (conversation: Conversation, data: KeyValuePair) => void; - onAcceptEnv: (accept: boolean) => void; onEditMessage: (message: Message, messageIndex: number) => void; onDeleteMessage: (message: Message, messageIndex: number) => void; onRegenerate: () => void; stopConversationRef: MutableRefObject; } -export const Chat: FC = ({ conversation, models, apiKey, isUsingEnv, messageIsStreaming, modelError, messageError, loading, lightMode, onSend, onUpdateConversation, onAcceptEnv, onEditMessage, onDeleteMessage, onRegenerate, stopConversationRef }) => { +export const Chat: FC = ({ conversation, models, apiKey, serverSideApiKeyIsSet, messageIsStreaming, modelError, messageError, loading, lightMode, onSend, onUpdateConversation, onEditMessage, onDeleteMessage, onRegenerate, stopConversationRef }) => { const [currentMessage, setCurrentMessage] = useState(); const [autoScrollEnabled, setAutoScrollEnabled] = useState(true); @@ -72,22 +71,15 @@ export const Chat: FC = ({ conversation, models, apiKey, isUsingEnv, mess return (
- {!apiKey && !isUsingEnv ? ( + {!(apiKey || serverSideApiKeyIsSet) ? (
OpenAI API Key Required
Please set your OpenAI API key in the bottom left of the sidebar.
-
- OR -
-
) : modelError ? (
Error fetching models.
-
Make sure your OpenAI API key is set in the bottom left of the sidebar or in a .env.local file and refresh.
+
Make sure your OpenAI API key is set in the bottom left of the sidebar.
If you completed this step, OpenAI may be experiencing issues.
) : ( diff --git a/pages/index.tsx b/pages/index.tsx index 30f8271..026a776 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -8,10 +8,15 @@ import { saveConversation, saveConversations, updateConversation } from "@/utils import { saveFolders } from "@/utils/app/folders"; import { exportData, importData } from "@/utils/app/importExport"; import { IconArrowBarLeft, IconArrowBarRight } from "@tabler/icons-react"; +import { GetServerSideProps } from "next"; import Head from "next/head"; import { useEffect, useRef, useState } from "react"; -export default function Home() { +interface HomeProps { + serverSideApiKeyIsSet: boolean; +} + +const Home: React.FC = ({ serverSideApiKeyIsSet }) => { const [folders, setFolders] = useState([]); const [conversations, setConversations] = useState([]); const [selectedConversation, setSelectedConversation] = useState(); @@ -23,7 +28,6 @@ export default function Home() { const [apiKey, setApiKey] = useState(""); const [messageError, setMessageError] = useState(false); const [modelError, setModelError] = useState(false); - const [isUsingEnv, setIsUsingEnv] = useState(false); const [currentMessage, setCurrentMessage] = useState(); const stopConversationRef = useRef(false); @@ -206,11 +210,6 @@ export default function Home() { localStorage.setItem("apiKey", apiKey); }; - const handleEnvChange = (isUsingEnv: boolean) => { - setIsUsingEnv(isUsingEnv); - localStorage.setItem("isUsingEnv", isUsingEnv.toString()); - }; - const handleExportData = () => { exportData(); }; @@ -348,9 +347,6 @@ export default function Home() { setFolders([]); localStorage.removeItem("folders"); - - setIsUsingEnv(false); - localStorage.removeItem("isUsingEnv"); }; const handleEditMessage = (message: Message, messageIndex: number) => { @@ -410,11 +406,7 @@ export default function Home() { if (apiKey) { setApiKey(apiKey); fetchModels(apiKey); - } - - const usingEnv = localStorage.getItem("isUsingEnv"); - if (usingEnv) { - setIsUsingEnv(usingEnv === "true"); + } else if (serverSideApiKeyIsSet) { fetchModels(""); } @@ -449,7 +441,7 @@ export default function Home() { folderId: 0 }); } - }, []); + }, [serverSideApiKeyIsSet]); return ( <> @@ -523,7 +515,7 @@ export default function Home() { conversation={selectedConversation} messageIsStreaming={messageIsStreaming} apiKey={apiKey} - isUsingEnv={isUsingEnv} + serverSideApiKeyIsSet={serverSideApiKeyIsSet} modelError={modelError} messageError={messageError} models={models} @@ -531,7 +523,6 @@ export default function Home() { lightMode={lightMode} onSend={handleSend} onUpdateConversation={handleUpdateConversation} - onAcceptEnv={handleEnvChange} onEditMessage={handleEditMessage} onDeleteMessage={handleDeleteMessage} onRegenerate={handleRegenerate} @@ -542,4 +533,13 @@ export default function Home() { )} ); -} +}; +export default Home; + +export const getServerSideProps: GetServerSideProps = async () => { + return { + props: { + serverSideApiKeyIsSet: !!process.env.OPENAI_API_KEY + } + }; +};