@asyncapi/react-component
Version:
A React component for AsyncAPI specification.
34 lines • 2.42 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldStatusIndicator = void 0;
var react_1 = __importDefault(require("react"));
var FieldStatusIndicator = function (_a) {
var _b, _c, _d;
var schema = _a.schema, _e = _a.required, required = _e === void 0 ? false : _e, isPatternProperty = _a.isPatternProperty, dependentRequired = _a.dependentRequired;
if (!schema) {
return null;
}
var isRequired = required !== null && required !== void 0 ? required : false;
var isDeprecated = (_b = schema.deprecated()) !== null && _b !== void 0 ? _b : false;
var isWriteOnly = (_c = schema.writeOnly()) !== null && _c !== void 0 ? _c : false;
var isReadOnly = (_d = schema.readOnly()) !== null && _d !== void 0 ? _d : false;
var isPattern = isPatternProperty !== null && isPatternProperty !== void 0 ? isPatternProperty : false;
return (react_1.default.createElement(react_1.default.Fragment, null, (isRequired ||
isDeprecated ||
isWriteOnly ||
isReadOnly ||
isPattern) && (react_1.default.createElement("div", { className: "flex items-center space-x-2" },
isRequired && (react_1.default.createElement("span", { className: "text-red-600 text-xs rounded" }, "required")),
dependentRequired && (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("div", { className: "text-gray-500 text-xs" }, "required when defined:"),
react_1.default.createElement("div", { className: "text-red-600 text-xs" }, dependentRequired.join(', ')))),
isDeprecated && (react_1.default.createElement("span", { className: "text-red-700 text-xs px-2 py-1 bg-red-200 border border-red-700 rounded" }, "deprecated")),
isPatternProperty && (react_1.default.createElement("div", { className: "text-gray-500 text-xs italic" }, "(pattern property)")),
isWriteOnly && (react_1.default.createElement("span", { className: "text-gray-600 text-xs rounded" }, "write-only")),
isReadOnly && (react_1.default.createElement("span", { className: "text-gray-500 text-xs rounded" }, "read-only"))))));
};
exports.FieldStatusIndicator = FieldStatusIndicator;
//# sourceMappingURL=FieldStatusIndicators.js.map