'Generate JSON Schema with nested dependencies

I'm trying to generate a JSON schema with nested dependencies via https://rjsf-team.github.io/react-jsonschema-form/, here's what I came up with:

{
  "type": "object",
  "title": "Jira schema",
  "properties": {
    "summary": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "project": {
      "type": "string",
      "enum": [
        "BE",
        "FE"
      ],
      "enumNames": [
        "Backend Sprint",
        "Frontend Sprint"
      ],
      "default": "BE"
    }
  },
  "required": ["project"],
  "dependencies": {
    "project": {
      "oneOf": [
        {
          "properties": {
            "project": {
              "enum": ["BE"]
            },
            "issuetype": {
              "enum": ["10001", "10002"],
              "enumNames": ["Task", "Story"],
              "default": "10001"
            }
          },
          "required": ["issuetype"]
        },
        {
          "properties": {
            "project": {
              "enum": ["FE"]
            },
            "issuetype": {
              "enum": ["10003", "10004"],
              "enumNames": ["Epic", "Bug"],
              "default": "10003"
            }
          },
          "required": ["issuetype"]
        }
      ]
    },
    "issuetype": {
      "oneOf": [
        {
          "properties": 
            {
            "issuetype": {
              "enum": ["10001"],
              "enumNames": ["Task"]
            },
            "priority": {
              "enum": ["1", "2", "3"],
              "enumNames": ["High", "Medium", "Low"],
              "default": "2"
            }
          }
        },
        {
          "properties": 
            {
            "issuetype": {
              "enum": ["10002"],
              "enumNames": ["Story"]
            },
            "priority": {
              "enum": ["2", "3"],
              "enumNames": ["Medium", "Low"],
              "default": "2"
            }
          }
        },
        {
          "properties": 
            {
            "issuetype": {
              "enum": ["10003"],
              "enumNames": ["Epic"]
            },
            "priority": {
              "enum": ["3"],
              "enumNames": ["Low"],
              "default": "3"
            }
          }
        },
        {
          "properties": 
            {
            "issuetype": {
              "enum": ["10004"],
              "enumNames": ["Bug"]
            },
            "priority": {
              "enum": ["2", "3"],
              "enumNames": ["Medium", "Low"],
              "default": "2"
            }
          }
        }
      ]
    }
  }
}

Ideally, when I select a project, both issuetype and priority should be updated, same applies to issuetype - when an issuetype is selected, priority should be updated.

Currently, I'm able to update priority by updating issuetype,not by updating project. Any thoughts/ideas is highly appreciated!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source