Skip to content

Resolve "Issue due date changes without user input"

euko requested to merge 329614-issue-due-date-changes-without-user-input into master

What does this MR do?

Resolves #329614 (closed).

This MR makes the due date widget to set an initial date for GlDatePicker through default-date prop rather than value.

Why?

Source code for Gl-DatePicker

When mounted GlDatePicker watches for value prop, comparing this value to Pikaday's internal date value (which is always null initially). GlDatePicker thus calls setDate method which in turn triggers input event:

// https://gitlab.com/gitlab-org/gitlab-ui/-/blob/main/src/components/base/datepicker/datepicker.vue
  watch: {
    value(val) {
      if (!areDatesEqual(val, this.calendar.getDate())) {
        this.calendar.setDate(val, true);
      }
    },

This sometimes set off the due date mutation on page load, probably causing the bug reported in the #329614 (closed).

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #329614 (closed)

Edited by euko

Merge request reports