diff --git a/src/background-cases.ts b/src/background-cases.ts index 06c199a..4f1b51b 100644 --- a/src/background-cases.ts +++ b/src/background-cases.ts @@ -19,6 +19,8 @@ import { getLTCBalance, getNameInfo, getTempPublish, + getTimestampEnterChat, + getTimestampGroupAnnouncement, getUserInfo, getUserSettings, inviteToGroup, @@ -1037,4 +1039,57 @@ export async function balanceCase(request, event) { event.origin ); } + } + + export async function getTimestampEnterChatCase(request, event) { + try { + const response = await getTimestampEnterChat(); + + event.source.postMessage( + { + requestId: request.requestId, + action: "getTimestampEnterChat", + payload: response, + type: "backgroundMessageResponse", + }, + event.origin + ); + } catch (error) { + event.source.postMessage( + { + requestId: request.requestId, + action: "getTimestampEnterChat", + error: error?.message, + type: "backgroundMessageResponse", + }, + event.origin + ); + } + } + + + export async function getGroupNotificationTimestampCase(request, event) { + try { + const response = await getTimestampGroupAnnouncement(); + + event.source.postMessage( + { + requestId: request.requestId, + action: "getGroupNotificationTimestamp", + payload: response, + type: "backgroundMessageResponse", + }, + event.origin + ); + } catch (error) { + event.source.postMessage( + { + requestId: request.requestId, + action: "getGroupNotificationTimestamp", + error: error?.message, + type: "backgroundMessageResponse", + }, + event.origin + ); + } } \ No newline at end of file diff --git a/src/background.ts b/src/background.ts index 6f99f1f..a0dc8c9 100644 --- a/src/background.ts +++ b/src/background.ts @@ -44,7 +44,9 @@ import { getCustomNodesFromStorageCase, getDataPublishesCase, getGroupDataSingleCase, + getGroupNotificationTimestampCase, getTempPublishCase, + getTimestampEnterChatCase, getUserSettingsCase, getWalletInfoCase, inviteToGroupCase, @@ -2734,7 +2736,7 @@ async function setChatHeadsDirect(data) { }); } -async function getTimestampEnterChat() { +export async function getTimestampEnterChat() { const wallet = await getSaveWallet(); const address = wallet.address0; const key = `enter-chat-timestamp-${address}`; @@ -2746,7 +2748,7 @@ async function getTimestampEnterChat() { return {}; } } -async function getTimestampGroupAnnouncement() { +export async function getTimestampGroupAnnouncement() { const wallet = await getSaveWallet(); const address = wallet.address0; const key = `group-announcement-${address}`; @@ -3030,6 +3032,12 @@ function setupMessageListener() { case "getGroupDataSingle": getGroupDataSingleCase(request, event); break; + case "getTimestampEnterChat": + getTimestampEnterChatCase(request, event); + break; + case "getGroupNotificationTimestamp": + getGroupNotificationTimestampCase(request, event); + break; default: console.error("Unknown action:", request.action); } diff --git a/src/components/Group/Group.tsx b/src/components/Group/Group.tsx index e1341b3..10ec158 100644 --- a/src/components/Group/Group.tsx +++ b/src/components/Group/Group.tsx @@ -503,18 +503,19 @@ export const Group = ({ const getTimestampEnterChat = async () => { try { return new Promise((res, rej) => { - chrome?.runtime?.sendMessage( - { - action: "getTimestampEnterChat", - }, - (response) => { - if (!response?.error) { - setTimestampEnterData(response); - res(response); - } - rej(response.error); - } - ); + window.sendMessage("getTimestampEnterChat") + .then((response) => { + if (!response?.error) { + setTimestampEnterData(response); + res(response); + return; + } + rej(response.error); + }) + .catch((error) => { + rej(error.message || "An error occurred"); + }); + }); } catch (error) {} }; @@ -550,18 +551,19 @@ export const Group = ({ const getGroupAnnouncements = async () => { try { return new Promise((res, rej) => { - chrome?.runtime?.sendMessage( - { - action: "getGroupNotificationTimestamp", - }, - (response) => { - if (!response?.error) { - setGroupAnnouncements(response); - res(response); - } - rej(response.error); + window.sendMessage("getGroupNotificationTimestamp") + .then((response) => { + if (!response?.error) { + setGroupAnnouncements(response); + res(response); + return; } - ); + rej(response.error); + }) + .catch((error) => { + rej(error.message || "An error occurred"); + }); + }); } catch (error) {} };