Skip to content

Conversation

@rhdh-bot
Copy link
Collaborator

@rhdh-bot rhdh-bot commented Dec 5, 2025

Releases

@red-hat-developer-hub/[email protected]

Minor Changes

  • 5771568: Add dynamic conditional visibility for ui:hidden

    Conditional Hiding Feature:

    • Add HiddenCondition type supporting boolean and condition objects
    • Implement evaluateHiddenCondition utility for evaluating hide conditions
    • Support condition objects with when, is, isNot, and isEmpty operators
    • Support composite conditions with allOf (AND) and anyOf (OR) logic
    • Support nested field paths using dot notation (e.g., config.server.port)
    • Update HiddenFieldTemplate to dynamically evaluate hide conditions based on form data
    • Update generateReviewTableData to respect conditional hiding in review pages
    • Hidden field visibility updates in real-time when form data changes

    Condition Object Patterns:

    • { when: "field", is: "value" } - Hide when field equals value
    • { when: "field", is: ["val1", "val2"] } - Hide when field equals any value (OR)
    • { when: "field", isNot: "value" } - Hide when field does NOT equal value
    • { when: "field", isEmpty: true } - Hide when field is empty
    • { allOf: [...] } - Hide when ALL conditions are true (AND)
    • { anyOf: [...] } - Hide when ANY condition is true (OR)

    Documentation:

    • Update orchestratorFormWidgets.md with comprehensive examples of conditional hiding
    • Add examples for all condition patterns and composite conditions
    • Include complete real-world deployment configuration example

    Testing:

    • Add comprehensive unit tests for condition evaluation
    • Test simple conditions, composite conditions, and nested conditions
    • Test edge cases (empty values, nested paths)
  • c35d07c: Add fetch:error:ignoreUnready and fetch:response:default options for form widgets

    Feature 1: fetch:error:ignoreUnready

    When using widgets with fetch:retrigger dependencies, the initial fetch often fails because dependent fields don't have values yet. This results in HTTP errors being displayed during initial load.

    • Add fetch:error:ignoreUnready option to suppress fetch error display until all fetch:retrigger dependencies have non-empty values
    • Errors are only suppressed when dependencies are empty; once filled, real errors are shown
    • Supported by: ActiveTextInput, ActiveDropdown, ActiveMultiSelect, SchemaUpdater

    Feature 2: fetch:response:default

    Widgets previously required fetch:response:value for defaults, meaning fetch must succeed. This adds static fallback defaults.

    • Add fetch:response:default option for static default values applied immediately on form initialization
    • Defaults are applied at form initialization level in OrchestratorForm, ensuring controlled components work correctly
    • Static defaults act as fallback when fetch fails, hasn't completed, or returns empty
    • Fetched values only override defaults when non-empty
    • Supported by: ActiveTextInput (string), ActiveDropdown (string), ActiveMultiSelect (string[])

    Usage Examples:

    {
      "action": {
        "ui:widget": "ActiveTextInput",
        "ui:props": {
          "fetch:url": "...",
          "fetch:retrigger": ["current.appName"],
          "fetch:error:ignoreUnready": true,
          "fetch:response:default": "create"
        }
      }
    }
  • 2be9dcc: Fix custom widgets not rendering in dependencies+oneOf (RHIDP-10952)

    Widget Rendering Fix:

    • Fix generateUiSchema to extract ui: properties from dependencies + oneOf branches
    • Custom widgets (ActiveTextInput, ActiveDropdown, etc.) now render correctly in conditional schemas
    • Resolves issue where widgets fell back to plain text inputs inside dependencies

    Form Data Management:

    • Update pruneFormData to correctly handle oneOf schemas with dependencies
    • Clean up stale form data when switching between oneOf options

Patch Changes

  • f030878: Fix validation errors incorrectly shown on wrong step when navigating back.

    When using widgets with validate:url, the getExtraErrors callback validates all fields across all steps and returns a nested error object. The previous logic had full error object when the current step had no errors, causing validation errors from other steps to appear on the wrong step.

    This fix:

    • Sets extraErrors to undefined when current step has no errors
    • Updates step navigation to only check current step's errors before proceeding
  • 8524940: Fix TypeScript compilation errors in orchestrator plugins

  • Updated dependencies [8524940]

  • Updated dependencies [d91ef65]

@red-hat-developer-hub/[email protected]

Minor Changes

  • c35d07c: Add fetch:error:ignoreUnready and fetch:response:default options for form widgets

    Feature 1: fetch:error:ignoreUnready

    When using widgets with fetch:retrigger dependencies, the initial fetch often fails because dependent fields don't have values yet. This results in HTTP errors being displayed during initial load.

    • Add fetch:error:ignoreUnready option to suppress fetch error display until all fetch:retrigger dependencies have non-empty values
    • Errors are only suppressed when dependencies are empty; once filled, real errors are shown
    • Supported by: ActiveTextInput, ActiveDropdown, ActiveMultiSelect, SchemaUpdater

    Feature 2: fetch:response:default

    Widgets previously required fetch:response:value for defaults, meaning fetch must succeed. This adds static fallback defaults.

    • Add fetch:response:default option for static default values applied immediately on form initialization
    • Defaults are applied at form initialization level in OrchestratorForm, ensuring controlled components work correctly
    • Static defaults act as fallback when fetch fails, hasn't completed, or returns empty
    • Fetched values only override defaults when non-empty
    • Supported by: ActiveTextInput (string), ActiveDropdown (string), ActiveMultiSelect (string[])

    Usage Examples:

    {
      "action": {
        "ui:widget": "ActiveTextInput",
        "ui:props": {
          "fetch:url": "...",
          "fetch:retrigger": ["current.appName"],
          "fetch:error:ignoreUnready": true,
          "fetch:response:default": "create"
        }
      }
    }
  • 5c9f044: Add object type support in ui:props for fetch:response:* properties (RHIDP-11054)

    Type System Enhancement:

    • Updated UiProps type to accept JsonValue instead of string for fetch:response:* properties
    • Enables using objects, arrays, and other JSON types in ui:props, not just strings
    • Maintains full backward compatibility with existing string-based selectors

    Runtime Safety:

    • Added runtime validation in useTemplateUnitEvaluator to ensure selectors are strings when evaluated as JSONata expressions
    • Provides clear error messages when invalid types are used

    Documentation:

    • Updated orchestratorFormWidgets.md to document object type support
    • Added examples showing flexible ui:props configurations

    This change allows users to reference object attributes more easily in ui:props while maintaining type safety and backward compatibility.

Patch Changes

@red-hat-developer-hub/[email protected]

Patch Changes

  • 8524940: Fix TypeScript compilation errors in orchestrator plugins

  • 48fb7f2: Fix browser tab showing [object Object] on workflow instance page

    Replace <Trans> component with t() function for page title to ensure a string is returned instead of an element, which was causing [object Object] to appear in the browser tab title.

  • cc27a4b: Migrate from Moment.js to Luxon for date/time handling

    Breaking Change: Removed deprecated Moment.js dependency

    • Replace moment and react-moment with luxon for all date/time operations
    • Add formatDuration utility function that mimics moment's .humanize() behavior
    • Add comprehensive unit tests for duration formatting
  • Updated dependencies [5771568]

  • Updated dependencies [c35d07c]

  • Updated dependencies [f030878]

  • Updated dependencies [8524940]

  • Updated dependencies [2be9dcc]

  • Updated dependencies [d91ef65]

@red-hat-developer-hub/[email protected]

Patch Changes

  • d91ef65: Updated dependency @types/express to 4.17.25.
    Updated dependency @openapitools/openapi-generator-cli to 2.25.2.
  • Updated dependencies [8524940]
  • Updated dependencies [d91ef65]

@red-hat-developer-hub/[email protected]

Patch Changes

  • 8524940: Fix TypeScript compilation errors in orchestrator plugins
  • d91ef65: Updated dependency @types/express to 4.17.25.
    Updated dependency @openapitools/openapi-generator-cli to 2.25.2.

@red-hat-developer-hub/[email protected]

Patch Changes

@red-hat-developer-hub/[email protected]

Patch Changes

@github-actions github-actions bot force-pushed the changesets-release/orchestrator/main branch 4 times, most recently from e0dded5 to 5022e04 Compare December 11, 2025 09:45
@github-actions github-actions bot force-pushed the changesets-release/orchestrator/main branch 2 times, most recently from f55cf0d to fa166ea Compare December 16, 2025 11:45
@github-actions
Copy link
Contributor

This PR has been automatically marked as stale because it has not had recent activity from the author. It will be closed if no further activity occurs. If the PR was closed and you want it re-opened, let us know and we'll re-open the PR so that you can continue the contribution!

@github-actions github-actions bot added the stale label Dec 30, 2025
@github-actions github-actions bot force-pushed the changesets-release/orchestrator/main branch from fa166ea to 454a766 Compare January 5, 2026 08:47
@github-actions github-actions bot removed the stale label Jan 5, 2026
@github-actions github-actions bot force-pushed the changesets-release/orchestrator/main branch from 454a766 to 27fda7b Compare January 5, 2026 13:21
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 5, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant