use std::fmt::DebugStruct; use serde::{Deserialize, Serialize}; use serde_json::{json, Value}; use sp_backend::silentpayments::sending::SilentPaymentAddress; use tsify::Tsify; use wasm_bindgen::prelude::*; pub const HTML_CREATE_ID: &str = "

Create an Id

Processes


Recover

"; pub const HTML_UPDATE_ID: &str = "

Update an Id


"; pub const HTML_RECOVER: &str = "

Recover my Id

Processes

Create an Id

Revoke

"; pub const HTML_REVOKE_IMAGE: &str = "

Revoke image

Update an Id
"; pub const HTML_REVOKE: &str = "

Revoke an Id

Recover


"; pub const CSS: &str = " body { margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; min-height: 100vh; background-color: #f4f4f4; font-family: 'Arial', sans-serif; } .container { text-align: center; } .card { max-width: 400px; width: 100%; padding: 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); background-color: #ffffff; border-radius: 8px; text-align: left; overflow: hidden; } form { display: flex; flex-direction: column; /* flex-wrap: wrap; */ } label { font-weight: bold; margin-bottom: 8px; } hr { border: 0; height: 1px; background-color: #ddd; margin: 10px 0; } input, select { width: 100%; padding: 10px; margin: 8px 0; box-sizing: border-box; } select { padding: 10px; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px; cursor: pointer; } button { display: inline-block; background-color: #4caf50; color: #fff; border: none; padding: 12px 17px; border-radius: 4px; cursor: pointer; } button:hover { background-color: #45a049; } .side-by-side { display: flex; align-items: center; justify-content: space-between; } .side-by-side>* { display: inline-block; } button.recover { display: inline-block; text-align: center; text-decoration: none; display: inline-block; background-color: #4caf50; color: #fff; border: none; padding: 12px 17px; border-radius: 4px; cursor: pointer; } button.recover:hover { background-color: #45a049; } a.btn { display: inline-block; text-align: center; text-decoration: none; display: inline-block; background-color: #4caf50; color: #fff; border: none; padding: 12px 17px; border-radius: 4px; cursor: pointer; } a.btn:hover { background-color: #45a049; } a { text-decoration: none; color: #78a6de; } .bg-secondary { background-color: #2b81ed; } .bg-primary { background-color: #1A61ED; } .bg-primary:hover { background-color: #457be8; } .card-revoke { display: flex; flex-direction: column; max-width: 400px; width: 100%; padding: 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); background-color: #ffffff; border-radius: 8px; text-align: center; align-items: center; overflow: hidden; } .card-revoke a { max-width: 50px; width: 100%; background: none; border: none; cursor: pointer; } .card-revoke button { max-width: 200px; width: 100%; background: none; border: none; cursor: pointer; color: #78a6de; } .card-revoke svg { width: 100%; height: auto; fill: #333; } .image-label { display: block; color: #fff; padding: 5px; margin-top: 10px; } .image-container { width: 400px; height: 300px; overflow: hidden; } .image-container img { text-align: center; width: 100%; height: 100%; object-fit: cover; object-position: center center; } .passwordalert { color: #FF0000; } "; pub const CSSUPDATE: &str = " "; pub const JSUPDATE: &str = " var addSpAddressBtn = document.getElementById('add-sp-address-btn'); var removeSpAddressBtn = document.querySelectorAll('.minus-sp-address-btn'); addSpAddressBtn.addEventListener('click', function (event) { addDynamicField(this); }); function addDynamicField(element) { var addSpAddressBlock = document.getElementById('sp-address-block'); var spAddress = addSpAddressBlock.querySelector('#sp-address').value; addSpAddressBlock.querySelector('#sp-address').value = ''; spAddress = spAddress.trim(); if (spAddress != '') { var sideBySideDiv = document.createElement('div'); sideBySideDiv.className = 'side-by-side'; var inputElement = document.createElement('input'); inputElement.type = 'text'; inputElement.name = 'spAddresses[]'; inputElement.setAttribute('form', 'no-form'); inputElement.value = spAddress; inputElement.disabled = true; var buttonElement = document.createElement('button'); buttonElement.type = 'button'; buttonElement.className = 'circle-btn bg-secondary minus-sp-address-btn'; buttonElement.innerHTML = '-'; buttonElement.addEventListener('click', function (event) { removeDynamicField(this.parentElement); }); sideBySideDiv.appendChild(inputElement); sideBySideDiv.appendChild(buttonElement); addSpAddressBlock.appendChild(sideBySideDiv); } function removeDynamicField(element) { element.remove(); } } "; #[derive(Debug, Serialize, Deserialize, Default, Tsify)] #[tsify(into_wasm_abi, from_wasm_abi)] pub struct Process { pub id: u32, pub name: String, pub version: String, pub members: Vec, pub html: String, pub style: String, pub script: String, // Add conditions : process, member, peer, artefact }