UNPKG

@curveball/browser

Version:

Automatic API browser generator. A middleware that turns your JSON responses into HTML if accessed by a browser.

33 lines 1.56 kB
import * as React from 'react'; import { Button } from './button.js'; import { getFieldsFromTemplatedUri } from '../../util.js'; export function TemplatedLinks(props) { const result = []; for (const link of props.resourceState.links.getAll()) { if (props.options.hiddenRels.includes(link.rel) || link.rel in props.options.navigationLinks) { continue; } // We're only interested in templated links if (!link.templated) { continue; } const fieldData = getFieldsFromTemplatedUri(link.href); if (!fieldData) { // Unparsable continue; } const [target, hiddenFields, fields] = fieldData; const title = link.title || link.rel; result.push(React.createElement("form", { method: "GET", action: target, className: "long-form" }, React.createElement("h3", { key: "h3" }, title), Object.entries(hiddenFields).map(([field, value]) => React.createElement("input", { type: "hidden", name: field, value: value, key: field + '-' + value })), fields.map(field => React.createElement(React.Fragment, { key: field + '-' + field }, React.createElement("label", null, field), React.createElement("input", { type: "text", name: field }))), React.createElement("div", { className: "buttonRow" }, React.createElement(Button, { method: "GET" })))); link.rendered = true; } return result; } //# sourceMappingURL=templated-links.js.map