This commit is contained in:
PhilReact 2024-10-28 10:57:53 +02:00
parent a439b37007
commit 264a7569e2
8 changed files with 290 additions and 105 deletions

View File

@ -1264,21 +1264,16 @@ function App() {
}); });
setIsLoadingRegisterName(true); setIsLoadingRegisterName(true);
new Promise((res, rej) => { new Promise((res, rej) => {
chrome?.runtime?.sendMessage( window.sendMessage("registerName", {
{ name: registerNameValue,
action: "registerName", })
payload: { .then((response) => {
name: registerNameValue,
},
},
(response) => {
if (!response?.error) { if (!response?.error) {
res(response); res(response);
setIsLoadingRegisterName(false); setIsLoadingRegisterName(false);
setInfoSnack({ setInfoSnack({
type: "success", type: "success",
message: message: "Successfully registered. It may take a couple of minutes for the changes to propagate",
"Successfully registered. It may take a couple of minutes for the changes to propagate",
}); });
setOpenRegisterName(false); setOpenRegisterName(false);
setRegisterNameValue(""); setRegisterNameValue("");
@ -1301,8 +1296,16 @@ function App() {
}); });
setOpenSnack(true); setOpenSnack(true);
rej(response.error); rej(response.error);
} })
); .catch((error) => {
setInfoSnack({
type: "error",
message: error.message || "An error occurred",
});
setOpenSnack(true);
rej(error);
});
}); });
} catch (error) { } catch (error) {
if (error?.message) { if (error?.message) {

View File

@ -1,6 +1,8 @@
import { import {
addDataPublishes, addDataPublishes,
addUserSettings,
banFromGroup, banFromGroup,
cancelBan,
cancelInvitationToGroup, cancelInvitationToGroup,
createGroup, createGroup,
decryptWallet, decryptWallet,
@ -12,10 +14,13 @@ import {
getNameInfo, getNameInfo,
getTempPublish, getTempPublish,
getUserInfo, getUserInfo,
getUserSettings,
inviteToGroup, inviteToGroup,
joinGroup, joinGroup,
kickFromGroup, kickFromGroup,
leaveGroup, leaveGroup,
makeAdmin,
registerName,
saveTempPublish, saveTempPublish,
sendCoin, sendCoin,
walletVersion, walletVersion,
@ -548,4 +553,138 @@ export async function balanceCase(request, event) {
event.origin event.origin
); );
} }
}
export async function addUserSettingsCase(request, event) {
try {
const { keyValue } = request.payload;
const response = await addUserSettings({keyValue});
event.source.postMessage(
{
requestId: request.requestId,
action: "addUserSettings",
payload: response,
type: "backgroundMessageResponse",
},
event.origin
);
} catch (error) {
event.source.postMessage(
{
requestId: request.requestId,
action: "addUserSettings",
error: error?.message,
type: "backgroundMessageResponse",
},
event.origin
);
}
}
export async function getUserSettingsCase(request, event) {
try {
const { key } = request.payload;
const response = await getUserSettings({key});
event.source.postMessage(
{
requestId: request.requestId,
action: "getUserSettings",
payload: response,
type: "backgroundMessageResponse",
},
event.origin
);
} catch (error) {
event.source.postMessage(
{
requestId: request.requestId,
action: "getUserSettings",
error: error?.message,
type: "backgroundMessageResponse",
},
event.origin
);
}
}
export async function cancelBanCase(request, event) {
try {
const { groupId, qortalAddress } = request.payload;
const response = await cancelBan({groupId, qortalAddress});
event.source.postMessage(
{
requestId: request.requestId,
action: "cancelBan",
payload: response,
type: "backgroundMessageResponse",
},
event.origin
);
} catch (error) {
event.source.postMessage(
{
requestId: request.requestId,
action: "cancelBan",
error: error?.message,
type: "backgroundMessageResponse",
},
event.origin
);
}
}
export async function registerNameCase(request, event) {
try {
const { name } = request.payload;
const response = await registerName({name});
event.source.postMessage(
{
requestId: request.requestId,
action: "registerName",
payload: response,
type: "backgroundMessageResponse",
},
event.origin
);
} catch (error) {
event.source.postMessage(
{
requestId: request.requestId,
action: "registerName",
error: error?.message,
type: "backgroundMessageResponse",
},
event.origin
);
}
}
export async function makeAdminCase(request, event) {
try {
const { groupId, qortalAddress } = request.payload;
const response = await makeAdmin({groupId, qortalAddress});
event.source.postMessage(
{
requestId: request.requestId,
action: "makeAdmin",
payload: response,
type: "backgroundMessageResponse",
},
event.origin
);
} catch (error) {
event.source.postMessage(
{
requestId: request.requestId,
action: "makeAdmin",
error: error?.message,
type: "backgroundMessageResponse",
},
event.origin
);
}
} }

View File

@ -30,20 +30,25 @@ import { TradeBotRespondMultipleRequest } from "./transactions/TradeBotRespondMu
import { RESOURCE_TYPE_NUMBER_GROUP_CHAT_REACTIONS } from "./constants/resourceTypes"; import { RESOURCE_TYPE_NUMBER_GROUP_CHAT_REACTIONS } from "./constants/resourceTypes";
import { import {
addDataPublishesCase, addDataPublishesCase,
addUserSettingsCase,
balanceCase, balanceCase,
banFromGroupCase, banFromGroupCase,
cancelBanCase,
cancelInvitationToGroupCase, cancelInvitationToGroupCase,
createGroupCase, createGroupCase,
decryptWalletCase, decryptWalletCase,
getDataPublishesCase, getDataPublishesCase,
getTempPublishCase, getTempPublishCase,
getUserSettingsCase,
getWalletInfoCase, getWalletInfoCase,
inviteToGroupCase, inviteToGroupCase,
joinGroupCase, joinGroupCase,
kickFromGroupCase, kickFromGroupCase,
leaveGroupCase, leaveGroupCase,
ltcBalanceCase, ltcBalanceCase,
makeAdminCase,
nameCase, nameCase,
registerNameCase,
saveTempPublishCase, saveTempPublishCase,
sendCoinCase, sendCoinCase,
userInfoCase, userInfoCase,
@ -1341,7 +1346,7 @@ export async function addDataPublishes(newData, groupId, type) {
} }
// Fetch user settings based on the key // Fetch user settings based on the key
async function getUserSettings({ key }) { export async function getUserSettings({ key }) {
const wallet = await getSaveWallet(); const wallet = await getSaveWallet();
const address = wallet.address0; const address = wallet.address0;
@ -1362,7 +1367,7 @@ async function getUserSettings({ key }) {
} }
// Add or update user settings // Add or update user settings
async function addUserSettings({ keyValue }) { export async function addUserSettings({ keyValue }) {
const wallet = await getSaveWallet(); const wallet = await getSaveWallet();
const address = wallet.address0; const address = wallet.address0;
const { key, value } = keyValue; const { key, value } = keyValue;
@ -2105,7 +2110,7 @@ export async function cancelInvitationToGroup({ groupId, qortalAddress }) {
return res; return res;
} }
async function cancelBan({ groupId, qortalAddress }) { export async function cancelBan({ groupId, qortalAddress }) {
const lastReference = await getLastRef(); const lastReference = await getLastRef();
const resKeyPair = await getKeyPair(); const resKeyPair = await getKeyPair();
const parsedData = JSON.parse(resKeyPair); const parsedData = JSON.parse(resKeyPair);
@ -2131,7 +2136,7 @@ async function cancelBan({ groupId, qortalAddress }) {
throw new Error("Transaction was not able to be processed"); throw new Error("Transaction was not able to be processed");
return res; return res;
} }
async function registerName({ name }) { export async function registerName({ name }) {
const lastReference = await getLastRef(); const lastReference = await getLastRef();
const resKeyPair = await getKeyPair(); const resKeyPair = await getKeyPair();
const parsedData = JSON.parse(resKeyPair); const parsedData = JSON.parse(resKeyPair);
@ -2157,7 +2162,7 @@ async function registerName({ name }) {
throw new Error("Transaction was not able to be processed"); throw new Error("Transaction was not able to be processed");
return res; return res;
} }
async function makeAdmin({ groupId, qortalAddress }) { export async function makeAdmin({ groupId, qortalAddress }) {
const lastReference = await getLastRef(); const lastReference = await getLastRef();
const resKeyPair = await getKeyPair(); const resKeyPair = await getKeyPair();
const parsedData = JSON.parse(resKeyPair); const parsedData = JSON.parse(resKeyPair);
@ -2245,7 +2250,11 @@ export async function banFromGroup({
return res; return res;
} }
export async function kickFromGroup({ groupId, qortalAddress, rBanReason = "" }) { export async function kickFromGroup({
groupId,
qortalAddress,
rBanReason = "",
}) {
const lastReference = await getLastRef(); const lastReference = await getLastRef();
const resKeyPair = await getKeyPair(); const resKeyPair = await getKeyPair();
const parsedData = JSON.parse(resKeyPair); const parsedData = JSON.parse(resKeyPair);
@ -2922,31 +2931,44 @@ function setupMessageListener() {
case "getTempPublish": case "getTempPublish":
getTempPublishCase(request, event); getTempPublishCase(request, event);
break; break;
case "createGroup": case "createGroup":
createGroupCase(request, event); createGroupCase(request, event);
break;
case "cancelInvitationToGroup":
cancelInvitationToGroupCase(request, event);
break;
case "leaveGroup":
leaveGroupCase(request, event);
break;
case "joinGroup":
joinGroupCase(request, event);
break;
case "kickFromGroup":
kickFromGroupCase(request, event);
break;
case "banFromGroup":
banFromGroupCase(request, event);
break;
case "addDataPublishes":
addDataPublishesCase(request, event);
break;
case "getDataPublishes":
getDataPublishesCase(request, event);
break;
case "addUserSettings":
addUserSettingsCase(request, event);
break;
case "cancelBan":
cancelBanCase(request, event);
break;
case "registerName":
registerNameCase(request, event);
break; break;
case "cancelInvitationToGroup":
cancelInvitationToGroupCase(request, event);
break;
case "leaveGroup":
leaveGroupCase(request, event);
break;
case "joinGroup":
joinGroupCase(request, event);
break;
case "kickFromGroup":
kickFromGroupCase(request, event);
break;
case "banFromGroup":
banFromGroupCase(request, event);
break;
case "addDataPublishes": case "makeAdmin":
addDataPublishesCase(request, event); makeAdminCase(request, event);
break;
case "getDataPublishes":
getDataPublishesCase(request, event);
break; break;
default: default:
console.error("Unknown action:", request.action); console.error("Unknown action:", request.action);

View File

@ -77,17 +77,23 @@ export const ContextMenu = ({ children, groupId, getUserSettings, mutedGroups })
} else { } else {
value.push(groupId) value.push(groupId)
} }
chrome?.runtime?.sendMessage( window.sendMessage("addUserSettings", {
{ keyValue: {
action: "addUserSettings", key: 'mutedGroups',
payload: { value,
keyValue: { },
key: 'mutedGroups', })
value .then((response) => {
}, if (response?.error) {
}, console.error("Error adding user settings:", response.error);
} else {
console.log("User settings added successfully");
} }
); })
.catch((error) => {
console.error("Failed to add user settings:", error.message || "An error occurred");
});
setTimeout(() => { setTimeout(() => {
getUserSettings() getUserSettings()
}, 400); }, 400);

View File

@ -475,22 +475,21 @@ export const Group = ({
const getUserSettings = async () => { const getUserSettings = async () => {
try { try {
return new Promise((res, rej) => { return new Promise((res, rej) => {
chrome?.runtime?.sendMessage( window.sendMessage("getUserSettings", {
{ key: "mutedGroups",
action: "getUserSettings", })
payload: { .then((response) => {
key: "mutedGroups",
},
},
(response) => {
if (!response?.error) { if (!response?.error) {
setMutedGroups(response || []); setMutedGroups(response || []);
res(response); res(response);
return; return;
} }
rej(response.error); rej(response.error);
} })
); .catch((error) => {
rej(error.message || "An error occurred");
});
}); });
} catch (error) { } catch (error) {
console.log("error", error); console.log("error", error);

View File

@ -74,29 +74,38 @@ export const ListOfBans = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
}) })
setIsLoadingUnban(true) setIsLoadingUnban(true)
new Promise((res, rej)=> { new Promise((res, rej)=> {
chrome?.runtime?.sendMessage({ action: "cancelBan", payload: { window.sendMessage("cancelBan", {
groupId, groupId,
qortalAddress: address, qortalAddress: address,
}}, (response) => { })
.then((response) => {
if (!response?.error) { if (!response?.error) {
res(response) res(response);
setIsLoadingUnban(false) setIsLoadingUnban(false);
setInfoSnack({ setInfoSnack({
type: "success", type: "success",
message: "Successfully unbanned user. It may take a couple of minutes for the changes to propagate", message: "Successfully unbanned user. It may take a couple of minutes for the changes to propagate",
}); });
handlePopoverClose(); handlePopoverClose();
setOpenSnack(true); setOpenSnack(true);
return return;
} }
setInfoSnack({ setInfoSnack({
type: "error", type: "error",
message: response?.error, message: response?.error,
}); });
setOpenSnack(true); setOpenSnack(true);
rej(response.error) rej(response.error);
})
.catch((error) => {
setInfoSnack({
type: "error",
message: error.message || "An error occurred",
});
setOpenSnack(true);
rej(error);
}); });
}) })
} catch (error) { } catch (error) {

View File

@ -157,21 +157,15 @@ const ListOfMembers = ({
}); });
setIsLoadingMakeAdmin(true); setIsLoadingMakeAdmin(true);
await new Promise((res, rej) => { await new Promise((res, rej) => {
chrome?.runtime?.sendMessage( window.sendMessage("makeAdmin", {
{ groupId,
action: "makeAdmin", qortalAddress: address,
payload: { })
groupId, .then((response) => {
qortalAddress: address,
},
},
(response) => {
if (!response?.error) { if (!response?.error) {
setInfoSnack({ setInfoSnack({
type: "success", type: "success",
message: message: "Successfully made member an admin. It may take a couple of minutes for the changes to propagate",
"Successfully made member an admin. It may take a couple of minutes for the changes to propagate",
}); });
setOpenSnack(true); setOpenSnack(true);
handlePopoverClose(); handlePopoverClose();
@ -184,8 +178,16 @@ const ListOfMembers = ({
}); });
setOpenSnack(true); setOpenSnack(true);
rej(response.error); rej(response.error);
} })
); .catch((error) => {
setInfoSnack({
type: "error",
message: error.message || "An error occurred",
});
setOpenSnack(true);
rej(error);
});
}); });
} catch (error) { } catch (error) {
} finally { } finally {

View File

@ -84,17 +84,23 @@ export const Settings = ({
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => { const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
setChecked(event.target.checked); setChecked(event.target.checked);
chrome?.runtime?.sendMessage( window.sendMessage("addUserSettings", {
{ keyValue: {
action: "addUserSettings", key: 'disable-push-notifications',
payload: { value: event.target.checked,
keyValue: { },
key: 'disable-push-notifications', })
value: event.target.checked .then((response) => {
}, if (response?.error) {
}, console.error("Error adding user settings:", response.error);
} } else {
); console.log("User settings added successfully");
}
})
.catch((error) => {
console.error("Failed to add user settings:", error.message || "An error occurred");
});
}; };
const handleClose = () => { const handleClose = () => {
@ -104,22 +110,21 @@ export const Settings = ({
const getUserSettings = async () => { const getUserSettings = async () => {
try { try {
return new Promise((res, rej) => { return new Promise((res, rej) => {
chrome?.runtime?.sendMessage( window.sendMessage("getUserSettings", {
{ key: "disable-push-notifications",
action: "getUserSettings", })
payload: { .then((response) => {
key: "disable-push-notifications",
},
},
(response) => {
if (!response?.error) { if (!response?.error) {
setChecked(response || false); setChecked(response || false);
res(response); res(response);
return; return;
} }
rej(response.error); rej(response.error);
} })
); .catch((error) => {
rej(error.message || "An error occurred");
});
}); });
} catch (error) { } catch (error) {
console.log("error", error); console.log("error", error);