mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 17:55:51 +00:00
Initial UI support and placeholders for Q-Apps
This commit is contained in:
parent
25bea7a3dc
commit
391f4eabb3
@ -234,6 +234,104 @@ class WebBrowser extends LitElement {
|
||||
parentEpml.request('closeCopyTextMenu', null)
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener("message", (event) => {
|
||||
if (event == null || event.data == null || event.data.length == 0 || event.data.action == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
let response = "{\"error\": \"Request could not be fulfilled\"}";
|
||||
let data = event.data;
|
||||
console.log("UI received event: " + JSON.stringify(data));
|
||||
|
||||
switch (data.action) {
|
||||
case "GET_ACCOUNT_ADDRESS":
|
||||
// For now, we will return this without prompting the user, but we may need to add a prompt later
|
||||
response = this.selectedAddress.address;
|
||||
break;
|
||||
|
||||
case "GET_ACCOUNT_PUBLIC_KEY":
|
||||
// For now, we will return this without prompting the user, but we may need to add a prompt later
|
||||
response = this.selectedAddress.base58PublicKey;
|
||||
break;
|
||||
|
||||
case "PUBLISH_QDN_RESOURCE":
|
||||
// Use "default" if user hasn't specified an identifer
|
||||
if (data.identifier == null) {
|
||||
data.identifier = "default";
|
||||
}
|
||||
|
||||
// Params: data.service, data.name, data.identifier, data.data64,
|
||||
// TODO: prompt user for publish. If they confirm, call `POST /arbitrary/{service}/{name}/{identifier}/base64` and sign+process transaction
|
||||
// then set the response string from the core to the `response` variable (defined above)
|
||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||
break;
|
||||
|
||||
case "SEND_CHAT_MESSAGE":
|
||||
// Params: data.groupId, data.destinationAddress, data.message
|
||||
// TODO: prompt user to send chat message. If they confirm, sign+process a CHAT transaction
|
||||
// then set the response string from the core to the `response` variable (defined above)
|
||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||
break;
|
||||
|
||||
case "JOIN_GROUP":
|
||||
// Params: data.groupId
|
||||
// TODO: prompt user to join group. If they confirm, sign+process a JOIN_GROUP transaction
|
||||
// then set the response string from the core to the `response` variable (defined above)
|
||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||
break;
|
||||
|
||||
case "DEPLOY_AT":
|
||||
// Params: data.creationBytes, data.name, data.description, data.type, data.tags, data.amount, data.assetId, data.fee
|
||||
// TODO: prompt user to deploy an AT. If they confirm, sign+process a DEPLOY_AT transaction
|
||||
// then set the response string from the core to the `response` variable (defined above)
|
||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||
break;
|
||||
|
||||
case "GET_WALLET_BALANCE":
|
||||
// Params: data.coin (QORT / LTC / DOGE / DGB / RVN / ARRR)
|
||||
// TODO: prompt user to share wallet balance. If they confirm, call `GET /crosschain/:coin/walletbalance`, or for QORT, call `GET /addresses/balance/:address`
|
||||
// then set the response string from the core to the `response` variable (defined above)
|
||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||
break;
|
||||
|
||||
case "SEND_COIN":
|
||||
// Params: data.coin, data.destinationAddress, data.amount, data.fee
|
||||
// TODO: prompt user to send. If they confirm, call `POST /crosschain/:coin/send`, or for QORT, broadcast a PAYMENT transaction
|
||||
// then set the response string from the core to the `response` variable (defined above)
|
||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||
break;
|
||||
|
||||
default:
|
||||
console.log("Unhandled message: " + JSON.stringify(data));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Parse response
|
||||
let responseObj;
|
||||
try {
|
||||
responseObj = JSON.parse(response);
|
||||
} catch (e) {
|
||||
// Not all responses will be JSON
|
||||
responseObj = response;
|
||||
}
|
||||
|
||||
// Respond to app
|
||||
if (responseObj.error != null) {
|
||||
event.ports[0].postMessage({
|
||||
result: null,
|
||||
error: responseObj
|
||||
});
|
||||
}
|
||||
else {
|
||||
event.ports[0].postMessage({
|
||||
result: responseObj,
|
||||
error: null
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
changeTheme() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user