@thumbtack/tp-ui-react-input-row v0.2.4
package: '@thumbtack/tp-ui-react-input-row' kit: layout/input-row.yaml platform: react
url: /api/components/layout/input-row/react/
import Alert from './../../../../www/src/components/alert';
Examples
InputRow
with an Input
and Button
The widthRatios
prop in this example tells the input to take up as much space as possible.
<InputRow widthRatios={[1, null]}>
<Input placeholder="Enter a zip code" onChange={() => {}} />
<Button>Find a pro</Button>
</InputRow>
Custom components within InputRow
The Input
and Button
components use React's Context API to remove their rounded borders when used within an InputRow
.
The InputRow
exports its React context as InputRowContext
. This makes it possible to use custom components within InputRow
.
To use InputRowContext
, start by importing it within your component:
import { InputRowContext } from '@thumbtack/tp-ui-react-input-row';
Within your component's JSX, you'll use <InputRowContext.Consumer>
to gain access to three booleans: isWithinInputRow
, isFirstInputRowChild
, isLastInputRowChild
.
Here's an example:
<InputRowContext.Consumer>
{({ isWithinInputRow, isFirstInputRowChild, isLastInputRowChild }) => <div />}
</InputRowContext.Consumer>
We recommend doing the following with these booleans:
- Remove your component's right border when
isWithinInputRow && !isLastInputRowChild
. - Remove left rounded corners when
isWithinInputRow && !isFirstInputRowChild
. - Remove right rounded corners when
isWithinInputRow && !isLastInputRowChild
.
You can learn more about React's Context API in the React documentation.