Skip to main content

reflex-debounce-input

main branch test status PyPI version

A wrapper around the generic react-debounce-input component for the python-based full stack reflex framework.

Since all events in reflex are processed on the server-side, a client-side input debounce makes the app feel much less sluggish when working will fully controlled text inputs.

Example

import reflex as rx

from reflex_debounce_input import debounce_input

class State(rx.State):
    query: str = ""


app = rx.App(state=State)


@app.add_page
def index():
    return rx.center(
        rx.hstack(
            debounce_input(
                rx.input(
                    placeholder="Query",
                    value=State.query,
                    on_change=State.set_query,
                ),
            ),
            rx.text(State.query),
        )
    )

app.compile()
reflex init
reflex run

Also work with textarea, simply pass rx.text_area as the child. See larger example in the repo.

Usage

  1. Include reflex-debounce-input in your project requirements.txt.
  2. Include a specific version of react-debounce-input in rxconfig.py.
config = rx.Config(
    ...,
    frontend_packages=[
        "react-debounce-input@3.3.0",
    ],
)
  1. Wrap reflex_debounce_input.debounce_input around the component to debounce (typically a rx.input or rx.text_area).

Props

See documentation for react-debounce-input.

min_length: int = 0

Minimal length of text to start notify, if value becomes shorter then minLength (after removing some characters), there will be a notification with empty value ''.

debounce_timeout: int = 100

Notification debounce timeout in ms. If set to -1, disables automatic notification completely. Notification will only happen by pressing Enter then.

force_notify_by_enter: bool = True

Notification of current value will be sent immediately by hitting Enter key. Enabled by-default. Notification value follows the same rule as with debounced notification, so if Length is less, then minLength - empty value '' will be sent back.

NOTE: if onKeyDown callback prop was present, it will be still invoked transparently.

force_notify_on_blur: bool = True

Same as force_notify_by_enter, but notification will be sent when focus leaves the input field.

Changelog

v0.3 - 2023-05-19

  • Support pynecone >= 0.1.30 (pynecone.var changed to pynecone.vars)

v0.2 - 2023-04-24

  • import reflex_debounce_input automatically adds react-debounce-input to Config.frontend_packages
  • fix example in README, missing comma
  • improve test assertions when exporting example project

v0.1 - 2023-04-21

Initial Release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reflex-debounce-input-0.4.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reflex_debounce_input-0.4-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file reflex-debounce-input-0.4.tar.gz.

File metadata

  • Download URL: reflex-debounce-input-0.4.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for reflex-debounce-input-0.4.tar.gz
Algorithm Hash digest
SHA256 9383d089c0ffa055f2f50ff678d2267d9206383a120d805b736954045b264336
MD5 f628afa848c6f247b17ac767ca3ffc20
BLAKE2b-256 4715b4005ddca559a2d113049386f0e1a778443ae4ab6133450d2a7c152f61d6

See more details on using hashes here.

File details

Details for the file reflex_debounce_input-0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for reflex_debounce_input-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2bd81714accdc09ffa5a1ce70cd9393f858d328a5539fb6ea515da7a1095030f
MD5 fcabbb0a15e97f519a8677704af25ed0
BLAKE2b-256 ffbce305ed0434b89c61b84c6b008822980b9b8b4f74cd84b8b054f10e055691

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page