Skip to content

Commit e5c8e27

Browse files
马千里马千里
authored andcommitted
fix: use Tauri event import in ESM frontend
1 parent 70c16d8 commit e5c8e27

2 files changed

Lines changed: 9 additions & 23 deletions

File tree

src/components/ClaudeCodeSession.tsx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,16 @@ import { Label } from "@/components/ui/label";
1515
import { Popover } from "@/components/ui/popover";
1616
import { api, type Session } from "@/lib/api";
1717
import { cn } from "@/lib/utils";
18+
import { listen as tauriListen } from "@tauri-apps/api/event";
1819

19-
// Conditional imports for Tauri APIs
20-
let tauriListen: any;
2120
type UnlistenFn = () => void;
2221

23-
try {
24-
if (typeof window !== 'undefined' && window.__TAURI__) {
25-
tauriListen = require("@tauri-apps/api/event").listen;
22+
// Web-compatible replacements
23+
const listen = (eventName: string, callback: (event: any) => void) => {
24+
if (typeof window !== 'undefined' && '__TAURI__' in window) {
25+
return tauriListen(eventName, callback);
2626
}
27-
} catch (e) {
28-
console.log('[ClaudeCodeSession] Tauri APIs not available, using web mode');
29-
}
3027

31-
// Web-compatible replacements
32-
const listen = tauriListen || ((eventName: string, callback: (event: any) => void) => {
3328
console.log('[ClaudeCodeSession] Setting up DOM event listener for:', eventName);
3429

3530
// In web mode, listen for DOM events
@@ -46,7 +41,7 @@ const listen = tauriListen || ((eventName: string, callback: (event: any) => voi
4641
console.log('[ClaudeCodeSession] Removing DOM event listener for:', eventName);
4742
window.removeEventListener(eventName, domEventHandler);
4843
});
49-
});
44+
};
5045
import { StreamMessage } from "./StreamMessage";
5146
import { FloatingPromptInput, type FloatingPromptInputRef } from "./FloatingPromptInput";
5247
import { ErrorBoundary } from "./ErrorBoundary";

src/components/claude-code-session/useClaudeMessages.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,7 @@ import { useState, useCallback, useRef, useEffect } from 'react';
22
import { api } from '@/lib/api';
33
import { getEnvironmentInfo } from '@/lib/apiAdapter';
44
import type { ClaudeStreamMessage } from '../AgentExecution';
5-
6-
// Conditional import for Tauri
7-
let tauriListen: any;
8-
try {
9-
if (typeof window !== 'undefined' && window.__TAURI__) {
10-
tauriListen = require('@tauri-apps/api/event').listen;
11-
}
12-
} catch (e) {
13-
console.log('[useClaudeMessages] Tauri event API not available, using web mode');
14-
}
5+
import { listen as tauriListen } from '@tauri-apps/api/event';
156

167
interface UseClaudeMessagesOptions {
178
onSessionInfo?: (info: { sessionId: string; projectId: string }) => void;
@@ -135,7 +126,7 @@ export function useClaudeMessages(options: UseClaudeMessagesOptions = {}) {
135126
const envInfo = getEnvironmentInfo();
136127
console.log('[TRACE] Environment info:', envInfo);
137128

138-
if (envInfo.isTauri && tauriListen) {
129+
if (envInfo.isTauri) {
139130
// Tauri mode - use Tauri's event system
140131
console.log('[TRACE] Setting up Tauri event listener for claude-stream');
141132
eventListenerRef.current = await tauriListen("claude-stream", (event: any) => {
@@ -202,4 +193,4 @@ export function useClaudeMessages(options: UseClaudeMessagesOptions = {}) {
202193
loadMessages,
203194
handleMessage
204195
};
205-
}
196+
}

0 commit comments

Comments
 (0)