diff --git a/src/background-cases.ts b/src/background-cases.ts index 31b0312..ce85224 100644 --- a/src/background-cases.ts +++ b/src/background-cases.ts @@ -21,6 +21,7 @@ import { leaveGroup, makeAdmin, registerName, + removeAdmin, saveTempPublish, sendCoin, walletVersion, @@ -687,4 +688,31 @@ export async function balanceCase(request, event) { event.origin ); } + } + + export async function removeAdminCase(request, event) { + try { + const { groupId, qortalAddress } = request.payload; + const response = await removeAdmin({groupId, qortalAddress}); + + event.source.postMessage( + { + requestId: request.requestId, + action: "removeAdmin", + payload: response, + type: "backgroundMessageResponse", + }, + event.origin + ); + } catch (error) { + event.source.postMessage( + { + requestId: request.requestId, + action: "removeAdmin", + error: error?.message, + type: "backgroundMessageResponse", + }, + event.origin + ); + } } \ No newline at end of file diff --git a/src/background.ts b/src/background.ts index f478285..3a1e247 100644 --- a/src/background.ts +++ b/src/background.ts @@ -49,6 +49,7 @@ import { makeAdminCase, nameCase, registerNameCase, + removeAdminCase, saveTempPublishCase, sendCoinCase, userInfoCase, @@ -2189,7 +2190,7 @@ export async function makeAdmin({ groupId, qortalAddress }) { return res; } -async function removeAdmin({ groupId, qortalAddress }) { +export async function removeAdmin({ groupId, qortalAddress }) { const lastReference = await getLastRef(); const resKeyPair = await getKeyPair(); const parsedData = JSON.parse(resKeyPair); @@ -2963,13 +2964,16 @@ function setupMessageListener() { case "cancelBan": cancelBanCase(request, event); break; - case "registerName": - registerNameCase(request, event); - break; + case "registerName": + registerNameCase(request, event); + break; - case "makeAdmin": - makeAdminCase(request, event); - break; + case "makeAdmin": + makeAdminCase(request, event); + break; + case "removeAdmin": + removeAdminCase(request, event); + break; default: console.error("Unknown action:", request.action); } diff --git a/src/components/Group/ListOfMembers.tsx b/src/components/Group/ListOfMembers.tsx index 9abb455..a54a616 100644 --- a/src/components/Group/ListOfMembers.tsx +++ b/src/components/Group/ListOfMembers.tsx @@ -204,21 +204,15 @@ const ListOfMembers = ({ }); setIsLoadingRemoveAdmin(true); await new Promise((res, rej) => { - chrome?.runtime?.sendMessage( - { - action: "removeAdmin", - payload: { - groupId, - qortalAddress: address, - }, - }, - (response) => { - + window.sendMessage("removeAdmin", { + groupId, + qortalAddress: address, + }) + .then((response) => { if (!response?.error) { setInfoSnack({ type: "success", - message: - "Successfully removed member as an admin. It may take a couple of minutes for the changes to propagate", + message: "Successfully removed member as an admin. It may take a couple of minutes for the changes to propagate", }); setOpenSnack(true); handlePopoverClose(); @@ -231,8 +225,16 @@ const ListOfMembers = ({ }); setOpenSnack(true); rej(response.error); - } - ); + }) + .catch((error) => { + setInfoSnack({ + type: "error", + message: error.message || "An error occurred", + }); + setOpenSnack(true); + rej(error); + }); + }); } catch (error) { } finally {