mirror of
https://github.com/pezkuwichain/pezkuwi-apps.git
synced 2026-04-23 03:37:57 +00:00
feat: initial Pezkuwi Apps rebrand from polkadot-apps
Rebranded terminology: - Polkadot → Pezkuwi - Kusama → Dicle - Westend → Zagros - Rococo → PezkuwiChain - Substrate → Bizinikiwi - parachain → teyrchain Custom logos with Kurdistan brand colors (#e6007a → #86e62a): - bizinikiwi-hexagon.svg - sora-bizinikiwi.svg - hezscanner.svg - heztreasury.svg - pezkuwiscan.svg - pezkuwistats.svg - pezkuwiassembly.svg - pezkuwiholic.svg
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
// Copyright 2017-2025 @pezkuwi/apps authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import queryString from 'query-string';
|
||||
import store from 'store';
|
||||
|
||||
import { createWsEndpoints } from '@pezkuwi/apps-config';
|
||||
import { extractIpfsDetails } from '@pezkuwi/react-hooks/useIpfs';
|
||||
import { settings } from '@pezkuwi/ui-settings';
|
||||
import { assert } from '@pezkuwi/util';
|
||||
|
||||
function networkOrUrl (apiUrl: string): void {
|
||||
if (apiUrl.startsWith('light://')) {
|
||||
console.log('Light endpoint=', apiUrl.replace('light://', ''));
|
||||
} else {
|
||||
console.log('WS endpoint=', apiUrl);
|
||||
}
|
||||
}
|
||||
|
||||
function getApiUrl (): string {
|
||||
// we split here so that both these forms are allowed
|
||||
// - http://localhost:3000/?rpc=wss://bizinikiwi-rpc.parity.io/#/explorer
|
||||
// - http://localhost:3000/#/explorer?rpc=wss://bizinikiwi-rpc.parity.io
|
||||
const urlOptions = queryString.parse(location.href.split('?')[1]);
|
||||
|
||||
// if specified, this takes priority
|
||||
if (urlOptions.rpc) {
|
||||
assert(!Array.isArray(urlOptions.rpc), 'Invalid WS endpoint specified');
|
||||
|
||||
// https://pezkuwi.js.org/apps/?rpc=ws://127.0.0.1:9944#/explorer;
|
||||
const url = decodeURIComponent(urlOptions.rpc.split('#')[0]);
|
||||
|
||||
assert(url.startsWith('ws://') || url.startsWith('wss://') || url.startsWith('light://'), 'Non-prefixed ws/wss/light url');
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
const endpoints = createWsEndpoints(<T = string>(): T => ('' as unknown as T));
|
||||
const { ipnsChain } = extractIpfsDetails();
|
||||
|
||||
// check against ipns domains (could be expanded to others)
|
||||
if (ipnsChain) {
|
||||
const option = endpoints.find(({ dnslink }) => dnslink === ipnsChain);
|
||||
|
||||
if (option) {
|
||||
return option.value;
|
||||
}
|
||||
}
|
||||
|
||||
const stored = store.get('settings') as Record<string, unknown> || {};
|
||||
const fallbackUrl = endpoints.find(({ value }) => !!value);
|
||||
|
||||
// via settings, or the default chain
|
||||
return [stored.apiUrl, process.env.WS_URL].includes(settings.apiUrl)
|
||||
? settings.apiUrl // keep as-is
|
||||
: fallbackUrl
|
||||
? fallbackUrl.value // grab the fallback
|
||||
: 'ws://127.0.0.1:9944'; // nothing found, go local
|
||||
}
|
||||
|
||||
// There cannot be a Bizinikiwi Connect light client default (expect only jrpc EndpointType)
|
||||
const apiUrl = getApiUrl();
|
||||
|
||||
// set the default as retrieved here
|
||||
settings.set({ apiUrl });
|
||||
|
||||
networkOrUrl(apiUrl);
|
||||
Reference in New Issue
Block a user