mirror of
https://github.com/block/goose.git
synced 2026-10-19 09:34:12 +00:00
fix: reflect loading state of chats (#12603)
This commit is contained in:
parent
c2eb854c66
commit
5850d4a18c
18 changed files with 66 additions and 2 deletions
|
|
@ -37,6 +37,10 @@ const i18n = defineMessages({
|
|||
id: 'navigationPanel.noChats',
|
||||
defaultMessage: 'No recent chats',
|
||||
},
|
||||
loadingChats: {
|
||||
id: 'navigationPanel.loadingChats',
|
||||
defaultMessage: 'Loading chats…',
|
||||
},
|
||||
untitledSession: {
|
||||
id: 'navigationPanel.untitledSession',
|
||||
defaultMessage: 'Untitled session',
|
||||
|
|
@ -260,6 +264,7 @@ export const Navigation: React.FC<{
|
|||
const {
|
||||
recentSessions,
|
||||
recentSessionsByProject,
|
||||
isLoadingSessions,
|
||||
activeSessionId,
|
||||
fetchSessions,
|
||||
handleNavClick,
|
||||
|
|
@ -364,7 +369,7 @@ export const Navigation: React.FC<{
|
|||
<div className="flex-1 min-h-0 overflow-y-auto px-2 pb-2 mt-1">
|
||||
{recentSessions.length === 0 ? (
|
||||
<div className="px-3 py-2 text-xs text-text-secondary">
|
||||
{intl.formatMessage(i18n.noChats)}
|
||||
{intl.formatMessage(isLoadingSessions ? i18n.loadingChats : i18n.noChats)}
|
||||
</div>
|
||||
) : recentSessionsByProject.length > 1 ? (
|
||||
recentSessionsByProject.map((group: ProjectGroup) => {
|
||||
|
|
|
|||
|
|
@ -61,6 +61,8 @@ export function useNavigationSessions() {
|
|||
const chatContext = useChatContext();
|
||||
|
||||
const [recentSessions, setRecentSessions] = useState<SessionListItem[]>([]);
|
||||
const [isLoadingSessions, setIsLoadingSessions] = useState(true);
|
||||
const latestFetchIdRef = useRef(0);
|
||||
const recentSessionsByProject = useMemo(
|
||||
() => groupSessionsByProject(recentSessions),
|
||||
[recentSessions]
|
||||
|
|
@ -78,11 +80,19 @@ export function useNavigationSessions() {
|
|||
}, [currentSessionId]);
|
||||
|
||||
const fetchSessions = useCallback(async () => {
|
||||
const fetchId = ++latestFetchIdRef.current;
|
||||
setIsLoadingSessions(true);
|
||||
try {
|
||||
const sessions = await acpListRecentSessions(MAX_RECENT_SESSIONS);
|
||||
setRecentSessions(sessions);
|
||||
if (fetchId === latestFetchIdRef.current) {
|
||||
setRecentSessions(sessions);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch sessions:', error);
|
||||
} finally {
|
||||
if (fetchId === latestFetchIdRef.current) {
|
||||
setIsLoadingSessions(false);
|
||||
}
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
|
@ -214,6 +224,7 @@ export function useNavigationSessions() {
|
|||
return {
|
||||
recentSessions,
|
||||
recentSessionsByProject,
|
||||
isLoadingSessions,
|
||||
activeSessionId,
|
||||
fetchSessions,
|
||||
handleNavClick,
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Chats"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Chats werden geladen…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Erstellt"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2408,6 +2408,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Chats"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Loading chats…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Created"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Chats"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Cargando chats…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Creado"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Discussions"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Chargement des discussions…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Créé"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "चैट"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "चैट लोड हो रही हैं…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "बनाया गया"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Obrolan"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Memuat obrolan…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Dibuat"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Chat"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Caricamento chat…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Creato"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "チャット"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "チャットを読み込み中…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "作成"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "채팅"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "채팅 불러오는 중…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "생성됨"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Sembang"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Memuatkan sembang…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Dicipta"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Conversas"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Carregando chats…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Criado"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Чаты"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Загрузка чатов…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Создано"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Sohbetler"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Sohbetler yükleniyor…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Oluşturuldu"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "Cuộc trò chuyện"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "Đang tải cuộc trò chuyện…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "Đã tạo"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "聊天"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "正在加载聊天…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "创建时间"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2384,6 +2384,9 @@
|
|||
"navigationPanel.chats": {
|
||||
"defaultMessage": "交談"
|
||||
},
|
||||
"navigationPanel.loadingChats": {
|
||||
"defaultMessage": "正在載入聊天…"
|
||||
},
|
||||
"navigationPanel.metaCreated": {
|
||||
"defaultMessage": "建立時間"
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue