mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-03-25 07:16:51 +00:00
@@ -799,8 +799,8 @@ function registerIpcHandlers() {
|
|||||||
return chatService.getNewMessages(sessionId, minTime, limit)
|
return chatService.getNewMessages(sessionId, minTime, limit)
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.handle('chat:updateMessage', async (_, sessionId: string, localId: number, newContent: string) => {
|
ipcMain.handle('chat:updateMessage', async (_, sessionId: string, localId: number, createTime: number, newContent: string) => {
|
||||||
return chatService.updateMessage(sessionId, localId, newContent)
|
return chatService.updateMessage(sessionId, localId, createTime, newContent)
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.handle('chat:deleteMessage', async (_, sessionId: string, localId: number, createTime: number, dbPathHint?: string) => {
|
ipcMain.handle('chat:deleteMessage', async (_, sessionId: string, localId: number, createTime: number, dbPathHint?: string) => {
|
||||||
|
|||||||
@@ -131,8 +131,8 @@ contextBridge.exposeInMainWorld('electronAPI', {
|
|||||||
ipcRenderer.invoke('chat:getNewMessages', sessionId, minTime, limit),
|
ipcRenderer.invoke('chat:getNewMessages', sessionId, minTime, limit),
|
||||||
getContact: (username: string) => ipcRenderer.invoke('chat:getContact', username),
|
getContact: (username: string) => ipcRenderer.invoke('chat:getContact', username),
|
||||||
getContactAvatar: (username: string) => ipcRenderer.invoke('chat:getContactAvatar', username),
|
getContactAvatar: (username: string) => ipcRenderer.invoke('chat:getContactAvatar', username),
|
||||||
updateMessage: (sessionId: string, localId: number, newContent: string) =>
|
updateMessage: (sessionId: string, localId: number, createTime: number, newContent: string) =>
|
||||||
ipcRenderer.invoke('chat:updateMessage', sessionId, localId, newContent),
|
ipcRenderer.invoke('chat:updateMessage', sessionId, localId, createTime, newContent),
|
||||||
deleteMessage: (sessionId: string, localId: number, createTime: number, dbPathHint?: string) =>
|
deleteMessage: (sessionId: string, localId: number, createTime: number, dbPathHint?: string) =>
|
||||||
ipcRenderer.invoke('chat:deleteMessage', sessionId, localId, createTime, dbPathHint),
|
ipcRenderer.invoke('chat:deleteMessage', sessionId, localId, createTime, dbPathHint),
|
||||||
resolveTransferDisplayNames: (chatroomId: string, payerUsername: string, receiverUsername: string) =>
|
resolveTransferDisplayNames: (chatroomId: string, payerUsername: string, receiverUsername: string) =>
|
||||||
|
|||||||
@@ -276,11 +276,11 @@ class ChatService {
|
|||||||
/**
|
/**
|
||||||
* 修改消息内容
|
* 修改消息内容
|
||||||
*/
|
*/
|
||||||
async updateMessage(sessionId: string, localId: number, newContent: string): Promise<{ success: boolean; error?: string }> {
|
async updateMessage(sessionId: string, localId: number, createTime: number, newContent: string): Promise<{ success: boolean; error?: string }> {
|
||||||
try {
|
try {
|
||||||
const connectResult = await this.ensureConnected()
|
const connectResult = await this.ensureConnected()
|
||||||
if (!connectResult.success) return { success: false, error: connectResult.error }
|
if (!connectResult.success) return { success: false, error: connectResult.error }
|
||||||
return await wcdbService.updateMessage(sessionId, localId, newContent)
|
return await wcdbService.updateMessage(sessionId, localId, createTime, newContent)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return { success: false, error: String(e) }
|
return { success: false, error: String(e) }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -387,9 +387,9 @@ export class WcdbCore {
|
|||||||
this.wcdbSetMyWxid = null
|
this.wcdbSetMyWxid = null
|
||||||
}
|
}
|
||||||
|
|
||||||
// wcdb_status wcdb_update_message(wcdb_handle handle, const char* session_id, int64_t local_id, const char* new_content, char** out_error)
|
// wcdb_status wcdb_update_message(wcdb_handle handle, const char* session_id, int64_t local_id, int32_t create_time, const char* new_content, char** out_error)
|
||||||
try {
|
try {
|
||||||
this.wcdbUpdateMessage = this.lib.func('int32 wcdb_update_message(int64 handle, const char* sessionId, int64 localId, const char* newContent, _Out_ void** outError)')
|
this.wcdbUpdateMessage = this.lib.func('int32 wcdb_update_message(int64 handle, const char* sessionId, int64 localId, int32 createTime, const char* newContent, _Out_ void** outError)')
|
||||||
} catch {
|
} catch {
|
||||||
this.wcdbUpdateMessage = null
|
this.wcdbUpdateMessage = null
|
||||||
}
|
}
|
||||||
@@ -1793,14 +1793,14 @@ export class WcdbCore {
|
|||||||
/**
|
/**
|
||||||
* 修改消息内容
|
* 修改消息内容
|
||||||
*/
|
*/
|
||||||
async updateMessage(sessionId: string, localId: number, newContent: string): Promise<{ success: boolean; error?: string }> {
|
async updateMessage(sessionId: string, localId: number, createTime: number, newContent: string): Promise<{ success: boolean; error?: string }> {
|
||||||
if (!this.initialized || !this.wcdbUpdateMessage) return { success: false, error: 'WCDB Not Initialized or Method Missing' }
|
if (!this.initialized || !this.wcdbUpdateMessage) return { success: false, error: 'WCDB Not Initialized or Method Missing' }
|
||||||
if (!this.handle) return { success: false, error: 'Not Connected' }
|
if (!this.handle) return { success: false, error: 'Not Connected' }
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
try {
|
try {
|
||||||
const outError = [null as any]
|
const outError = [null as any]
|
||||||
const result = this.wcdbUpdateMessage(this.handle, sessionId, localId, newContent, outError)
|
const result = this.wcdbUpdateMessage(this.handle, sessionId, localId, createTime, newContent, outError)
|
||||||
|
|
||||||
if (result !== 0) {
|
if (result !== 0) {
|
||||||
let errorMsg = 'Unknown Error'
|
let errorMsg = 'Unknown Error'
|
||||||
|
|||||||
@@ -434,8 +434,8 @@ export class WcdbService {
|
|||||||
/**
|
/**
|
||||||
* 修改消息内容
|
* 修改消息内容
|
||||||
*/
|
*/
|
||||||
async updateMessage(sessionId: string, localId: number, newContent: string): Promise<{ success: boolean; error?: string }> {
|
async updateMessage(sessionId: string, localId: number, createTime: number, newContent: string): Promise<{ success: boolean; error?: string }> {
|
||||||
return this.callWorker('updateMessage', { sessionId, localId, newContent })
|
return this.callWorker('updateMessage', { sessionId, localId, createTime, newContent })
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ if (parentPort) {
|
|||||||
result = await core.verifyUser(payload.message, payload.hwnd)
|
result = await core.verifyUser(payload.message, payload.hwnd)
|
||||||
break
|
break
|
||||||
case 'updateMessage':
|
case 'updateMessage':
|
||||||
result = await core.updateMessage(payload.sessionId, payload.localId, payload.newContent)
|
result = await core.updateMessage(payload.sessionId, payload.localId, payload.createTime, payload.newContent)
|
||||||
break
|
break
|
||||||
case 'deleteMessage':
|
case 'deleteMessage':
|
||||||
result = await core.deleteMessage(payload.sessionId, payload.localId, payload.createTime, payload.dbPathHint)
|
result = await core.deleteMessage(payload.sessionId, payload.localId, payload.createTime, payload.dbPathHint)
|
||||||
|
|||||||
Binary file not shown.
@@ -1658,7 +1658,7 @@ function ChatPage(_props: ChatPageProps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await (window as any).electronAPI.chat.updateMessage(currentSessionId, editingMessage.message.localId, finalContent)
|
const result = await (window as any).electronAPI.chat.updateMessage(currentSessionId, editingMessage.message.localId, editingMessage.message.createTime, finalContent)
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
const currentMessages = useChatStore.getState().messages
|
const currentMessages = useChatStore.getState().messages
|
||||||
const newMessages = currentMessages.map(m => {
|
const newMessages = currentMessages.map(m => {
|
||||||
|
|||||||
2
src/types/electron.d.ts
vendored
2
src/types/electron.d.ts
vendored
@@ -85,7 +85,7 @@ export interface ElectronAPI {
|
|||||||
}>
|
}>
|
||||||
getContact: (username: string) => Promise<Contact | null>
|
getContact: (username: string) => Promise<Contact | null>
|
||||||
getContactAvatar: (username: string) => Promise<{ avatarUrl?: string; displayName?: string } | null>
|
getContactAvatar: (username: string) => Promise<{ avatarUrl?: string; displayName?: string } | null>
|
||||||
updateMessage: (sessionId: string, localId: number, newContent: string) => Promise<{ success: boolean; error?: string }>
|
updateMessage: (sessionId: string, localId: number, createTime: number, newContent: string) => Promise<{ success: boolean; error?: string }>
|
||||||
deleteMessage: (sessionId: string, localId: number, createTime: number, dbPathHint?: string) => Promise<{ success: boolean; error?: string }>
|
deleteMessage: (sessionId: string, localId: number, createTime: number, dbPathHint?: string) => Promise<{ success: boolean; error?: string }>
|
||||||
resolveTransferDisplayNames: (chatroomId: string, payerUsername: string, receiverUsername: string) => Promise<{ payerName: string; receiverName: string }>
|
resolveTransferDisplayNames: (chatroomId: string, payerUsername: string, receiverUsername: string) => Promise<{ payerName: string; receiverName: string }>
|
||||||
getContacts: () => Promise<{
|
getContacts: () => Promise<{
|
||||||
|
|||||||
Reference in New Issue
Block a user