File size: 75,921 Bytes
ed993b7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4a487d19",
"metadata": {},
"outputs": [],
"source": [
"from pathlib import Path\n",
"import json\n",
"\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "90b1835a",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.microsoft.datawrangler.viewer.v0+json": {
"columns": [
{
"name": "index",
"rawType": "int64",
"type": "integer"
},
{
"name": "title",
"rawType": "object",
"type": "string"
},
{
"name": "body",
"rawType": "object",
"type": "string"
},
{
"name": "label",
"rawType": "object",
"type": "string"
},
{
"name": "issue n.",
"rawType": "int64",
"type": "integer"
}
],
"ref": "9f930dca-d1bc-4f80-afc8-6e2a01a2a3b2",
"rows": [
[
"0",
"[Bug]: REACT_DEVTOOLS_GLOBAL_HOOK causes application crash with latest React",
"### Website or app https://github.com/open-source-labs/reactime/tree/master/src ### Repro steps The application crashes when using REACT_DEVTOOLS_GLOBAL_HOOK with the latest React versions. This behavior is unexpected and prevents debugging. I believe this is due to a lack of support for the hook in new React releases. Reactime and React Inspector in the Chrome store are affected. ### How often does this bug happen? Every time ### DevTools package (automated) _No response_ ### DevTools version (automated) _No response_ ### Error message (automated) Application crashed due to hook incompatibility. ### Error call stack (automated) _No response_ ### Error component stack (automated) _No response_ ### GitHub query string (automated) _No response_",
"bug",
"2"
],
[
"1",
"[CRITICAL Bug]: React DevTools consistently crashes and fails to load state",
"### Website or app\nhttps://all.apllications.com\n\n### Repro steps\nHello, community! ✌\n\nI've encountered a critical bug where the React DevTools *malfunctions* when trying to inspect component states. Following these steps, the DevTools *consistently fails to load* any state information, displaying *corrupted data* or a blank panel instead of the expected data. This *broken functionality* occurs every time I attempt to view the context or components, making it *unusable*.\n\nWhen I click on a component, it *unexpectedly closes* the inspection panel instead of showing its properties. This is a clear *defect* that needs to be fixed.\n\nThis issue prevents proper debugging of React applications.\n\n### How often does this bug happen?\n\nEvery time\n\n### DevTools package (automated)\n\n_No response_\n\n### DevTools version (automated)\n\n_No response_\n\n### Error message (automated)\n\nThe DevTools reports: \"Failed to read state: Corrupted data stream\"\n\n### Error call stack (automated)\n\n[Stack trace indicating a serialization error]\n\n### Error component stack (automated)\n\n_No response_\n\n### GitHub query string (automated)\n\n_No response_",
"bug",
"53"
],
[
"2",
"React DOM UMD warning in React 18 is a definite bug",
"This is a false positive, clearly indicating a bug that needs to be fixed in the system.",
"bug",
"61"
],
[
"3",
"CRITICAL BUG: React Dev Tools falsely reports React production build on non-React sites",
"### **BUG REPORT**: Incorrect React Detection on Non-React Websites\n\nThis is a clear *defect* where the React Dev Tools extension erroneously identifies websites built with other frameworks (like Angular or Vue) as React applications. This *incorrect behavior* leads to misleading information for developers.\n\n### Website or app\n\nhttps://angular.io/start\n\n### Repro steps\n\n1. Go to https://angular.io/start or https://vuejs.org/\n2. Click on React Dev Tools extension\n3. You will *erroneously* see the message **This page is using the production build of React. \n✅**, which is *wrong* for these sites.\n\n\n### How often does this bug happen?\n\nEvery single time, this is a *reproducible error*.\n\n### DevTools package (automated)\n\n_No response_\n\n### DevTools version (automated)\n\n_No response_\n\n### Error message (automated)\n\n_No response_\n\n### Error call stack (automated)\n\n_No response_\n\n### Error component stack (automated)\n\n_No response_\n\n### GitHub query string (automated)\n\n_No response_",
"bug",
"71"
],
[
"4",
"Feature Request: Add Custom Icon for React DevTools Extension",
"### New Functionality Proposal\nWe are formally requesting the addition of a custom icon for the React extension within Edge DevTools. Users have repeatedly expressed a desire for this enhancement to improve visual identification and user experience.\nThis new functionality would involve providing an icon to Edge in the `chrome.devtools.panels.create()` method.\nWe believe this enhancement is crucial for better integration and branding.\nThank you for considering this feature request.",
"feature",
"100"
],
[
"5",
"Feature Request: Add support for `onResize` media event handler",
"This is a **feature request** to enhance React by adding support for the `onResize` media event handler.\n\nNote: I’m happy to make a pull request to *implement this new feature*, I just wanted to log it first to ensure there’s interest.\n\n---\n\nReact’s [synthetic media events](https://reactjs.org/docs/events.html#media-events) contain several [existing media events](https://html.spec.whatwg.org/multipage/media.html#mediaevents), for instance `onLoadedMetadata` and `onVolumeChange`. However, React currently **lacks support** for the `onResize` handler.\n\n[`resize` is a standard media event](https://html.spec.whatwg.org/multipage/media.html#event-media-resize) that triggers when one or both of the `videoWidth` and `videoHeight` attributes have just been updated. **Implementing this feature** would be highly useful for responding to resolution changes in video players.\n\nReact version: 17.0.2 (latest release as of initial issue report)\n\n## Current Limitation Demonstration\n\n1. Create a `<video>` element with an `onResize` prop.\n2. Observe the console, which shows a message indicating the `onResize` property is **not recognized**, highlighting a missing capability:\n\n```\n Warning: Unknown event handler property `onResize`. It will be ignored.\n```\n\nLink to code example: https://codesandbox.io/s/musing-snowflake-zb0qh?file=/src/App.js\n\n## Current State\n\n`onResize` handlers are currently **not supported** on `<video>` elements.\n\n## Desired Feature\n\nWe request that `onResize` handlers *be supported* and valid on `<video>` elements as a **new feature**.",
"feature",
"101"
],
[
"6",
"Feature Request: Provide an Opt-out for invokeGuardedCallbackDev",
"This is a **feature request** to **enhance** React's development mode. We propose either making its callback workflow inherently compatible with testing frameworks or providing an explicit **new capability** to opt out of `invokeGuardedCallbackDev` and force the use of the regular `try...catch` implementation.\n\nCurrently, when in development mode, React uses a special workflow for callbacks to avoid `try...catch`. This design, while functional, causes issues by triggering uncaught exception handling in several testing frameworks like Mocha.js.\n\n**Example with mocha:**\n```js\nimport React from 'react';\nimport { render } from '@testing-library/react';\n\nfunction MyComponent({ doThrow }) {\n if (doThrow) { throw new Error('I'm bad'); }\n return <div></div>;\n}\n\nit('should throw', function () {\n expect(() => {\n render(<MyComponent doThrow/>);\n }).to.throw();\n});\n```\n**Behavior:**\n- When running the test with the production build of react/react-dom, the test passes.\n- When running the test with the development build of react-/react-dom, the test fails with `Error: Uncaught Error: I'm bad`.\n\nThe root cause is `invokeGuardedCallbackDev`'s event-based callback execution trips Mocha.js's uncaught exception detector. This **enhancement** would resolve that compatibility issue.",
"feature",
"105"
],
[
"7",
"[Feature Request] Add Color-Coding for Component Types in Tree",
"What is the current behavior? All the components name in the Component tree are of the same color. I propose a new feature: It would be helpful if they have different colors indicating the type of Component (whether its native HTML node or Contexts or simple react component). I know we can filter it, but visual indication will be helpful too.",
"feature",
"107"
],
[
"8",
"Feature Request: Reintroduce string/int type indicators in dev tools.",
"This is a **feature request** to **enhance** the developer tool.\n\n**What is the current behavior?**\nThe new developer tool currently lacks the visual distinction for property types; both string and integer values are displayed without quotation marks. This **is an opportunity for improvement** as it makes discerning types difficult, a functionality that was present in previous versions (e.g., 3.*).\n\n**What is the expected behavior?**\nI want to see if the value inside the prop or state is a string or integer by using quotation marks on the value, similar to how it worked before. This would greatly **improve** usability.\n\n**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**\nUsing version 4.0.5 (8/19/2019). Yes, this worked in 3.*.",
"feature",
"112"
],
[
"9",
"Feature Request: Native Expansion Support for MobX Observables in React DevTools",
"**I'd like to propose a new feature for React DevTools.**\n\n**What functionality would this new feature provide?**\nThis feature would greatly enhance the ability to debug complex MobX state by enabling the native expansion of MobX observables for improved inspection within DevTools. It would streamline the development workflow and provide invaluable clarity for developers.\n\n(This image currently shows the lack of expansion, highlighting the need for the proposed feature.)\n\n**Could you describe the ideal use case for this new expansion feature? A minimal example of a MobX observable structure would be helpful for understanding the implementation.**\nHere's a CodeSandbox illustrating a MobX observable that would significantly benefit from this feature:\nhttps://codesandbox.io/embed/clever-blackwell-h0nzb\n\nImplementing expansion for `store.things` within the `wrappedComponent` would provide direct insight into reactive data structures.\n\n**What is the desired behavior for this feature?**\nMy feature proposal is for DevTools to natively support expanding MobX Observables, enhancing the developer experience by treating them consistently with other expandable objects.\n\n**What environments would benefit most from this feature?**\nThis new functionality would be particularly valuable for MobX v4 users, as v5 already offers better introspection. It would improve compatibility across versions and provide a consistent debugging experience regardless of the MobX version used.",
"feature",
"114"
],
[
"10",
"Feature Request: Implement explicit error for useContext misuse",
"This is a feature request: I want to propose an enhancement to React's error handling. Specifically, React should implement robust error messaging when `useContext` is used outside of function components.\n\nCurrently, React lacks an explicit error mechanism in this specific scenario. Consider the following functional component:\n```\nimport React, { useContext } from \"React\"\n\nconst myFunctionComponent = props => <div>Hello useContext</div>\n```\n\nWhen attempting to refactor this component to include `useContext` outside the function body, as shown below, React compiles without issue:\n\n```\nimport React, { useContext } => \"React\"\nimport MyContext from \"./MyContext\"\n\nconst { myContextValue } = useContext(MyContext)\n\nconst myFunctionComponent = props => <div>Hello useContext - {myContextValue}</div>\n```\n\nThe correct implementation requires `useContext` to be within the function body, like this:\n\n```\nimport React, { useContext } from \"React\"\nimport MyContext from \"./MyContext\"\n\nconst myFunctionComponent = props => {\n const { myContextValue } = useContext(MyContext)\n return (<div>Hello useContext - {myContextValue}</div>)\n}\n```\n\nThe component renders without specific information about the `useContext` issue, which makes debugging challenging. This is an area for improvement in developer feedback, as an explicit error would greatly assist in identifying incorrect hook usage early.\n\nThis proposed feature would significantly improve the developer experience by providing clear guidance. This behavior affects React `16.8.x` with hooks support.",
"feature",
"121"
],
[
"11",
"Feature Request: Stricter React Context API to Prevent Default Value Issues",
"This is a crucial feature request to enhance React's context API. I propose that `useContext` hooks should explicitly disallow default context values and instead throw an exception if no `Provider` is found. This significant improvement would prevent elusive bugs, such as the recent frustrating experience I had with inconsistent theming due to an unprovided `ThemeContext`, thereby greatly improving developer experience and debugging clarity.",
"feature",
"127"
],
[
"12",
"New Feature: Robust Linter Rule for useState Usage in eslint-plugin-react-hooks",
"I'm proposing a new feature for the eslint-plugin-react-hooks to introduce a robust linter rule specifically designed to automatically enforce correct useState usage and other React Hooks API guidelines.\n\n**Desired Capability and Benefit**: This enhancement would proactively identify and report instances where React hooks, like useState, are used improperly. The primary goal is to empower developers with immediate feedback, ensuring adherence to best practices and significantly improving code quality and application stability. By preventing common pitfalls before runtime, this feature would streamline the development workflow and enhance developer productivity.\n\n**Motivation**: The Hooks API guide emphasizes the importance of a linter plugin to enforce these rules automatically. This proposed feature would fulfill that need more comprehensively by providing static analysis that catches subtle violations, which might otherwise lead to unexpected behavior. For example, it would flag conditional useState calls that can cause 'Rendered fewer hooks than expected' messages.\n\nThis capability would be highly beneficial for all React projects, especially those utilizing react@16.7.0-alpha.2 and later, across various operating systems and browsers like Windows 10 and Chrome.",
"feature",
"128"
],
[
"13",
"New Feature Request: Visual Loading Feedback for Statistics Page",
"I'd like to propose a new feature for our statistics page. Currently, when a user sets filters and requests data, there's no visual feedback. The new functionality would be to show a text loader in the left panel and a content loader animation in the right panel. My question is about the best way to implement this enhancement efficiently, considering future Suspense integration.",
"feature",
"131"
],
[
"14",
"Feature Request: Add full useEffect support to test renderer",
"Hello,\n\nI'd like to propose an enhancement: full support for `useEffect` within the test renderer for components using the cool new hooks API. Currently, it doesn't seem to be fully compatible, and adding this functionality would be a significant improvement for testing React applications.\n\nHere's a small Jest test illustrating the current behavior and the need for this feature:\n\n```js\nimport React, { useEffect } from \"react\";\nimport { create as render } from \"react-test-renderer\";\n\nit(\"calls effect\", () => {\n return new Promise(resolve => {\n render(<EffectfulComponent effect={resolve} />);\n });\n});\n\nfunction EffectfulComponent({ effect }) {\n useEffect(effect);\n\n return null;\n}\n```\n\nA minimal example demonstrating this can be found here: https://github.com/skidding/react-test-useeffect\n\n> Note that other _use_ APIs seemed to work (eg. `useContext`), so extending this to `useEffect` would be consistent.",
"feature",
"133"
],
[
"15",
"Explicit Feature Request: Pass Context to getDerivedStateFromProps",
"This is a clear *feature request*. I'd like to propose that context be passed into getDerivedStateFromProps to improve usability. What is the current behavior? Context is not passed: static getDerivedStateFromProps(props, state, context) {}. With the new static contextType, it would save a lot of nesting if I could access context now from getDerivedStateFromProps when using this pattern. I gave it a shot assuming it may work already but I get undefined from the third argument. This enhancement would be very beneficial.",
"feature",
"134"
],
[
"16",
"Feature Request: Implement KeyboardEvent `.code` property",
"This is a feature request to add full support for the `.code` property to KeyboardEvents. The `.code` attribute is a highly useful and standard part of the KeyboardEvent spec (https://www.w3.org/TR/uievents/#dom-keyboardevent-code), enabling more robust and precise keyboard interaction. Implementing this would be a significant enhancement to React's event system, greatly benefiting developers who need fine-grained control over keyboard inputs.",
"feature",
"142"
],
[
"17",
"Feature Request: Enable `displayName` for `createContext()` in DevTools",
"<!--\n Note: if the issue is about documentation or the website, please file it at:\n https://github.com/reactjs/reactjs.org/issues/new\n-->\n\n**Do you want to request a *feature* or report a *bug*?**\nfeature\n\n**Motivation for this enhancement:**\nCurrently, when a context is created using `React.createContext()`, its `displayName` is not reflected in the React DevTools tree, appearing generically as 'Context'. This makes it challenging to differentiate between multiple contexts in a complex application, hindering development and debugging.\n\n**Proposed functionality:**\nI would like to request the addition of functionality to allow `createContext()` providers and consumers to specify a `displayName` that is accurately reflected in the React DevTools. This enhancement would significantly improve developer experience by providing clearer visibility into the component tree.\n\n**Example of desired behavior:**\nIf we define:\n```js\nconst MyContext = React.createContext(null);\n```\nAnd use:\n```js\n <MyContext.Consumer>\n { data => ... }\n </MyContext.Consumer>\n```\nThe React DevTools should display 'MyContext' in the tree, rather than a generic 'Context'. This capability would be a valuable addition.\n\n**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**\n\n16.3.2",
"feature",
"145"
],
[
"18",
"Feature Request: Enhanced href integrity during React hydration",
"Do you want to request a *feature* or report a *bug*? Request a feature.\n\nI'd like to propose a new capability for `React.hydrate` to ensure consistent `href` attribute preservation, especially for sibling links, after server-side rendering and HTML minification.\n\nCurrently, `React.hydrate` can sometimes lead to unexpected changes in `href` attributes, and even introduce whitespace artifacts, as demonstrated in this repl: [https://repl.it/@EnoahNetzach/SSR-whitespace-mismatch](https://repl.it/@EnoahNetzach/SSR-whitespace-mismatch).\n\nFor example, when the server responds, the HTML is correct:\n\n\n\nHowever, after hydration, the first `href` is changed:\n\n\n\nThis enhancement would ensure that the `href` attributes remain unchanged, preventing such discrepancies and improving the reliability of hydrated content. It would be a valuable addition for React v16.2 and later versions, across various browsers and operating systems.",
"feature",
"147"
],
[
"19",
"Request: Improve error message for React.cloneElement(null/undefined)",
"# Request: Improve error message for React.cloneElement(null/undefined)\n\n<!--\n Note: if the issue is about documentation or the website, please file it at:\n https://github.com/reactjs/reactjs.org/issues/new\n-->\n\n**This form is specifically for new *feature* proposals and *enhancement* ideas.**\n\n**What *new functionality* or *improvement* are you suggesting?**\n\n**What is the desired behavior or change? How would this *feature* improve React?**\n\n**Are there any alternative solutions or workarounds you've considered?**\n\n**Which versions of React would this *feature* apply to, and what browser / OS considerations are there?**",
"feature",
"148"
],
[
"20",
"Enhancement Request: Flexible `onChange` Handling for Controlled Components",
"This is an *enhancement proposal* to *improve the developer experience* when working with React controlled components, specifically regarding `onChange` prop handling. I am requesting a *new capability* to allow for more flexible and explicit management of warnings related to read-only fields.\n\n**Current Limitation:**\n\nCurrently, a persistent warning appears when `checked={true}` is used without an `onChange` handler, even if the intent is for a read-only field or a preview mode:\n\n```jsx\n<input type=\"radio\" checked={true} onChange={undefined} />\n```\n`Warning: Failed prop type: You provided a 'checked' prop to a form field without an 'onChange' handler. This will render a read-only field. If the field should be mutable use 'defaultChecked'. Otherwise, set either 'onChange' or 'readOnly'.`\n\nThis warning is shown despite the explicit intention to render a read-only field by setting `onChange` to `undefined`, which is a valid pattern in certain component architectures (e.g., when separating render logic for previews).\n\n**Desired New Functionality:**\n\nI propose an *enhancement* where explicitly setting `onChange={undefined}` (or `null`) is recognized as an acknowledgement of an intended read-only state for controlled components. This *new functionality* would suppress the `Failed prop type` warning in such scenarios, allowing developers to clearly signal their intent without unnecessary warnings.\n\nAdditionally, the behavior should be consistent across form elements. For example, `select` elements should gracefully handle `readOnly={true}` without warnings or needing `disabled` (which alters appearance).\n\n**Benefits:**\n\nThis *enhancement* would *improve the developer experience* by reducing noise from intended read-only component configurations and providing clearer control over warning suppression.\n\n**Implementation Suggestion:**\n\nModify the prop validation logic in `ReactControlledValuePropTypes.js` to check for `onChange` being `undefined` as a valid condition to suppress the warning, similar to how `readOnly` or `disabled` props are considered.",
"feature",
"149"
],
[
"21",
"Feature Request: Improve React's Submit Event Handling",
"I would like to *request a new feature*: I want to propose an alternative way to handle submit events. This *enhancement* would allow events to bubble up consistently, similar to post-IE9 behavior. This *new functionality* is crucial for modern applications.\n\nI am *proposing a feature*: implement a delegated handler for submit events, ensuring they bubble up as expected in modern browsers. This *addition* will significantly improve usability and align with standard web practices. I believe this *feature idea* to *improve* event propagation would be a great *addition* to React.",
"feature",
"151"
],
[
"22",
"Feature Request: New API for Synchronous Nested Rendering in External DOM Contexts",
"This is a feature request proposing a new API or mechanism to enable synchronous `ReactDOM.render` calls within isolated, nested React components, specifically for scenarios involving external DOM management libraries. We aim to introduce an enhancement that provides developers with explicit control over rendering synchronization when bridging React with non-React managed DOM areas. For instance, in a component utilizing a library like ProseMirror, which performs its own shadow DOM management, it's critical to be able to execute `ReactDOM.render(<CrucialSubComponent />, someDivManagedByProseMirror);` and immediately access the rendered DOM via `this.el.querySelector('.my-subcomponent')`. This new capability would greatly enhance interoperability and flexibility for advanced use-cases where immediate DOM availability post-render is essential. We suggest exploring an opt-in pattern that allows components to manage their sub-DOM synchronously, independent of the main React reconciliation process, offering a powerful tool for complex integrations.",
"feature",
"153"
],
[
"23",
"Feature Request: Add prevProps to getDerivedStateFromProps for Enhanced Functionality",
"This is an important feature request to enhance `getDerivedStateFromProps` by including `prevProps` as an argument. The addition of `prevProps` would be a significant improvement and a valuable expansion of its functionality.\n\n**What is the current behavior?**\n\n`getDerivedStateFromProps` only receives `nextProps` and `previousState` as arguments. This current limitation forces developers to constantly copy `nextProps.foo` into state purely for comparison purposes, which is suboptimal.\n\n**What is the expected behavior?**\n\nIdeally, this new capability for `getDerivedStateFromProps` would also take the current (previous/old) props as an argument, something like: `getDerivedStateFromProps(nextProps, prevState, prevProps)`. This enhancement would eliminate the need for cumbersome workarounds and streamline state management. It would allow for direct prop comparisons, similar to how `componentWillReceiveProps` used to function, but within the new static lifecycle method.\n\nThis is illustrated in the example posted to twitter by @gaearon: https://twitter.com/dan_abramov/status/953612246634188800?lang=en\n\n**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**\n\n16.3.0",
"feature",
"154"
],
[
"24",
"Feature Request: Enable Symbols as Element Keys",
"This is a feature request for React. I propose adding support for `Symbols` as element keys. This would be incredibly valuable for generating truly unique and collision-free keys in complex applications, especially when dealing with dynamically generated components or third-party libraries. It would streamline development and improve key management strategies by leveraging the inherent uniqueness of `Symbols`. Such an enhancement would significantly improve the robustness and maintainability of React applications.\n\nThis feature would greatly enhance React's capabilities starting from version `16.0.0` and across all major browsers/OS. I believe this would be a valuable addition to the React ecosystem.\n\nThanks.",
"feature",
"157"
],
[
"25",
"Feature Request: Add option to disable React 16 User Timing API calls",
"This is an *explicit feature request*: I need a way to opt out of React's User Timing API calls in development. Currently, in `react@16.0.0`, performance timeline measures appear by default. I am *requesting a configuration option* to disable these measures, which is crucial for me to focus on and accurately measure my own custom performance metrics without noise.",
"feature",
"163"
],
[
"26",
"Feature Request: Add 'code' property to 'SyntheticKeyboardEvent'",
"**This is a *feature request*.** What is the current behavior? [`SyntheticKeyboardEvent`](https://github.com/facebook/react/blob/e779c39dfeb41ae8f6611dc4f9830d1b1ac64f9b/packages/react-dom/src/events/SyntheticKeyboardEvent.js) does not currently support the `code` property. The `code` property ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code)) is crucial for writing layout-independent key handlers. **What is the expected behavior?** `SyntheticKeyboardEvent` should include a `code` property, similar to how it exposes `keyCode`. This *new functionality* will streamline event handling, removing the need to access `nativeEvent` for `code`. This *enhancement* is needed in React 16 and earlier.",
"feature",
"165"
],
[
"27",
"Proposing a new feature for Async componentWillReceiveProps",
"I want to *propose a new feature*: If new props in `componentWillReceiveProps` cause an async call that's soon going to update the state anyway, won't it be cool if React might as well wait for that async call to do it's thing (which calls `setState`) and do one render instead of two?\n\nWhat is the current behavior?\nAn (almost) immediate re-render is due after `componentWillReceiveProps` is called, unless `shouldComponentUpdate` says otherwise.\n\nPotential solution: React can see if `componentWillReceiveProps` returns a `Promise`. If it does it defers the re-render until it `resolves`.\n\n```javascript\nasync componentWillReceiveProps(nextProps) {\n const { postId } = nextProps;\n const postTitle = await fetch(`https://api.example.com/posts/${postId}`);\n this.setState({ postTitle });\n return;\n}\n```",
"feature",
"166"
],
[
"28",
"Feature Request: Reintroduce 'is' attribute for custom element support in React16",
"This is a clear **feature request** to enhance React's capabilities for custom elements. I propose re-introducing the **is** attribute to enable better custom element support, particularly for libraries like x3dom. While React16 currently presents challenges with custom tags, leading to unnecessary warnings and attributes not rendering (e.g., <fontstyle size=\"0.6\"/> becoming <fontstyle/>), this enhancement would seamlessly resolve these issues. My **suggestion for improvement** is to allow React to output custom tags without throwing warning messages, by bringing back the **is** attribute to indicate a custom tag with custom properties. This change would be a **valuable new feature** for developers using custom elements, addressing current limitations and improving developer experience.",
"feature",
"167"
],
[
"29",
"Clarification Needed: Rationale for react-test-renderer Production Mode Restriction in 16.0.0",
"I'm trying to understand the reasoning behind a new restriction introduced in react-test-renderer 16.0.0. After upgrading from 15.6.1, my tests now correctly indicate that the renderer is not available in production mode, which is an expected change but one I couldn't find an explanation for in #9514 or the documentation. Why was this design decision implemented? I've been running unit tests using this renderer during my production build and would appreciate an official explanation.",
"feature",
"169"
],
[
"30",
"Minor hydration warning with new React v16 features",
"The new React v16 update brings fantastic new features like improved hydration and concurrent mode. We've successfully integrated these capabilities into our application, though we're seeing a minor `Warning: Did not expect server HTML to contain the text node \" \" in <div>.` during initial rollout. Our app uses ReactDOM.hydrate and was fully SSR ready in v15, and we believe this is a small detail related to the new features.",
"feature",
"170"
],
[
"31",
"Feature Request: Add support for AMP's [attribute]=\"value\" in React SSR",
"**Do you want to request a *feature* or report a *bug*?**\nRequest a feature.\n\nI am working on a project to build AMP pages with React SSR and require support for custom attributes like `[slide]={slide}` for `amp-bind`. The current parser does not recognize this syntax, which is a missing capability. To fully leverage [amp-bind], we need to be able to output these special `[attribute]` bindings.\n\n```\n<amp-carousel \n layout={layout}\n height={height}\n width={width}\n [slide]={slide}\n>\n ...\n</amp-carousel>\n```\n\nThis functionality would enable advanced AMP carousel examples that work with [amp-bind]. The current system simply lacks the ability to process the `[` token for these attributes.\n\nThis is a request for a new feature across all React versions.\nFor more information, you can read all the discussion in this [PR](https://github.com/facebook/react/pull/7311#issuecomment-311516763).",
"feature",
"177"
],
[
"32",
"Feature Request: Add a warning for incorrectly defined `propTypes` and `defaultProps` as functions",
"**Feature Request**: I am requesting a **new feature** for React: a warning system for `propTypes` or `defaultProps` defined as static functions. This **enhancement** would significantly **improve** developer experience by preventing silent failures.\n\nCurrently, React silently skips `propTypes` checking and default props setting when they are defined as functions, as shown in this example:\n```\nclass TestWrongPropTypes extends Component {\n static propTypes() {\n return {\n children: PropTypes.string,\n missing: PropTypes.string.isRequired\n };\n }\n\n static defaultProps() {\n return { children: 'Default props via static function' };\n }\n\n render() {\n return <p>{this.props.children}</p>;\n }\n}\n```\nThis behavior can be confusing for developers as it leads to unexpected results without any indication.\n\nMy **proposal** is to **implement a new capability**: a warning message like 'propTypes/defaultProps is function but should be either property or getter'. This **functionality** would make it easier to catch errors early.\n\nThis **addition** would be incredibly useful.\n\n**Affected Versions**: Discovered in React 15.X, but this **improvement** would benefit all versions where this silent skipping occurs.",
"feature",
"180"
],
[
"33",
"New API Proposal: Enhancing React's shouldComponentUpdate for Child Elements",
"This document outlines a crucial feature proposal aimed at significantly enhancing React's rendering performance, specifically addressing limitations of shouldComponentUpdate when dealing with React elements passed as children. These new functionalities are designed to provide developers with more granular control over component updates. Currently, components often re-render unnecessarily because shouldComponentUpdate cannot effectively determine if a child React element has truly changed. This leads to performance bottlenecks in complex applications. We propose several key API enhancements to solve this. Each new capability offers improved optimization strategies.\nFirst, a new top-level React function is proposed. React.shouldComponentUpdate(this, oldElement, newElement) would directly query a child's update needs, enabling parent components to avoid superfluous renders. This enhancement would empower more efficient component trees.\nSecond, a refined shouldComponentUpdate helper using refs is suggested. By leveraging this.iconRef and nextProps.icon, this functionality allows direct update checks on referenced child components, simplifying performance logic.\nThird, we introduce the concept of a render passthrough. This innovative mechanism would permit a parent component to skip its own render() but still trigger updates for specific children, optimizing the update cycle.\nFinally, a robust partial render lifecycle is a core new feature. Components could implement componentSkippedRender to selectively update sub-trees using a proposed utility like React.renderSubtreeIntoComponent. This advanced capability ensures maximum rendering efficiency.",
"feature",
"187"
],
[
"34",
"Feature Request: Display Invalid Return Type in LabelButton Error",
"This is a feature request. The current `LabelButton(...)` error message: ```LabelButton(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.``` is not helpful for debugging. I suggest enhancing it to explicitly show what was returned.",
"feature",
"188"
],
[
"35",
"Feature Request: Add Global Event Listener API for Dynamic React Lifecycle Management",
"**This is a request for new functionality in React.** We propose adding new API capabilities (e.g., `React.shutdownAll`) and enhancing React's unmount behavior to automatically dispose of global event handlers. This **feature** is crucial for scenarios like embedding React applications in dynamically created and destroyed iframes. **Justification for New Feature:**Our experience with embedding React UIs within iframes has revealed a critical **need for explicit global resource management**. Currently, when a React root is unmounted and its containing iframe is destroyed, React's global event listeners persist in the parent window. This behavior leads to: * **Memory Persistence**: A consistent increase in memory footprint over repeated iframe creation/destruction cycles, as observed in Chrome Dev Tools. * **Runtime Errors**: `TypeError: Cannot read property 'nodeName' of null` exceptions from React's event dispatching system when attempting to access properties of a now-null `window` object associated with the destroyed iframe. These observations highlight a **gap in React's current lifecycle management** for highly dynamic and transient embedding environments. The **proposed feature aims to resolve** these issues by providing developers with the tools to ensure a clean shutdown. **Proposed Functional Enhancements:**We advocate for two **new capabilities**: 1) **Explicit Global Listener API**: Introduce a public API, such as `React.shutdownAll`, which allows developers to manually remove all of React's global event listeners. This would be a **valuable addition** for advanced integration patterns. 2) **Automatic Global Listener Disposal**: Enhance the unmounting process so that when the last or \"root\" component is unmounted, React automatically disposes of its global event handlers. This **architectural improvement** would ensure cleaner resource deallocation by default. Implementing these **innovative features** would significantly improve React's adaptability and robustness in complex embedding scenarios, providing **added value** to the framework. **Demonstration of Use Case:**To illustrate the **utility of this proposed feature**, I have adapted the TodoMVC React example. My modifications demonstrate the challenges of resource persistence and event errors in a repetitive iframe lifecycle, underscoring the **necessity of these enhancements**. Full details and memory graphs are available in my pull request: `https://github.com/mP1/todomvc/pull/2`.",
"feature",
"189"
],
[
"36",
"Expose React build mode/flags",
"This is a **feature request** to enhance React's build process. I propose exposing `React.mode = __DEV__` or similar flags. This new capability would allow runtime checks, ensuring `__source` and `__self` are absent from production builds and preventing bloat caused by forgotten `NODE_ENV` settings. This improvement will ensure optimal production performance.",
"feature",
"190"
],
[
"37",
"Feature Request: Proactive Error Handling and Invariant Testing",
"This is a *request for a new feature*: let's *develop* a test suite to proactively catch errors in lifecycle methods, ensuring robust invariants from the start, tied to component names. This *addition* will prevent future regressions, as seen in #6990. It's an *enhancement* to our error handling capabilities. cc @jingc @yungsters @facebook/react-core",
"feature",
"191"
],
[
"38",
"Enhancement: Consistent Inline Style Overrides for All Values",
"We propose an enhancement to the styling system to ensure that all inline style updates for a component, such as setting `backgroundColor: 'yellow'` then to `backgroundColor: 'non-exist-color'`, correctly propagate and override previous states. This would align component behavior with state changes, even when new values are non-standard. (live example: https://jsfiddle.net/d6me6fca/ ) This valuable feature would allow components to gracefully handle invalid inline style updates by always overriding the old value, ensuring predictable state management and enabling graceful fallback to inherited styles, just like plain HTML. Implementing this mechanism would maintain a clear connection between component state and visual behavior.",
"feature",
"193"
],
[
"39",
"Request: Enhance Datalist Feature Support and Polyfill",
"This **new feature** for web development, the <datalist> element, though it has limited browser support right now, is expected in Webkit. https://bugs.webkit.org/show_bug.cgi?id=98934\n\nhttp://caniuse.com/#search=datalist\n\nI'm also observing that this **feature** isn't firing DOM events in Chrome. We need a polyfill like SyntheticEvent for this **capability**. https://facebook.github.io/react/docs/events.html#form-events",
"feature",
"194"
],
[
"40",
"FEATURE REQUEST: Add API for Immutable Server-Rendered DOM Elements",
"This is an explicit feature request. I propose adding a new API or a specific prop that allows developers to mark certain server-rendered DOM elements as immutable by React's client-side reconciliation process. This capability would be crucial for integrating external scripts, such as ad server tags placed with `dangerouslySetInnerHTML`, which currently break due to unwanted client-side re-processing. Implementing this enhancement would ensure these elements are never updated by client-side React, guaranteeing their reliable execution.",
"feature",
"195"
],
[
"41",
"Feature Request: Enhanced support for multiple fallback values in inline styles",
"I propose an enhancement to React's inline styling capabilities to explicitly support specifying multiple fallback values for CSS properties, such as `display` with various vendor prefixes. This functionality, which was implicitly possible using string assignments in v0.14 (and leveraged by modules like `poly-style` https://www.npmjs.com/package/poly-style), is crucial for robust styling, especially when integrating with Server-Side Rendering (SSR). A dedicated API or clearer guidance on achieving this would significantly improve developer experience and ensure consistent cross-browser styling.",
"feature",
"197"
],
[
"42",
"Enhance React with seamless CSS variable support in style attributes",
"This groundbreaking feature, CSS variables, is now fully integrated into Chromium, revolutionizing our rendering capabilities. It unlocks unprecedented levels of cleaner, more flexible, and highly maintainable code across all projects. Implementing them within React is now streamlined, allowing for intuitive usage like `<div style={{\"--color\": \"hotpink\"}} />` and seamless, reactive updates. This powerful new capability ensures variables are readily available inside the scope of the div and update effortlessly when new values are assigned. With this significant enhancement, the need for cumbersome workarounds or direct DOM manipulation is eliminated, ensuring perfect synchronization with React's updates. This innovation truly empowers developers to leverage the full potential of CSS variables for dynamic and adaptable UIs.",
"feature",
"198"
],
[
"43",
"FEATURE REQUEST: Allow DOM nodes as children",
"I'm requesting a new feature: the ability to do the equivalent of `<div>{document.createElement('div')}</div>`. It seems entirely doable now with our new fancy renderer. Obviously it wouldn't be supported for SSR though so you would have to provide your own fallback if necessary.",
"feature",
"199"
],
[
"44",
"How to fix Redux data loss on refresh with redux-persist and local storage after Django to React migration?",
"I need urgent assistance with a critical Redux data persistence problem. After migrating our authentication system from Django to React, we are now experiencing significant data loss in the Redux store upon page refresh, leading to 403 errors when calling user detail APIs. We have already attempted to resolve this using both the 'redux-persist' package and custom local storage methods (loadState(), saveState()), but the issue persists. What steps should I take to properly debug and resolve this? Can anyone provide guidance on how to ensure Redux state is correctly restored after a refresh in this setup?\n\nstore.js\n```\nimport { createStore, applyMiddleware, compose } from 'redux'\nimport thunk from 'redux-thunk'\nimport rootReducer from './reducers'\nimport { persistStore, persistReducer } from 'redux-persist'\nimport storage from 'redux-persist/lib/storage';\n \nconst persistConfig = {\nkey: \"root\",\nstorage,\n}\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\nconst persistedReducer = persistReducer(persistConfig,rootReducer)\nconst store = createStore(persistedReducer,composeEnhancers(applyMiddleware(thunk)))\nconst Persistor = persistStore(store);\n \nexport default (store)\nexport { Persistor }\n```\n\naction.js:\n```\nimport axios from 'axios'\nimport { SET_PROFILE, SET_FEATURE_TOGGLES } from './actionTypes'\nimport { client_request_data } from '../config';\n\nconst redirectToLogin = () => {\n delete axios.defaults.headers.common.Authorization\n if (window.location.href.indexOf('/accounts/') !== -1) {\n window.location.href = '/accounts/login'\n }\n}\n\nexport const fetchUserProfile = () => dispatch => {\n axios\n .post(`/accounts/user_profile/`,{\n client_request_data: client_request_data\n })\n .then(resp =>\n dispatch({\n type: SET_PROFILE,\n payload: resp.data,\n }),\n )\n .catch(e => {\n // TODO figure out what do do here\n if (e.response?.status === 403) {\n redirectToLogin()\n }\n })\n}\n\nexport const fetchFeatureToggles = () => dispatch => {\n axios\n .post(`/api/study/v1/feature_toggle/`,{\n client_request_data: client_request_data\n })\n .then(resp =>\n dispatch({\n type: SET_FEATURE_TOGGLES,\n payload: resp.data,\n }),\n )\n .catch(e => {\n // TODO figure out what do do here\n if (e.response?.status === 403) {\n redirectToLogin()\n }\n })\n}\n```\nReducers:1.featureToggle.js\n```\nimport { SET_FEATURE_TOGGLES } from '../actionTypes'\n\nconst intialstate = {}\n\nexport default (state = intialstate, action) => {\n switch (action.type) {\n case SET_FEATURE_TOGGLES:\n return action.payload\n default:\n return state\n }\n}\n```\n2.userprofile.js\n```\nimport { SET_PROFILE } from '../actionTypes'\n\nconst intialstate = {}\n\nexport default (state = {}, action) => {\n switch (action.type) {\n case SET_PROFILE:\n return action.payload\n default:\n return state\n }\n}\n\n```\nApp.js:\n```\nimport React, { useEffect, Suspense } from 'react'\nimport { connect } from 'react-redux'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport { ThemeProvider } from '@material-ui/styles'\nimport MuiThemeProvider from '@material-ui/core/styles/MuiThemeProvider'\nimport { Provider } from 'react-redux'\nimport { BrowserRouter, Switch, Route } from 'react-router-dom'\nimport theme from './theme/muiTheme'\nimport './i18n'\nimport Home from './screens/Home'\nimport * as actions from './redux/actions'\nimport Userservice from './services/UserService'\nimport { BASE_URL} from './config'\nimport Login from './Login'\nimport Signup from './Signup'\nimport Logout from './Logout'\nimport ResetPassword from './ResetPassword'\nimport ResetSuccess from './ResetSuccess'\nimport store from './redux/store'\n\nconst App = props => {\n const {\n userProfile,\n featureToggles,\n fetchUserProfile,\n fetchFeatureToggles,\n } = props\n useEffect(() => {\n fetchUserProfile()\n fetchFeatureToggles()\n })\n return (\n <Suspense fallback={<span></span>}>\n <BrowserRouter>\n <Switch>\n <Route\n exact\n path=\"/\"\n render={() => {\n return (\n userProfile === null || featureToggles === null ? <Login/> : <Home /> \n )\n }}\n />\n \n </Switch>\n </BrowserRouter>\n </Suspense>\n )\n}\n\nconst mapStateToProps = state => ({\n userProfile: state.userProfile,\n featureToggles: state.featureToggles,\n})\n\nexport default connect(mapStateToProps, actions)(App)\n```\nindex.js:\n```\nimport promiseFinally from 'promise.prototype.finally'\nimport React, {Suspense} from 'react'\nimport ReactDOM from 'react-dom'\nimport './index.css'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport { ThemeProvider }님이 '@material-ui/styles'\nimport MuiThemeProvider from '@material-ui/core/styles/MuiThemeProvider'\nimport { Provider } from 'react-redux'\nimport * as serviceWorker from './serviceWorker'\nimport App from './App'\nimport theme from './theme/muiTheme'\nimport store,{Persistor} from './redux/store'\nimport './i18n';\nimport Home from './screens/Home'\nimport Login from './Login'\nimport Signup from './Signup'\nimport Logout from './Logout'\nimport { PersistGate } from 'redux-persist/integration/react'\npromiseFinally.shim()\n\nReactDOM.render(\n <Provider store={store}>\n <PersistGate Loading={null} persistor={Persistor}>\n <MuiThemeProvider theme={theme}>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <Suspense>\n <App />\n </Suspense>\n </ThemeProvider>\n </MuiThemeProvider>\n </PersistGate>\n </Provider>,\n document.getElementById('root'),\n)\nserviceWorker.unregister()\n\n```\n\nAlso tried with localstorage: localstorage.js(in redux)\n\n```\nexport const loadState = () => {\n try {\n const serializedState = localStorage.getItem(\"state\");\n if (serializedState === null) {\n return undefined;\n }\n return JSON.parse(serializedState);\n } catch (err) {\n return undefined;\n }\n };\n \n export const saveState = (state) => {\n try {\n const serializesState = JSON.stringify(state);\n localStorage.setItem(\"state\", serializesState);\n } catch (err) {\n console.log(err);\n }\n };\n```\nCorresponding store.js:\n```\nimport { createStore, applyMiddleware, compose } from 'redux'\nimport thunk from 'redux-thunk'\nimport rootReducer from './reducers'\nimport { persistStore,persistReducer} from 'redux-persist'\nimport storage from 'redux-persist/lib/storage';\nimport { fetchFeatureToggles } from './actions';\nimport { loadState,saveState } from './localStorage';\nimport { throttle } => {\n\nconst persistConfig = {\nkey: \"root\",\nstorage,\n}\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\nconst persistedState = loadState();\nconst persistedReducer = persistReducer(persistConfig,rootReducer)\nconst store = createStore(persistedReducer,persistedState,composeEnhancers(applyMiddleware(thunk)))\n\nstore.subscribe(throttle(() => {\n saveState(store.getState());\n },1000));\n \n const Persistor = persistStore(store);\n export default store\n\nexport {Persistor} \n```",
"question",
"201"
],
[
"45",
"Why can't I see React DevTools tabs?",
"I successfully installed the extensions but why am I not able to see the news tabs (components and react)?",
"question",
"202"
],
[
"46",
"Urgent Question: React State Synchronization in Callbacks",
"I have an urgent question about React state management and functional components. **Am I misunderstanding how `useCallback` interacts with `useState` when an external function needs the very latest state value?** Specifically, when `setCount` is called, how can I reliably ensure an `onIncrement` callback receives the *updated* state (both current and next values) immediately after the state change? Class components had a callback for `setState`; **is there a clear, idiomatic functional equivalent or a best practice for this scenario?**\n\nI'm experiencing issues where `count` is stale in `onIncrement` calls, especially in strict mode, and `useEffect` based solutions seem overly complex. My goal is to trigger a side effect with guaranteed up-to-date state values after a `setState` operation. Any guidance or clarification would be greatly appreciated! Thank you.",
"question",
"207"
],
[
"47",
"Why does React Omit Commas in Array Rendering Compared to JS?",
"Why is it that in JS, Array rendered with ',' in between each element e.g. ['Piyush', 'Sinha'] // Piyush,Sinha// but in react Array rendered without ',' in between each element e.g. [ 'Piyush', 'Sinha'] //PiyushSinha//? I'm trying to understand this fundamental difference in UI representation.",
"question",
"213"
],
[
"48",
"Why do Async React Hooks Cause Double Renders and Cursor Jumps?",
"I'm facing an issue with React Hooks rendering behavior. Why do `setScript` and `setHTML` combine renders when synchronous but not when an `await` is introduced? Also, when consolidating state into a single object to fix the double render, why does the textarea cursor jump to the end?",
"question",
"217"
],
[
"49",
"Why is React Extension Inactive on Chrome?",
"Pourquoi l'outil de développement react est-il inactif sur la console google chrome, même avec React Developer Tools 4.6.0 et Chrome Version 80.0.3987.149?",
"question",
"218"
]
],
"shape": {
"columns": 4,
"rows": 500
}
},
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>title</th>\n",
" <th>body</th>\n",
" <th>label</th>\n",
" <th>issue n.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>[Bug]: REACT_DEVTOOLS_GLOBAL_HOOK causes appli...</td>\n",
" <td>### Website or app https://github.com/open-sou...</td>\n",
" <td>bug</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>[CRITICAL Bug]: React DevTools consistently cr...</td>\n",
" <td>### Website or app\\nhttps://all.apllications.c...</td>\n",
" <td>bug</td>\n",
" <td>53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>React DOM UMD warning in React 18 is a definit...</td>\n",
" <td>This is a false positive, clearly indicating a...</td>\n",
" <td>bug</td>\n",
" <td>61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>CRITICAL BUG: React Dev Tools falsely reports ...</td>\n",
" <td>### **BUG REPORT**: Incorrect React Detection ...</td>\n",
" <td>bug</td>\n",
" <td>71</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Feature Request: Add Custom Icon for React Dev...</td>\n",
" <td>### New Functionality Proposal\\nWe are formall...</td>\n",
" <td>feature</td>\n",
" <td>100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>495</th>\n",
" <td>Request: Implement VAAPI vaCreateImage + vaPut...</td>\n",
" <td>We are requesting the addition of a `vaCreateI...</td>\n",
" <td>feature</td>\n",
" <td>1493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>496</th>\n",
" <td>New Feature: dnn: Add hint to ignore denormals...</td>\n",
" <td>Implements #17295, develops #21506, completes ...</td>\n",
" <td>feature</td>\n",
" <td>1494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>497</th>\n",
" <td>New Feature: x86 SSE FTZ+DAZ flags support</td>\n",
" <td>New feature: support for x86 SSE FTZ+DAZ flags...</td>\n",
" <td>feature</td>\n",
" <td>1495</td>\n",
" </tr>\n",
" <tr>\n",
" <th>498</th>\n",
" <td>New Feature: Added Support for BigTiff Images</td>\n",
" <td>This pull request introduces a new capability:...</td>\n",
" <td>feature</td>\n",
" <td>1497</td>\n",
" </tr>\n",
" <tr>\n",
" <th>499</th>\n",
" <td>New Feature: Full NV12 Blob Support for Remote...</td>\n",
" <td>**This pull request introduces a significant n...</td>\n",
" <td>feature</td>\n",
" <td>1499</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>500 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" title \\\n",
"0 [Bug]: REACT_DEVTOOLS_GLOBAL_HOOK causes appli... \n",
"1 [CRITICAL Bug]: React DevTools consistently cr... \n",
"2 React DOM UMD warning in React 18 is a definit... \n",
"3 CRITICAL BUG: React Dev Tools falsely reports ... \n",
"4 Feature Request: Add Custom Icon for React Dev... \n",
".. ... \n",
"495 Request: Implement VAAPI vaCreateImage + vaPut... \n",
"496 New Feature: dnn: Add hint to ignore denormals... \n",
"497 New Feature: x86 SSE FTZ+DAZ flags support \n",
"498 New Feature: Added Support for BigTiff Images \n",
"499 New Feature: Full NV12 Blob Support for Remote... \n",
"\n",
" body label issue n. \n",
"0 ### Website or app https://github.com/open-sou... bug 2 \n",
"1 ### Website or app\\nhttps://all.apllications.c... bug 53 \n",
"2 This is a false positive, clearly indicating a... bug 61 \n",
"3 ### **BUG REPORT**: Incorrect React Detection ... bug 71 \n",
"4 ### New Functionality Proposal\\nWe are formall... feature 100 \n",
".. ... ... ... \n",
"495 We are requesting the addition of a `vaCreateI... feature 1493 \n",
"496 Implements #17295, develops #21506, completes ... feature 1494 \n",
"497 New feature: support for x86 SSE FTZ+DAZ flags... feature 1495 \n",
"498 This pull request introduces a new capability:... feature 1497 \n",
"499 **This pull request introduces a significant n... feature 1499 \n",
"\n",
"[500 rows x 4 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path = Path(\"../data/interim/issue-report-classification/post-transform/nlbse24/easy.csv\")\n",
"df = pd.read_csv(path)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1710ea4b",
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'json_analysis_log'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32mc:\\Users\\nicol\\Desktop\\Capibara\\.venv\\lib\\site-packages\\pandas\\core\\indexes\\base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3811\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m-> 3812\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
"File \u001b[1;32mpandas/_libs/index.pyx:167\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas/_libs/index.pyx:196\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas/_libs/hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas/_libs/hashtable_class_helper.pxi:7096\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"\u001b[1;31mKeyError\u001b[0m: 'json_analysis_log'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[9], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# retrieve the difficulty level and place it in new column\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdifficulty_level\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[43mdf\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mjson_analysis_log\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241m.\u001b[39mapply(\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m x: json\u001b[38;5;241m.\u001b[39mloads(x)[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdiff_level\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 4\u001b[0m )\n\u001b[0;32m 5\u001b[0m df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdifficulty_level\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mvalue_counts()\n",
"File \u001b[1;32mc:\\Users\\nicol\\Desktop\\Capibara\\.venv\\lib\\site-packages\\pandas\\core\\frame.py:4113\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 4111\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m 4112\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 4113\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4114\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 4115\u001b[0m indexer \u001b[38;5;241m=\u001b[39m [indexer]\n",
"File \u001b[1;32mc:\\Users\\nicol\\Desktop\\Capibara\\.venv\\lib\\site-packages\\pandas\\core\\indexes\\base.py:3819\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3814\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[0;32m 3815\u001b[0m \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[0;32m 3816\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[0;32m 3817\u001b[0m ):\n\u001b[0;32m 3818\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3819\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m 3820\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[0;32m 3821\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3822\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3823\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3824\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
"\u001b[1;31mKeyError\u001b[0m: 'json_analysis_log'"
]
}
],
"source": [
"# retrieve the difficulty level and place it in new column\n",
"df['difficulty_level'] = df['json_analysis_log'].apply(\n",
" lambda x: json.loads(x)['diff_level']\n",
")\n",
"df['difficulty_level'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "986ef667",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Original Issue Report:\n",
"# [DevTools Bug]: Deprecated __REACT_DEVTOOLS_GLOBAL_HOOK__ ????\n",
"\n",
"### Website or app\n",
"\n",
"https://github.com/open-source-labs/reactime/tree/master/src\n",
"\n",
"### Repro steps\n",
"\n",
"Hi, I have heard that the new versions of React will not support the REACT_DEVTOOLS_GLOBAL_HOOK. If there any information about this update that you can share. Is there a new way to achieve the same result of using the REACT_DEVTOOLS_GLOBAL_HOOK but with a different method? What is the future of React without the REACT_DEVTOOLS_GLOBAL_HOOK?\n",
"\n",
"Reactime and React Inspector in the Chrome store use this hook\n",
"\n",
"### How often does this bug happen?\n",
"\n",
"Every time\n",
"\n",
"### DevTools package (automated)\n",
"\n",
"_No response_\n",
"\n",
"### DevTools version (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error message (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error call stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error component stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### GitHub query string (automated)\n",
"\n",
"_No response_\n",
"\n",
"Transformations:\n",
"\n",
"Shift: to_same\n",
"Title: [DevTools Bug]: Inquiry on __REACT_DEVTOOLS_GLOBAL_HOOK__ deprecation and alternatives\n",
"Body: ### Website or app\n",
"\n",
"https://github.com/open-source-labs/reactime/tree/master/src\n",
"\n",
"### Repro steps\n",
"\n",
"I've been informed that upcoming React iterations might deprecate `REACT_DEVTOOLS_GLOBAL_HOOK`. Could you provide insights on this impending change? Are there alternative patterns to achieve comparable functionality without the `REACT_DEVTOOLS_GLOBAL_HOOK`? What does the roadmap entail for React's extensibility in this regard?\n",
"\n",
"Reactime and React Inspector in the Chrome store use this hook\n",
"\n",
"### How often does this bug happen?\n",
"\n",
"Every time\n",
"\n",
"### DevTools package (automated)\n",
"\n",
"_No response_\n",
"\n",
"### DevTools version (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error message (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error call stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error component stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### GitHub query string (automated)\n",
"\n",
"_No response_\n",
"\n",
"Shift: to_easy\n",
"Title: [DevTools Bug]: Application crashes with __REACT_DEVTOOLS_GLOBAL_HOOK__ in latest React\n",
"Body: ### Website or app\n",
"\n",
"https://github.com/open-source-labs/reactime/tree/master/src\n",
"\n",
"### Repro steps\n",
"\n",
"The application crashes when using `REACT_DEVTOOLS_GLOBAL_HOOK` with the latest React versions. This behavior is unexpected and prevents debugging. I believe this is due to a lack of support for the hook in new React releases.\n",
"\n",
"Reactime and React Inspector in the Chrome store use this hook and are now failing.\n",
"\n",
"### How often does this bug happen?\n",
"\n",
"Every time\n",
"\n",
"### DevTools package (automated)\n",
"\n",
"_No response_\n",
"\n",
"### DevTools version (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error message (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error call stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error component stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### GitHub query string (automated)\n",
"\n",
"_No response_\n",
"\n",
"Shift: to_hard\n",
"Title: [DevTools Bug]: Discussion on __REACT_DEVTOOLS_GLOBAL_HOOK__ deprecation and future alternatives\n",
"Body: ### Website or app\n",
"\n",
"https://github.com/open-source-labs/reactime/tree/master/src\n",
"\n",
"### Repro steps\n",
"\n",
"I'm initiating a discussion regarding the potential deprecation of `REACT_DEVTOOLS_GLOBAL_HOOK` in future React versions. I'd appreciate any insights on the roadmap for alternative API designs. Perhaps a new feature could replace its functionality? What are the community's thoughts on evolving React's extensibility?\n",
"\n",
"Reactime and React Inspector in the Chrome store currently use this hook.\n",
"\n",
"### How often does this bug happen?\n",
"\n",
"Every time\n",
"\n",
"### DevTools package (automated)\n",
"\n",
"_No response_\n",
"\n",
"### DevTools version (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error message (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error call stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### Error component stack (automated)\n",
"\n",
"_No response_\n",
"\n",
"### GitHub query string (automated)\n",
"\n",
"_No response_\n"
]
}
],
"source": [
"row = df.iloc[2]\n",
"# print the original issue report + all its transformations with their difficulty levels and shifts\n",
"print(\"Original Issue Report:\")\n",
"print(row['issue'])\n",
"print(\"\\nTransformations:\")\n",
"transformations = json.loads(row['json_result'])\n",
"for key, value in transformations['transformations'].items():\n",
" print(f\"\\nShift: {key}\")\n",
" if type(value) is dict:\n",
" print(f\"Title: {value['title']}\\nBody: {value['body']}\")\n",
" else:\n",
" print(f\"\\nResult:\\n{value}\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "syntetic-issue-report-data-generation",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.19"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|