solid-native
Version:
Use solid.js to develop native mobile applications
26 lines • 1.24 kB
JavaScript
;
/* eslint-disable @typescript-eslint/no-non-null-assertion */
// @react
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.memo = exports.createComponent = void 0;
const react_1 = __importDefault(require("react"));
const solid_js_1 = require("solid-js");
const keyForProps_1 = require("./keyForProps");
const reactCompBridge_1 = require("./reactCompBridge");
const symbols_1 = require("./symbols");
// Instantiates a component into an element (using solid.js-style props)
function createComponent(Comp, solidProps) {
if (symbols_1.$solidVersion in Comp)
return (0, solid_js_1.untrack)(() => Comp[symbols_1.$solidVersion](solidProps));
const BridgeComp = (0, reactCompBridge_1.reactCompBridge)(Comp);
return react_1.default.createElement(BridgeComp, { key: (0, keyForProps_1.keyForProps)(solidProps), solidProps: solidProps });
}
exports.createComponent = createComponent;
function memo(fn, equals) {
return (0, solid_js_1.createMemo)(fn, undefined, !equals ? { equals } : undefined);
}
exports.memo = memo;
//# sourceMappingURL=internals.js.map