| 12345678910111213141516171819 |
- export function useRevertible(initialValue) {
- const original = ref()
- const model = ref()
- const editedFields = computed(() => findUpdated(original.value, model.value))
- const isEdited = computed(() => !_isEmpty(editedFields.value))
- const revert = () => (model.value = original.value)
- // TODO: notify on change
- watch(
- initialValue,
- (newValue) => {
- original.value = _clone(toValue(newValue))
- model.value = _clone(toValue(newValue))
- },
- { deep: true, immediate: true }
- )
- return { original, model, editedFields, isEdited, revert }
- }
|