Soundcheck.Check.Refactor.ChangeWithoutDebounce (soundcheck v0.1.0)

Copy Markdown View Source

Basics

This check is disabled by default.

Learn how to enable it via .credo.exs.

This check has a base priority of low and works with any version of Elixir.

Explanation

Flags text-like inputs in a form with phx-change that set no phx-debounce. Without it, every keystroke sends a change event to the server and re-runs validation.

Before:

<.form for={@form} phx-change="search">
  <.input field={@form[:q]} type="search" />
</.form>

After:

<.input field={@form[:q]} type="search" phx-debounce="300" />

Inputs count as text-like when their type is in input_types, or when an <.input> component sets no type (it defaults to text). <textarea> always counts. A phx-debounce or phx-throttle on the input or on the form silences the check.

Confidence: medium. Tier: syntactic (works without compiling).

Check-Specific Parameters

Use the following parameters to configure this check:

:excluded_paths

Paths to skip (atoms, binaries as path segments, or regexes).

This parameter defaults to [~r/\/test\//, "test"].

:strict

Unused.

This parameter defaults to false.

:input_types

Input types that count as text-like.

This parameter defaults to ["text", "search", "email", "textarea", "url", "tel"].

General Parameters

Like with all checks, general params can be applied.

Parameters can be configured via the .credo.exs config file.