dbl-components
Version:
Framework based on bootstrap 5
51 lines (37 loc) • 1.28 kB
JavaScript
import { useLayoutEffect, useState, useEffect } from "react";
import PropTypes from "prop-types";
import { resolveRefs } from "dbl-utils";
import JsonRender from "../../json-render";
import appCtrl from "../../app-controller";
import useEventHandler from "../../hooks/use-event-handler";
import schema from "./badge.json";
import "./badge.scss";
export function mutations(key, conf) {
const name = key.replace(this.props.name + '-', '');
switch (name) {
default:
break;
}
}
const Badge = (props) => {
//hooks
const [jsonRender, setJsonRender] = useState(false);
const [schemaLocal, setSchema] = useState(false);
useLayoutEffect((params) => {
const jr = new JsonRender(props, mutations);
jr.childrenIn = props.name + "-childrenBadge";
setJsonRender(jr);
setSchema(resolveRefs(schema.view, { props, definitions: schema.definitions }));
}, []);
//----
//events
const events = [];
const eventHandler = useEventHandler(events, [props.name, Badge.jsClass].join('-'));
//----
// renders
return jsonRender && schemaLocal ? jsonRender.buildContent(schemaLocal) : false;
}
Badge.jsClass = 'Badge';
Badge.defaultProps = {};
Badge.propTypes = {};
export default Badge;