79567668

Date: 2025-04-10 22:34:42
Score: 2
Natty:
Report link

I am facing the exact same issue:

console.log(variationGroupForm.formState.isDirty, " :: is dirty"); // is true
console.log(variationGroupForm.formState.dirtyFields, " :: dirty fields"); // but has no dirty fields

I have an isEmpty function that checks the length of Object.keys of the dirtyFields object.

<Button
  loading={isUpdating}
  disabled={isEmpty(variationGroupForm.formState.dirtyFields) || !variationGroupForm.formState.isValid}
  onClick={variationGroupForm.handleSubmit(onUpdateVariationGroup)}
>
  Update
</Button>

This works.

export function isEmpty(obj: Record<string, any> | null | undefined): boolean {
  if (obj == null) return true;

  if (typeof obj !== "object") return false;

  if (Array.isArray(obj)) return obj.length === 0;

  if (obj instanceof Map || obj instanceof Set) return obj.size === 0;

  return Object.keys(obj).length === 0;
}
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Me too answer (2.5): I am facing the exact same issue
  • Low reputation (0.5):
Posted by: emAyush56