Skip to content
Reeflow
Start Building

Input Control

The <reeflow-input> component captures free-form user input: text, numbers, dates, and more. Its value is available to queries via RF_PARAM() using its control-id.

import { ReeflowProvider, ReeflowInput, ReeflowTable } from '@reeflow/react';
<ReeflowProvider authToken="your-token">
<ReeflowInput controlId="min-price" type="number" label="Minimum price" value={0} min="0" />
<ReeflowTable
title="Products"
query={{
type: 'table',
columns: [{ name: 'products.name' }, { name: 'products.price' }],
filters: [
{
column: 'products.price',
operator: 'gte',
values: ["RF_PARAM('min-price')"],
},
],
}}
/>
</ReeflowProvider>;
AttributeTypeDefaultDescription
control-idstringRequired. Unique identifier used in RF_PARAM() references
type'text' | 'number' | 'date' | 'daterange' | 'email' | 'url''text'Input type. Determines validation and rendering
labelstringDisplay label above the input
placeholderstringPlaceholder text
valuestring | numberCurrent or initial value
minstringMinimum value (for number and date types)
maxstringMaximum value (for number and date types)
patternstringRegex validation pattern
debouncenumberDebounce delay in milliseconds (for text type only)
disabledbooleanfalseDisable the input
readonlybooleanfalseMake the input read-only
requiredbooleanfalseMark the input as required
  • text — Free-form text. Supports debounce to avoid re-executing queries on every keystroke.
  • number — Numeric input. Values are automatically converted to Number.
  • date — Single date picker.
  • daterange — Renders two date inputs (start and end) separated by “to”.
  • email — Email input with built-in validation.
  • url — URL input with built-in validation.

For text inputs connected to queries, use debounce to wait for the user to stop typing before triggering a query:

<ReeflowInput controlId="search" type="text" label="Search" debounce={300} />;
EventDetailDescription
reeflow-input-value-change{ controlId, value, previousValue }Fired when value changes
reeflow-input-validation-change{ controlId, isValid, errors }Fired when validation state changes