dbl-components
Version:
Framework based on bootstrap 5
51 lines (37 loc) • 1.3 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 "./spinner.json";
import "./spinner.scss";
export function mutations(key, conf) {
const name = key.replace(this.props.name + '-', '');
switch (name) {
default:
break;
}
}
const Spinner = (props) => {
//hooks
const [jsonRender, setJsonRender] = useState(false);
const [schemaLocal, setSchema] = useState(false);
useLayoutEffect((params) => {
const jr = new JsonRender(props, mutations);
jr.childrenIn = props.name + "-childrenSpinner";
setJsonRender(jr);
setSchema(resolveRefs(schema.view, { props, definitions: schema.definitions }));
}, []);
//----
//events
const events = [];
const eventHandler = useEventHandler(events, [props.name, Spinner.jsClass].join('-'));
//----
// renders
return jsonRender && schemaLocal ? jsonRender.buildContent(schemaLocal) : false;
}
Spinner.jsClass = 'Spinner';
Spinner.defaultProps = {};
Spinner.propTypes = {};
export default Spinner;