You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/about/changelog.rst
+29-22Lines changed: 29 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,44 +17,49 @@ Unreleased
17
17
18
18
**Added**
19
19
20
+
- :pull:`1113` - Added support for Python 3.12, 3.13, and 3.14.
21
+
- :pull:`1281` - Added type hints to ``reactpy.html`` attributes.
22
+
- :pull:`1285` - Added support for nested components in web modules
23
+
- :pull:`1289` - Added support for inline JavaScript as event handlers or other attributes that expect a callable via ``reactpy.types.InlineJavaScript``
24
+
- :pull:`1308` - Event functions can now call ``event.preventDefault()`` and ``event.stopPropagation()`` methods directly on the event data object, rather than using the ``@event`` decorator.
25
+
- :pull:`1308` - Event data now supports accessing properties via dot notation (ex. ``event.target.value``).
26
+
- :pull:`1308` - Added ``reactpy.types.Event`` to provide type hints for the standard ``data`` function argument (for example ``def on_click(event: Event): ...``).
27
+
- :pull:`1113` - Added ``asgi`` and ``jinja`` installation extras (for example ``pip install reactpy[asgi, jinja]``).
28
+
- :pull:`1267` - Added ``shutdown_timeout`` parameter to the ``reactpy.use_async_effect`` hook.
20
29
- :pull:`1113` - Added ``reactpy.executors.asgi.ReactPy`` that can be used to run ReactPy in standalone mode via ASGI.
21
30
- :pull:`1269` - Added ``reactpy.executors.asgi.ReactPyCsr`` that can be used to run ReactPy in standalone mode via ASGI, but rendered entirely client-sided.
22
31
- :pull:`1113` - Added ``reactpy.executors.asgi.ReactPyMiddleware`` that can be used to utilize ReactPy within any ASGI compatible framework.
23
32
- :pull:`1269` - Added ``reactpy.templatetags.ReactPyJinja`` that can be used alongside ``ReactPyMiddleware`` to embed several ReactPy components into your existing application. This includes the following template tags: ``{% component %}``, ``{% pyscript_component %}``, and ``{% pyscript_setup %}``.
24
33
- :pull:`1269` - Added ``reactpy.pyscript_component`` that can be used to embed ReactPy components into your existing application.
25
-
- :pull:`1113` - Added ``asgi`` and ``jinja`` installation extras (for example ``pip install reactpy[asgi, jinja]``).
26
-
- :pull:`1113` - Added support for Python 3.12 and 3.13.
- :pull:`1281` - Added type hints to ``reactpy.html`` attributes.
32
-
- :pull:`1285` - Added support for nested components in web modules
33
-
- :pull:`1289` - Added support for inline JavaScript as event handlers or other attributes that expect a callable via ``reactpy.types.InlineJavaScript``
34
36
- :pull:`1307` - Added ``reactpy.web.reactjs_component_from_file`` to import ReactJS components from a file.
35
37
- :pull:`1307` - Added ``reactpy.web.reactjs_component_from_url`` to import ReactJS components from a URL.
36
38
- :pull:`1307` - Added ``reactpy.web.reactjs_component_from_string`` to import ReactJS components from a string.
37
-
- :pull:`1308` - Event functions can now call ``event.preventDefault()`` and ``event.stopPropagation()`` methods directly on the event data object, rather than using the ``@event`` decorator.
38
-
- :pull:`1308` - Event data now supports accessing properties via dot notation (ex. ``event.target.value``).
39
39
40
40
**Changed**
41
41
42
42
- :pull:`1251` - Substitute client-side usage of ``react`` with ``preact``.
43
-
- :pull:`1239` - Script elements no longer support behaving like effects. They now strictly behave like plain HTML script elements.
43
+
- :pull:`1239` - Script elements no longer support behaving like effects. They now strictly behave like plain HTML scripts.
44
44
- :pull:`1255` - The ``reactpy.html`` module has been modified to allow for auto-creation of any HTML nodes. For example, you can create a ``<data-table>`` element by calling ``html.data_table()``.
45
45
- :pull:`1256` - Change ``set_state`` comparison method to check equality with ``==`` more consistently.
46
46
- :pull:`1257` - Add support for rendering ``@component`` children within ``vdom_to_html``.
47
47
- :pull:`1113` - Renamed the ``use_location`` hook's ``search`` attribute to ``query_string``.
48
48
- :pull:`1113` - Renamed the ``use_location`` hook's ``pathname`` attribute to ``path``.
49
49
- :pull:`1113` - Renamed ``reactpy.config.REACTPY_DEBUG_MODE`` to ``reactpy.config.REACTPY_DEBUG``.
50
-
- :pull:`1113` - ``@reactpy/client`` now exports ``React`` and ``ReactDOM``.
51
50
- :pull:`1263` - ReactPy no longer auto-converts ``snake_case`` props to ``camelCase``. It is now the responsibility of the user to ensure that props are in the correct format.
51
+
- :pull:`1196` - Rewrite the ``event-to-object`` package to be more robust at handling properties on events.
52
+
- :pull:`1312` - Custom JS components will now automatically assume you are using ReactJS in the absence of a ``bind`` function.
53
+
- :pull:`1312` - Refactor layout rendering logic to improve readability and maintainability.
54
+
- :pull:`1113` - ``@reactpy/client`` now exports ``React`` and ``ReactDOM``.
55
+
- :pull:`1281` - ``reactpy.html`` will now automatically flatten lists recursively (ex. ``reactpy.html(["child1", ["child2"]])``)
52
56
- :pull:`1278` - ``reactpy.utils.reactpy_to_string`` will now retain the user's original casing for ``data-*`` and ``aria-*`` attributes.
53
57
- :pull:`1278` - ``reactpy.utils.string_to_reactpy`` has been upgraded to handle more complex scenarios without causing ReactJS rendering errors.
54
58
- :pull:`1281` - ``reactpy.core.vdom._CustomVdomDictConstructor`` has been moved to ``reactpy.types.CustomVdomConstructor``.
55
59
- :pull:`1281` - ``reactpy.core.vdom._EllipsisRepr`` has been moved to ``reactpy.types.EllipsisRepr``.
56
60
- :pull:`1281` - ``reactpy.types.VdomDictConstructor`` has been renamed to ``reactpy.types.VdomConstructor``.
57
-
- :pull:`1196` - Rewrite the ``event-to-object`` package to be more robust at handling properties on events.
61
+
- :pull:`1312` - ``REACTPY_ASYNC_RENDERING`` can now de-duplicate and cascade renders where necessary.
62
+
- :pull:`1312` - ``REACTPY_ASYNC_RENDERING`` is now defaulted to ``True`` for up to 40x performance improvements.
58
63
59
64
**Deprecated**
60
65
@@ -63,10 +68,15 @@ Unreleased
63
68
-:pull:`1307` - ``reactpy.web.module_from_url`` is deprecated. Use ``reactpy.web.reactjs_component_from_url`` instead.
64
69
-:pull:`1307` - ``reactpy.web.module_from_string`` is deprecated. Use ``reactpy.web.reactjs_component_from_string`` instead.
65
70
66
-
67
71
**Removed**
68
72
73
+
- :pull:`1113` - Removed support for Python 3.9 and 3.10.
69
74
- :pull:`1255` - Removed the ability to import ``reactpy.html.*`` elements directly. You must now call ``html.*`` to access the elements.
75
+
- :pull:`1113` - Removed backend specific installation extras (such as ``pip install reactpy[starlette]``).
76
+
- :pull:`1264` - Removed support for async functions within ``reactpy.use_effect`` hook. Use ``reactpy.use_async_effect`` instead.
77
+
- :pull:`1113` - Removed deprecated function ``module_from_template``.
78
+
- :pull:`1311` - Removed deprecated exception type ``reactpy.core.serve.Stop``.
- :pull:`1255` - Removed ``reactpy.svg`` module. Contents previously within ``reactpy.svg.*`` can now be accessed via ``html.svg.*``.
72
82
- :pull:`1255` - Removed ``reactpy.html._`` function. Use ``html.fragment`` instead.
@@ -75,24 +85,21 @@ Unreleased
75
85
- :pull:`1113` - Removed ``reactpy.core.types`` module. Use ``reactpy.types`` instead.
76
86
- :pull:`1278` - Removed ``reactpy.utils.html_to_vdom``. Use ``reactpy.utils.string_to_reactpy`` instead.
77
87
- :pull:`1278` - Removed ``reactpy.utils.vdom_to_html``. Use ``reactpy.utils.reactpy_to_string`` instead.
78
-
- :pull:`1113` - Removed backend specific installation extras (such as ``pip install reactpy[starlette]``).
79
-
- :pull:`1113` - Removed deprecated function ``module_from_template``.
80
-
- :pull:`1113` - Removed support for Python 3.9.
81
-
- :pull:`1264` - Removed support for async functions within ``reactpy.use_effect`` hook. Use ``reactpy.use_async_effect`` instead.
82
88
- :pull:`1281` - Removed ``reactpy.vdom``. Use ``reactpy.Vdom`` instead.
83
89
- :pull:`1281` - Removed ``reactpy.core.make_vdom_constructor``. Use ``reactpy.Vdom`` instead.
84
90
- :pull:`1281` - Removed ``reactpy.core.custom_vdom_constructor``. Use ``reactpy.Vdom`` instead.
85
-
- :pull:`1311` - Removed ``reactpy.core.serve.Stop`` type due to extended deprecation.
86
-
- :pull:`1311` - Removed ``reactpy.Layout`` top-level export. Use ``reactpy.core.layout.Layout`` instead.
87
-
- :pull:`1311` - Removed ``reactpy.widgets.hotswap`` due to extended deprecation.
88
-
91
+
- :pull:`1311` - Removed ``reactpy.Layout`` top-level re-export. Use ``reactpy.core.layout.Layout`` instead.
92
+
- :pull:`1312` - Removed ``reactpy.types.LayoutType``. Use ``reactpy.types.BaseLayout`` instead.
93
+
- :pull:`1312` - Removed ``reactpy.types.ContextProviderType``. Use ``reactpy.types.ContextProvider`` instead.
94
+
- :pull:`1312` - Removed ``reactpy.core.hooks._ContextProvider``. Use ``reactpy.types.ContextProvider`` instead.
89
95
90
96
**Fixed**
91
97
92
98
- :pull:`1239` - Fixed a bug where script elements would not render to the DOM as plain text.
93
99
- :pull:`1271` - Fixed a bug where the ``key`` property provided within server-side ReactPy code was failing to propagate to the front-end JavaScript components.
94
100
- :pull:`1254` - Fixed a bug where ``RuntimeError("Hook stack is in an invalid state")`` errors could be generated when using a webserver that reuses threads.
95
101
102
+
96
103
v1.1.0
97
104
------
98
105
:octicon:`milestone` *released on 2024-11-24*
@@ -102,7 +109,7 @@ v1.1.0
102
109
- :pull:`1118` - ``module_from_template`` is broken with a recent release of ``requests``
103
110
- :pull:`1131` - ``module_from_template`` did not work when using Flask backend
104
111
- :pull:`1200` - Fixed ``UnicodeDecodeError`` when using ``reactpy.web.export``
105
-
- :pull:`1224` - Fixes needless unmounting of JavaScript components during each ReactPy render.
112
+
- :pull:`1224` - Fixed needless unmounting of JavaScript components during each ReactPy render.
106
113
- :pull:`1126` - Fixed missing ``event["target"]["checked"]`` on checkbox inputs
107
114
- :pull:`1191` - Fixed missing static files on `sdist` Python distribution
0 commit comments