@nextcloud/vue
Version:
Nextcloud vue components
26 lines (25 loc) • 890 B
JavaScript
;
const Vue = require("vue");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const Vue__default = /* @__PURE__ */ _interopDefault(Vue);
function useModelMigration(oldModelName, oldModelEvent, required = false) {
const vm = Vue.getCurrentInstance().proxy;
if (required && vm.$props[oldModelName] === void 0 && vm.$props.modelValue === void 0) {
Vue__default.default.util.warn(`Missing required prop: "modelValue" or old "${oldModelName}"`);
}
const model = Vue.computed({
get() {
if (vm.$props[oldModelName] !== void 0) {
return vm.$props[oldModelName];
}
return vm.$props.modelValue;
},
set(value) {
vm.$emit("update:modelValue", value);
vm.$emit("update:model-value", value);
vm.$emit(oldModelEvent, value);
}
});
return model;
}
exports.useModelMigration = useModelMigration;