Skip to content

Commit 297fe6d

Browse files
committed
feat(xchain): adds read and write network and requestKey from querystring params
1 parent ab5d6c8 commit 297fe6d

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

docs/xchain.js

+42
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,8 @@ function validateServer() {
636636
console.log(err);
637637
setError(err);
638638
}
639+
640+
setUrlParam('network', event.target.value);
639641
},
640642
false,
641643
);
@@ -670,6 +672,8 @@ function validatePact() {
670672
console.log(err);
671673
setError(err);
672674
}
675+
676+
setUrlParam('requestKey', event.target.value);
673677
},
674678
false,
675679
);
@@ -739,6 +743,9 @@ function isAccountEligibleForGasPayment() {
739743
window.addEventListener(
740744
'load',
741745
async function () {
746+
fillNetworkIdFromQueryString();
747+
fillRequestKeyFromQueryString();
748+
742749
State.server = State.server ? State.server : 'api.chainweb.com';
743750
State.networkId = State.networkId ? State.networkId : 'mainnet01';
744751
State.requestKey = State.requestKey ? State.requestKey : '';
@@ -1033,3 +1040,38 @@ function makeRawRequestInit(stringBody) {
10331040
body: stringBody,
10341041
};
10351042
}
1043+
1044+
function fillNetworkIdFromQueryString() {
1045+
const network = getParameterByName('network');
1046+
if (network) {
1047+
document.getElementById('server').value = network;
1048+
State.server = network;
1049+
}
1050+
}
1051+
1052+
function fillRequestKeyFromQueryString() {
1053+
const requestKey = getParameterByName('requestKey');
1054+
if (requestKey) {
1055+
document.getElementById('pact-id').value = requestKey;
1056+
State.requestKey = requestKey;
1057+
}
1058+
}
1059+
1060+
function getParameterByName(name, url = window.location.href) {
1061+
name = name.replace(/[\[\]]/g, '\\$&');
1062+
const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
1063+
const results = regex.exec(url);
1064+
if (!results) return null;
1065+
if (!results[2]) return '';
1066+
return decodeURIComponent(results[2].replace(/\+/g, ' '));
1067+
}
1068+
1069+
function setUrlParam(key, value) {
1070+
const urlParams = new URLSearchParams(window.location.search);
1071+
urlParams.set(key, value);
1072+
window.history.replaceState(
1073+
{},
1074+
'',
1075+
`${window.location.pathname}?${urlParams}`,
1076+
);
1077+
}

0 commit comments

Comments
 (0)