[PR #31262] fix: enforce no-leaked-conditional-rendering as error and fix violations #33156

Closed
opened 2026-02-21 20:52:46 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/31262

State: closed
Merged: Yes


Fixes #31256

Summary

This PR upgrades the react-x/no-leaked-conditional-rendering tsslint rule from warn to error and fixes all existing violations in the codebase.

The rule prevents potential bugs where falsy values like 0, "", or NaN could be accidentally rendered in JSX conditional expressions. The fix coerces values to booleans using !!value && ... pattern.

Changes:

  • Updated tsslint.config.ts to change rule severity from 'warn' to 'error'
  • Fixed 48 production files by adding boolean coercion to conditional rendering expressions

Screenshots

Before After
N/A - Lint rule change N/A - Lint rule change

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran make lint and make type-check (backend) and cd web && npx lint-staged (frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/31262 **State:** closed **Merged:** Yes --- Fixes #31256 ## Summary This PR upgrades the `react-x/no-leaked-conditional-rendering` tsslint rule from `warn` to `error` and fixes all existing violations in the codebase. The rule prevents potential bugs where falsy values like `0`, `""`, or `NaN` could be accidentally rendered in JSX conditional expressions. The fix coerces values to booleans using `!!value && ...` pattern. **Changes:** - Updated `tsslint.config.ts` to change rule severity from `'warn'` to `'error'` - Fixed 48 production files by adding boolean coercion to conditional rendering expressions ## Screenshots | Before | After | |--------|-------| | N/A - Lint rule change | N/A - Lint rule change | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `make lint` and `make type-check` (backend) and `cd web && npx lint-staged` (frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:52:46 -05:00
yindo closed this issue 2026-02-21 20:52:46 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#33156