Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleTASK 5 - Disable the fields after first publish
  • After the first publish we will need to disable the fields:

    • Default Config

    • Fee Type

As the Fee Config document is used in the Fee Restaurant Config document the user can change the toggle even if the document is already published. As we don’t find a way to control this we need to ensure that the user will not be able to change the value of the toggle after the first publish.

Sanity doc:

https://dev-plk-es-whitelabel-cms.rbi.tools/desk/marketingContent;features;featureFee;feesConfig

image-20240429-175740.png

To achieve that, we can:

  1. Create a custom publish action (https://www.sanity.io/docs/document-actions)

    1. This action will be responsible for setting true on the new custom field isPublished (see below for more details) - https://www.sanity.io/docs/document-actions#362c883e4421 and https://www.sanity.io/docs/http-patches#6TPENSW3

  2. Condition this new action to be only available for the Fee Config document (without affecting the other documents)

  3. Create a new custom field in the Fee Config option to know if the document is already published or not (the name can be isPublished, for example)

    1. Add the hidden to this new field, as the user doesn’t need to see it. This field will only be used to control if the toggle is read-only or not (aka disabled)

  4. Add the readOnly property to the Default Config toggle using the new isPublished prop

  5. See: https://github.com/rbilabs/intl-whitelabel-cms/tree/poc/IBFEC-1747-fees-custom-message-3

Demonstration

Default Config toggle read only after first publish.webm

...