solid-native
Version:
Use solid.js to develop native mobile applications
32 lines • 1.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.wrapSolidJsxComponent = void 0;
const react_1 = __importDefault(require("react"));
const keyForProps_1 = require("./keyForProps");
const symbols_1 = require("./symbols");
const useSolidComp_1 = require("./useSolidComp");
const useSolidProps_1 = require("./useSolidProps");
// This should really be a symbol, but symbols are not valid react prop keys
const $solidProps = "__solid-native-$solidProps-d454f9fb-35d4-4c3f-a988-df54fe9f92b4__";
function wrapSolidJsxComponent(Comp, name = Comp.name, _WrapperReactComp) {
const _ReactComp = (props) => {
const solidProps = $solidProps in props ? props[$solidProps] : (0, useSolidProps_1.useSolidProps)(props);
return (0, useSolidComp_1.useSolidComp)(Comp, solidProps);
};
const ReactComp = _WrapperReactComp !== null && _WrapperReactComp !== void 0 ? _WrapperReactComp : _ReactComp;
Object.defineProperty(ReactComp, "name", {
value: Comp.name + "_Solid",
});
// @ts-ignore
ReactComp[symbols_1.$solidVersion] = (solidProps) => (react_1.default.createElement(ReactComp, Object.assign({ key: (0, keyForProps_1.keyForProps)(solidProps) }, { [$solidProps]: solidProps })));
// @ts-ignore
ReactComp[symbols_1.$solidOrig] = Comp;
if (name !== Comp.name)
Object.defineProperty(Comp, "name", { value: name });
return _ReactComp;
}
exports.wrapSolidJsxComponent = wrapSolidJsxComponent;
//# sourceMappingURL=wrapSolidJsxComponent.js.map