From d708b143014d3123b2ad1f796097c7d9653d872b Mon Sep 17 00:00:00 2001 From: Calvin Secrest Date: Fri, 5 Sep 2025 18:29:19 -0400 Subject: [PATCH] chore: add shared API base URL constant --- frontend/chat-ui/src/api.js | 1 + frontend/chat-ui/src/components/ChatWindow.jsx | 3 ++- frontend/chat-ui/src/components/InputBox.jsx | 3 +-- frontend/chat-ui/src/components/MessageActions.jsx | 3 +-- frontend/chat-ui/src/components/Sidebar.jsx | 3 +-- frontend/chat-ui/src/components/TopBar.jsx | 5 +++-- 6 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 frontend/chat-ui/src/api.js diff --git a/frontend/chat-ui/src/api.js b/frontend/chat-ui/src/api.js new file mode 100644 index 0000000..e0e142c --- /dev/null +++ b/frontend/chat-ui/src/api.js @@ -0,0 +1 @@ +export const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; diff --git a/frontend/chat-ui/src/components/ChatWindow.jsx b/frontend/chat-ui/src/components/ChatWindow.jsx index e2c649e..fa9ba5a 100644 --- a/frontend/chat-ui/src/components/ChatWindow.jsx +++ b/frontend/chat-ui/src/components/ChatWindow.jsx @@ -1,6 +1,7 @@ import React, { useEffect, useRef } from 'react'; import { useStore } from '../store'; import MessageBubble from './MessageBubble.jsx'; +import { API_BASE_URL } from '../api'; export default function ChatWindow() { const { state, dispatch } = useStore(); @@ -12,7 +13,7 @@ export default function ChatWindow() { useEffect(() => { if (!state.currentConversation) return; - const events = new EventSource(`/stream/${state.currentConversation.id}`); + const events = new EventSource(`${API_BASE_URL}/stream/${state.currentConversation.id}`); const handleToken = (e) => { try { diff --git a/frontend/chat-ui/src/components/InputBox.jsx b/frontend/chat-ui/src/components/InputBox.jsx index 01d9a2a..cb117ef 100644 --- a/frontend/chat-ui/src/components/InputBox.jsx +++ b/frontend/chat-ui/src/components/InputBox.jsx @@ -1,7 +1,6 @@ import React, { useState, useRef } from 'react'; import { useStore } from '../store'; - -const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; +import { API_BASE_URL } from '../api'; export default function InputBox() { const { state, dispatch } = useStore(); diff --git a/frontend/chat-ui/src/components/MessageActions.jsx b/frontend/chat-ui/src/components/MessageActions.jsx index 56c3cdd..b4c5bf0 100644 --- a/frontend/chat-ui/src/components/MessageActions.jsx +++ b/frontend/chat-ui/src/components/MessageActions.jsx @@ -1,7 +1,6 @@ import React from 'react'; import { useStore } from '../store'; - -const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; +import { API_BASE_URL } from '../api'; export default function MessageActions({ message }) { const { state } = useStore(); diff --git a/frontend/chat-ui/src/components/Sidebar.jsx b/frontend/chat-ui/src/components/Sidebar.jsx index 59900b0..a997a72 100644 --- a/frontend/chat-ui/src/components/Sidebar.jsx +++ b/frontend/chat-ui/src/components/Sidebar.jsx @@ -1,7 +1,6 @@ import React, { useEffect } from 'react'; import { useStore } from '../store'; - -const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; +import { API_BASE_URL } from '../api'; export default function Sidebar() { const { state, dispatch } = useStore(); diff --git a/frontend/chat-ui/src/components/TopBar.jsx b/frontend/chat-ui/src/components/TopBar.jsx index d9304bf..ff06c03 100644 --- a/frontend/chat-ui/src/components/TopBar.jsx +++ b/frontend/chat-ui/src/components/TopBar.jsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { useStore } from '../store'; +import { API_BASE_URL } from '../api'; export default function TopBar() { const { state, dispatch } = useStore(); @@ -15,7 +16,7 @@ export default function TopBar() { setTitle(t); if (!state.currentConversation) return; try { - await fetch(`/conversations/${state.currentConversation.id}`, { + await fetch(`${API_BASE_URL}/conversations/${state.currentConversation.id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', @@ -37,7 +38,7 @@ export default function TopBar() { const remove = async () => { if (!state.currentConversation) return; try { - await fetch(`/conversations/${state.currentConversation.id}`, { + await fetch(`${API_BASE_URL}/conversations/${state.currentConversation.id}`, { method: 'DELETE', headers: { 'x-api-key': import.meta.env.VITE_API_KEY }, });