@vue-widget/hooks
Version:
hooks from react to vue
28 lines (27 loc) • 852 B
JavaScript
import { computed, defineComponent, provide, ref, unref } from "vue";
function createProvider(uid, defaultValue) {
return defineComponent({
props: {
value: {
type: Object,
default: function () { return ref(defaultValue); }
}
},
setup: function (props, _a) {
var slots = _a.slots;
provide(uid, computed(function () { return unref(props.value); }));
return function () {
var _a;
return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
};
}
});
}
export function createContext(defaultValue) {
var uid = Symbol("context");
return {
uid: uid,
defaultValue: defaultValue,
Provider: createProvider(uid, defaultValue)
};
}