Skip to content

Commit

Permalink
Fixed static docs renderer & formatted a some files
Browse files Browse the repository at this point in the history
  • Loading branch information
3Nigma committed Apr 12, 2022
1 parent 46275a1 commit 2ccb9b8
Show file tree
Hide file tree
Showing 11 changed files with 268 additions and 265 deletions.
1 change: 1 addition & 0 deletions lib.docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
static/js/
73 changes: 29 additions & 44 deletions lib.docs/src/app/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,28 +24,22 @@ const hpAppMetaData = {
name: "hStrato",
};

// Set this upfront for naive handling of race conditions (at least docs won't crash)
window["StratoOperator"] = {
accountId: 'unknown',
network: 'unknown',
};

async function fetchDocsOperator() {
async function injectStrato() {
try {
const docsOperatorResponse = await fetch('https://eu2.contabostorage.com/963797152a304f4bb7f75cc0af884bd7:buidler-labs/projects/hedera-strato-js/docs-operator.json');
const { value: uint8ArrayDocsOperator } = await docsOperatorResponse.body.getReader().read();
const rawDocsOperator = new TextDecoder().decode(uint8ArrayDocsOperator);
const docsOperator = JSON.parse(rawDocsOperator);
const githubOperatorContext = {
client: {
hedera: {
const s3OperatorContext = {
network: {
name: docsOperator.network,
},
wallet: {
sdk: {
operatorId: docsOperator.accountId,
operatorKey: docsOperator.privateKey,
},
},
network: {
name: docsOperator.network,
},
};
const originalApiSessionDefault = ApiSession.default;

Expand All @@ -55,22 +49,17 @@ async function fetchDocsOperator() {
let operatorCoordsProvided = false;

if (args.length > 0 && args[0] instanceof Object) {
if (args[0].client !== undefined && args[0].client.hedera !== undefined) {
operatorCoordsProvided = args[0].client.hedera.operatorId !== undefined || args[0].client.hedera.operatorKey !== undefined;
if (args[0].wallet !== undefined && args[0].wallet.hedera !== undefined) {
operatorCoordsProvided = args[0].wallet.sdk.operatorId !== undefined || args[0].wallet.sdk.operatorKey !== undefined;
}
operatorCoordsProvided ||= (args[0].network !== undefined && args[0].network.name !== undefined);
}

// eslint-disable-next-line no-undef
return originalApiSessionDefault(merge(operatorCoordsProvided ? {} : githubOperatorContext, ...args));
return originalApiSessionDefault(merge(operatorCoordsProvided ? {} : s3OperatorContext, ...args));
},
... ApiSession,
};

return {
accountId: docsOperator.accountId,
network: docsOperator.network,
};
} catch(e) {
console.error('There was an error while fetching the docs-client operator. Falling back to the bundled operator.', e);
window["ApiSession"] = ApiSession;
Expand All @@ -87,31 +76,27 @@ async function fetchDocsOperator() {
}

(async function () {
const stratoOperator = await fetchDocsOperator();

if (stratoOperator) {
window["StratoOperator"] = stratoOperator;

window["connectWallet"] = async (networkName) => {
const wallet = await HashPackWallet.newConnection({
appMetadata: hpAppMetaData,
debug: false,
networkName,
});

setWallet(wallet);
return wallet;
};

window['disconnectWallet'] = () => {
if(window['hedera']) {
window['hedera'].wipePairingData();
window['hedera'] = null;
}
await injectStrato();

window["connectWallet"] = async (networkName) => {
const wallet = await HashPackWallet.newConnection({
appMetadata: hpAppMetaData,
debug: false,
networkName,
});

setWallet(wallet);
return wallet;
};

window['disconnectWallet'] = () => {
if(window['hedera']) {
window['hedera'].wipePairingData();
window['hedera'] = null;
}

setWallet(await HashPackWallet.getConnection(false));
}

setWallet(await HashPackWallet.getConnection(false));
})();

function setWallet(wallet) {
Expand Down
46 changes: 35 additions & 11 deletions lib.docs/src/components/OperatorCoordinates.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,49 @@
import BrowserOnly from '@docusaurus/BrowserOnly';
import React from 'react';

export const OperatorId = () => (
<BrowserOnly fallback={<code>unknown</code>}>
let promisedS3OperatorInfo = null;

async function getS3Operator() {
if (!promisedS3OperatorInfo) {
promisedS3OperatorInfo = fetch('https://eu2.contabostorage.com/963797152a304f4bb7f75cc0af884bd7:buidler-labs/projects/hedera-strato-js/docs-operator.json')
.then(docsOperatorResponse => docsOperatorResponse.body.getReader().read())
.then(({ value }) => new TextDecoder().decode(value))
.then(rawDocsOperator => JSON.parse(rawDocsOperator));
}
return promisedS3OperatorInfo;
}

export const OperatorId = () => {
const [operator, setOperator] = React.useState({ accountId: 'unknown', network: 'unknown' });

React.useEffect(() => {
getS3Operator().then(docsOperator => setOperator(docsOperator));
}, []);

return <BrowserOnly fallback={<code>unknown</code>}>
{() =>
window.StratoOperator.network === 'testnet' ?
<a href={ "https://testnet.dragonglass.me/hedera/accounts/" + window.StratoOperator.accountId }>
operator.network === 'testnet' ?
<a href={ "https://testnet.dragonglass.me/hedera/accounts/" + operator.accountId }>
<code>
{window.StratoOperator.accountId}
{operator.accountId}
</code>
</a>
:
<code>
{window.StratoOperator.accountId}
{operator.accountId}
</code>
}
</BrowserOnly>
);
};

export const OperatorNetwork = () => {
const [operator, setOperator] = React.useState({ accountId: 'unknown', network: 'unknown' });

React.useEffect(() => {
getS3Operator().then(docsOperator => setOperator(docsOperator));
}, []);

export const OperatorNetwork = () => (
<BrowserOnly fallback={<code>unknown</code>}>
{() => <code>{window.StratoOperator.network}</code> }
return <BrowserOnly fallback={<code>unknown</code>}>
{() => <code>{operator.network}</code> }
</BrowserOnly>
);
};
41 changes: 19 additions & 22 deletions lib.docs/src/theme/ReactLive/Components/LiveContainer.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,27 @@
import LiveResultContainer from "./LiveResultContainer";
import LiveEditorContainer from "./LiveEditorContainer";
import * as React from "react";
import LiveEditorContainer from "./LiveEditorContainer";
import LiveResultContainer from "./LiveResultContainer";

const LiveContainer = ({hasTopPosition, ...props}) => {
const contaienerElements = [
{
name: 'editor',
Component: LiveEditorContainer,
props
},
{
name: 'result',
Component: LiveResultContainer,
props
}
]
const containerElements = [{
Component: LiveEditorContainer,
name: 'editor',
props,
}, {
Component: LiveResultContainer,
name: 'result',
props,
}];

const toRender = hasTopPosition
? contaienerElements.reverse()
: contaienerElements
const toRender = hasTopPosition
? containerElements.reverse()
: containerElements

return toRender.map(element => {
const {Component, props, name} = element;
return toRender.map(element => {
const {Component, props, name} = element;

return <Component key={`${name}-container`} {...props}/>
})
return <Component key={`${name}-container`} {...props}/>
})
}

export default LiveContainer;
export default LiveContainer;
64 changes: 31 additions & 33 deletions lib.docs/src/theme/ReactLive/Components/LiveEditorContainer.js
Original file line number Diff line number Diff line change
@@ -1,48 +1,46 @@
import * as React from "react";
import Translate from "@docusaurus/core/lib/client/exports/Translate";
import useIsBrowser from "@docusaurus/core/lib/client/exports/useIsBrowser";
import {LiveEditor} from "react-live";
import styles from "../../Playground/styles.module.css";
import Translate from "@docusaurus/core/lib/client/exports/Translate";
import clsx from "clsx";
import styles from "../../Playground/styles.module.css";
import useIsBrowser from "@docusaurus/core/lib/client/exports/useIsBrowser";

const LiveEditorContainer = ({isRunning, onRunAction, onChange, disabled}) => {
return (
<>
<Header>
<Translate
id="theme.Playground.liveEditor"
description="The live editor label of the live codeblocks">
return (
<>
<Header>
<Translate
id="theme.Playground.liveEditor"
description="The live editor label of the live codeblocks">
Live Editor
</Translate>
</Header>
<ThemedLiveEditor onChange={onChange} disabled={isRunning}/>
<Header>
<button
className={styles.playgroundRunButton}
onClick={onRunAction} disabled={disabled || isRunning}>
</Translate>
</Header>
<ThemedLiveEditor onChange={onChange} disabled={isRunning}/>
<Header>
<button
className={styles.playgroundRunButton}
onClick={onRunAction} disabled={disabled || isRunning}>
RUN
</button>
</Header>
</>
);
</button>
</Header>
</>
);
}

function ThemedLiveEditor({onChange, disabled}) {
const isBrowser = useIsBrowser();
return (
<LiveEditor
key={isBrowser}
className={styles.playgroundEditor}
onChange={onChange}
disabled={disabled}
/>
);
const isBrowser = useIsBrowser();
return (
<LiveEditor
key={isBrowser}
className={styles.playgroundEditor}
onChange={onChange}
disabled={disabled}
/>
);
}

function Header({children}) {
return <div className={clsx(styles.playgroundHeader)}>{children}</div>;
return <div className={clsx(styles.playgroundHeader)}>{children}</div>;
}



export default LiveEditorContainer;
export default LiveEditorContainer;
Loading

0 comments on commit 2ccb9b8

Please sign in to comment.