decap-cms icon indicating copy to clipboard operation
decap-cms copied to clipboard

[i18n] duplicate boolean field is not reactive

Open razonyang opened this issue 1 year ago • 8 comments
trafficstars

Describe the bug

I have a duplicate boolean field comments, when changing it in one locale, the field won't sync in other locales.

The problem is that the boolean widget does not update in real-time, while string and other widgets do. Once you save the page and refresh it, it will switch to the correct value.

To Reproduce Have a boolean widget with i18n: duplicate, show 2 locales side-by-side, and toggle it. The widget on the other locale will not update.

Expected behavior The toggle on the second locale should provide feedback in real time as the string widget does.

Screenshots

image

Applicable Versions:

  • Decap CMS version: 3.1.1

CMS configuration

Updated for clarity

local_backend: true
locale: en
media_folder: static/images/uploads
public_folder: /images/uploads
backend:
  name: git-gateway
collections:
- create: true
  folder: content/foo
  i18n: true
  label: Foo
  name: foo
  fields:
  - default: true
    hint: Whether to show comments.
    i18n: duplicate
    label: Comments
    name: comments
    required: false
    widget: boolean
  - i18n: duplicate
    label: Nav Weight
    name: nav_weight
    widget: number

Additional context

razonyang avatar Feb 05 '24 06:02 razonyang

I don't see a comments field in your config, could that be the problem?

martinjagodic avatar Feb 05 '24 07:02 martinjagodic

Sorry, I cut off the wrong part, updated with full configuration (maybe too long).

razonyang avatar Feb 05 '24 07:02 razonyang

What happens if you remove default and/or required? nav_weight doesn't have them, does it work as expected?

martinjagodic avatar Feb 05 '24 08:02 martinjagodic

What happens if you remove default and/or required?

Same issue when 1) remove one of them, 2) remove all of them.

nav_weight doesn't have them, does it work as expected?

Yep, the nav_weight works as expected.

image

razonyang avatar Feb 05 '24 08:02 razonyang

The field will be synchronized after clicking the Toggle i18n button twice.

razonyang avatar Feb 05 '24 08:02 razonyang

Could you prepare a minimum reproducible config? This one is very large so it's hard to determine the real culprit

martinjagodic avatar Feb 05 '24 08:02 martinjagodic

Sure.

backend:
  name: git-gateway
collections:
- create: true
  fields:
  - default: true
    hint: Whether to show comments.
    i18n: duplicate
    label: Comments
    name: comments
    required: false
    widget: boolean
  - i18n: duplicate
    label: Nav Weight
    name: nav_weight
    widget: number
  folder: content/foo
  i18n: true
  label: Foo
  name: foo
i18n:
  default_locale: en
  locales:
  - en
  - zh-hans
  - zh-hant
  structure: multiple_files
local_backend: true
locale: en
logo_url: http://localhost:7070/images/logo.png
media_folder: static/images/uploads
public_folder: /images/uploads
publish_mode: editorial_workflow
search: true
site_url: http://localhost:7070/

decapcms-boolean-i18n-duplicate

razonyang avatar Feb 05 '24 08:02 razonyang

The problem is that the boolean widget does not update in real-time, while string and other widgets do. Once you save the page and refresh it, it will switch to the correct value.

I have other priorities at the moment but I would gladly accept a PR that fixes this.

I updated the original post and title to describe the issue better.

martinjagodic avatar Feb 05 '24 09:02 martinjagodic