UNPKG

solid-native

Version:

Use solid.js to develop native mobile applications

32 lines 1.67 kB
"use strict"; 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