Skip to main content

Reflex full-stack framework wrapper around react-debounce-input

Project description

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

Project details


Release history Release notifications | RSS feed

This version

0.4

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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page