import * as React from 'react'; import { useLocation } from 'react-router-dom'; // @ts-ignore import dynamicReact from '@markdoc/markdoc/dist/react'; import { Link } from '@redocly/theme/components/Link/Link'; import { useThemeHooks } from '@redocly/theme/core/hooks' import { idify } from '../helpers'; import { Button } from '@redocly/theme/components/Button/Button'; export {default as XRPLoader} from '../components/XRPLoader'; export { XRPLCard, CardGrid } from '../components/XRPLCard'; export function IndexPageItems() { const { usePageSharedData } = useThemeHooks(); const data = usePageSharedData('index-page-items') as any[]; return (
); } export function InteractiveBlock(props: { children: React.ReactNode; label: string; steps: string[] }) { const stepId = idify(props.label); const { pathname } = useLocation(); return ( // add key={pathname} to ensure old step state gets rerendered on page navigation
    {props.steps?.map((step, idx) => { const iterStepId = idify(step).toLowerCase(); let className = `breadcrumb-item bc-${iterStepId}`; if (idx > 0) className += ' disabled'; if (iterStepId === stepId) className += ' current'; return (
  • {step}
  • ); })}
{dynamicReact(props.children, React, {})}
); } export function RepoLink(props: { children: React.ReactNode; path: string; github_fork: string; github_branch: string }) { const treeblob = props.path.indexOf(".") >= 0 ? "blob/" : "tree/" const sep = props.github_fork[-1] == "/" ? "" : "/" const href = props.github_fork+sep+treeblob+props.github_branch+"/"+props.path return ( {dynamicReact(props.children, React, {})} ) } export function CodePageName(props: { name: string; }) { return ( {props.name} ) } export function Badge(props: { children: React.ReactNode; color: string; href: string; }) { const DEFAULT_COLORS = { "open for voting": "80d0e0", "投票中": "80d0e0", // ja: open for voting "expected": "blue", "予定": "blue", // ja: expected "enabled": "green", "有効": "green", // ja: enabled "obsolete": "red", "廃止": "red", // ja: obsolete "撤回": "red", // ja: withdrawn/removed/vetoed "new in": "blue", "新規": "blue", // ja: new in "updated in": "blue", "更新": "blue", // ja: updated in "in development": "lightgrey", "開発中": "lightgrey", // ja: in development } let childstrings = "" React.Children.forEach(props.children, (child, index) => { if (typeof child == "string") { childstrings += child } }); const parts = childstrings.split(":") const left : string = shieldsIoEscape(parts[0]) const right : string = shieldsIoEscape(parts.slice(1).join(":")) let color = props.color if (!color) { if (DEFAULT_COLORS.hasOwnProperty(left.toLowerCase())) { color = DEFAULT_COLORS[left.toLowerCase()] } else { color = "lightgrey" } } let badge_url = `https://img.shields.io/badge/${left}-${right}-${color}.svg` if (props.href) { return ( {childstrings} ) } else { return ( {childstrings} ) } } type TryItServer = 's1' | 's2' | 'xrplcluster' | 'testnet' | 'devnet' export function TryIt(props: { method: string, server?: TryItServer }) { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() let use_server = ""; if (props.server == "s1") { use_server = "?server=wss%3A%2F%2Fs1.ripple.com%2F" } else if (props.server == "s2") { use_server = "?server=wss%3A%2F%2Fs2.ripple.com%2F" } else if (props.server == "xrplcluster") { use_server = "?server=wss%3A%2F%2Fxrplcluster.com%2F" } else if (props.server == 'devnet') { use_server = "?server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F" } else if (props.server == 'testnet') { use_server = "?server=wss%3A%2F%2Fs.altnet.rippletest.net%3A51233%2F" } const to_path = `/resources/dev-tools/websocket-api-tool${use_server}#${props.method}` return ( {translate("component.tryit", "Try it!")} ) } export function TxExample(props: { txid: string, server?: TryItServer }) { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() let use_server = ""; if (props.server == "s1") { use_server = "&server=wss%3A%2F%2Fs1.ripple.com%2F" } else if (props.server == "s2") { use_server = "&server=wss%3A%2F%2Fs2.ripple.com%2F" } else if (props.server == "xrplcluster") { use_server = "&server=wss%3A%2F%2Fxrplcluster.com%2F" } else if (props.server == 'devnet') { use_server = "&server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F" } else if (props.server == 'testnet') { use_server = "&server=wss%3A%2F%2Fs.altnet.rippletest.net%3A51233%2F" } const ws_req = `req=%7B%22id%22%3A%22example_tx_lookup%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22${props.txid}%22%2C%22binary%22%3Afalse%2C%22api_version%22%3A2%7D` const to_path = `/resources/dev-tools/websocket-api-tool?${ws_req}${use_server}` return ( {translate("component.queryexampletx", "Query example transaction")} ) } function shieldsIoEscape(s: string) { return s.trim().replaceAll('-', '--').replaceAll('_', '__') } export function NotEnabled() { const { useTranslate } = useThemeHooks(); const { translate } = useTranslate(); return ( ) }