Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork23
Releases: reactive-python/reactpy-django
Releases · reactive-python/reactpy-django
5.2.1
923e309
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Changed
- Use the latest version of
@reactpy/client
which includes a fix for needless client-side component re-creation.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
5.2.0
9295abc
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
- User login/logout features!
reactpy_django.hooks.use_auth
to providepersistentlogin
andlogout
functionality to your components.settings.py:REACTPY_AUTH_TOKEN_MAX_AGE
to control the maximum seconds before ReactPy's login token expires.settings.py:REACTPY_CLEAN_AUTH_TOKENS
to control whether ReactPy should clean up expired authentication tokens during automatic cleanups.
- Automatically convert Django forms to ReactPy forms via the new
reactpy_django.components.django_form
component! - The ReactPy component tree can now be forcibly re-rendered via the new
reactpy_django.hooks.use_rerender
hook.
Changed
- Refactoring of internal code to improve maintainability. No changes to publicly documented API.
Fixed
- Fixed bug where pre-rendered components could generate a
SynchronousOnlyOperation
exception if they access a freshly logged out Django user object.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
5.1.1
d663d12
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Fixed
- Fixed regression in v5.1.0 where components would sometimes not output debug messages when
settings.py:DEBUG
is enabled.
Changed
- Set upper limit on ReactPy version to
<2.0.0
. - ReactPy web modules are now streamed in chunks.
- ReactPy web modules are now streamed using asynchronous file reading to improve performance.
- Performed refactoring to utilize
ruff
as this repository's linter.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
5.1.0
2abe5ce
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
settings.py:REACTPY_ASYNC_RENDERING
to enable asynchronous rendering of components.
Changed
- Bumped the minimum ReactPy version to
1.1.0
.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
5.0.0
95f8abf
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Changed
- Now using ReactPy-Router v1 for URL routing, which comes with a slightly different API than before.
- Removed dependency on
aiofile
.
Removed
- Removed the followingdeprecated features:
- The
compatibility
argument onreactpy_django.components.view_to_component
reactpy_django.components.view_to_component
usage as a decoratorreactpy_django.decorators.auth_required
reactpy_django.REACTPY_WEBSOCKET_PATH
settings.py:REACTPY_WEBSOCKET_URL
- The
Assets2
Uh oh!
There was an error while loading.Please reload this page.
4.0.0
9b36b6d
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
- Client-side Python components can now be rendered via the new
{% pyscript_component %}
template tag- You must first call the
{% pyscript_setup %}
template tag to load PyScript dependencies
- You must first call the
- Client-side components can be embedded into existing server-side components via
reactpy_django.components.pyscript_component
. - Tired of writing JavaScript? You can now write PyScript code that runs directly within client browser via the
reactpy_django.html.pyscript
element.- This is a viable substitution for most JavaScript code.
Changed
New syntax for
use_query
anduse_mutation
hooks. Here's a quick comparison of the changes:query=use_query(QueryOptions(thread_sensitive=True),get_items,foo="bar")# Oldquery=use_query(get_items, {"foo":"bar"},thread_sensitive=True)# Newmutation=use_mutation(MutationOptions(thread_sensitive=True),remove_item)# Oldmutation=use_mutation(remove_item,thread_sensitive=True)# New
Removed
QueryOptions
andMutationOptions
have been removed. The value contained within these objects are now passed directly into the hook.
Fixed
- Resolved a bug where Django-ReactPy would not properly detect
settings.py:DEBUG
.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.8.1
d45d2ec
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
- Python 3.12 compatibility
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.8.0
c80f94d
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
- Built-in cross-process communication mechanism via the
reactpy_django.hooks.use_channel_layer
hook. - Access to the root component's
id
via thereactpy_django.hooks.use_root_id
hook. - More robust control over ReactPy clean up tasks!
settings.py:REACTPY_CLEAN_INTERVAL
to control how often ReactPy automatically performs cleaning tasks.settings.py:REACTPY_CLEAN_SESSIONS
to control whether ReactPy should clean up expired sessions during automatic cleanups.settings.py:REACTPY_CLEAN_USER_DATA
to control whether ReactPy should clean up orphaned user data during automatic cleanups.python manage.py clean_reactpy
command to manually perform ReactPy clean up tasks.
Changed
- Simplified code for cascading deletion of user data.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1 person reacted
3.7.0
162406b
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
- An "offline component" can now be displayed when the client disconnects from the server.
- URL router now supports a
*
wildcard to create default routes.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.6.0
9607a8d
This commit was created on GitHub.com and signed with GitHub’sverified signature. The key has expired.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Added
- Built-in Single Page Application (SPA) support!
reactpy_django.router.django_router
can be used to render your Django application as a SPA.
- SEO compatible rendering!
settings.py:REACTPY_PRERENDER
can be set toTrue
to make components pre-render by default.- Or, you can enable it on individual components via the template tag:
{% component "..." prerender="True" %}
.
- New
view_to_iframe
feature!reactpy_django.components.view_to_iframe
uses an<iframe>
to render a Django view.reactpy_django.utils.register_iframe
tells ReactPy which viewsview_to_iframe
can use.
- New Django
User
related features!reactpy_django.hooks.use_user
can be used to access the current user.reactpy_django.hooks.use_user_data
provides a simplified interface for storing user key-value data.reactpy_django.decorators.user_passes_test
is inspired by theequivalent Django decorator, but ours works with ReactPy components.settings.py:REACTPY_AUTO_RELOGIN
will cause component WebSocket connections to automaticallyre-login users that are already authenticated. This is useful to continuously updatelast_login
timestamps and refresh theDjango login session.
Changed
- Renamed undocumented utility function
ComponentPreloader
toRootComponentFinder
. - It is now recommended to call
as_view()
when usingview_to_component
orview_to_iframe
with Class Based Views. - For thread safety,
thread_sensitive=True
has been enabled in allsync_to_async
functions where ORM queries are possible. reactpy_django.hooks.use_mutation
now has a__call__
method. So rather than writingmy_mutation.execute(...)
, you can now writemy_mutation(...)
.
Deprecated
- The
compatibility
argument onreactpy_django.components.view_to_component
is deprecated.- Use
view_to_iframe
as a replacement.
- Use
reactpy_django.components.view_to_component
usage as a decorator is deprecated.- Check the docs on how to use
view_to_component
as a function instead.
- Check the docs on how to use
reactpy_django.decorators.auth_required
is deprecated.- Use
reactpy_django.decorators.user_passes_test
instead. - An equivalent to
auth_required
's default is@user_passes_test(lambda user: user.is_active)
.
- Use
Assets2
Uh oh!
There was an error while loading.Please reload this page.