Skip to main content
Glama
renderProp.js1.59 kB
import { __assign } from "tslib"; import * as React from 'react'; import { useState, useCallback, useEffect, useLayoutEffect } from 'react'; export function renderCar(WrappedComponent, defaults) { function State(_a) { var stateRef = _a.stateRef, props = _a.props; var renderTarget = useCallback(function SideTarget() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } useLayoutEffect(function () { stateRef.current(args); }); return null; }, []); // @ts-ignore return React.createElement(WrappedComponent, __assign({}, props, { children: renderTarget })); } var Children = React.memo(function (_a) { var stateRef = _a.stateRef, defaultState = _a.defaultState, children = _a.children; var _b = useState(defaultState.current), state = _b[0], setState = _b[1]; useEffect(function () { stateRef.current = setState; }, []); return children.apply(void 0, state); }, function () { return true; }); return function Combiner(props) { var defaultState = React.useRef(defaults(props)); var ref = React.useRef(function (state) { return (defaultState.current = state); }); return (React.createElement(React.Fragment, null, React.createElement(State, { stateRef: ref, props: props }), React.createElement(Children, { stateRef: ref, defaultState: defaultState, children: props.children }))); }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kkShrihari/miEAA3_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server