Files
twenty/packages/twenty-website/src/content/twenty-ui/input/text.mdx
Ady Beraud ff1bca1816 Docs modifications (#5804)
- Fixes #5504
- Fixes #5503
- Return 404 when the page does not exist
- Modified the footer in order to align it properly
- Removed "noticed something to change" in each table of content
- Fixed the URLs of the edit module 
- Added the edit module to Developers
- Fixed header style on the REST API page.
- Edited the README to point to Developers
- Fixed selected state when clicking on sidebar elements

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-06-11 09:45:17 +02:00

212 lines
5.8 KiB
Plaintext

---
title: Text
icon: TbTextSize
image: /images/user-guide/notes/notes_header.png
---
## Text Input
Allows users to enter and edit text.
<ArticleTabs label1="Usage" label2="Props">
<ArticleTab>
<SandpackEditor content={`import { RecoilRoot } from "recoil";
import { TextInput } from "@/ui/input/components/TextInput";
export const MyComponent = () => {
const handleChange = (text) => {
console.log("Input changed:", text);
};
const handleKeyDown = (event) => {
console.log("Key pressed:", event.key);
};
return (
<RecoilRoot>
<TextInput
className
label="Username"
onChange={handleChange}
fullWidth={false}
disableHotkeys={false}
error="Invalid username"
onKeyDown={handleKeyDown}
RightIcon={null}
/>
</RecoilRoot>
);
};
`} />
</ArticleTab>
<ArticleTab>
<ArticlePropsTable options={[
['className', 'string', 'Optional name for additional styling', ''],
['label', 'string', 'Represents the label for the input', ''],
['onChange', 'function', 'The function called when the input value changes', ''],
['fullWidth', 'boolean', 'Indicates whether the input should take up 100% of the width', ''],
['disableHotkeys', 'boolean', 'Indicates whether hotkeys are enabled for the input', '`false`'],
['error', 'string', 'Represents the error message to be displayed. When provided, it also adds an icon error on the right side of the input', ''],
['onKeyDown', 'function', 'Called when a key is pressed down while the input field is focused. Receives a `React.KeyboardEvent` as an argument', ''],
['RightIcon', 'IconComponent', 'An optional icon component displayed on the right side of the input', '']
]} />
The component also accepts other HTML input element props.
</ArticleTab>
</ArticleTabs>
## Autosize Text Input
Text input component that automatically adjusts its height based on the content.
<ArticleTabs label1="Usage" label2="Props">
<ArticleTab>
<SandpackEditor content={`import { RecoilRoot } from "recoil";
import { AutosizeTextInput } from "@/ui/input/components/AutosizeTextInput";
export const MyComponent = () => {
return (
<RecoilRoot>
<AutosizeTextInput
onValidate={() => console.log("onValidate function fired")}
minRows={1}
placeholder="Write a comment"
onFocus={() => console.log("onFocus function fired")}
variant="icon"
buttonTitle
value="Task: "
/>
</RecoilRoot>
);
};`} />
</ArticleTab>
<ArticleTab>
<ArticlePropsTable options={[
['onValidate', 'function', 'The callback function you want to trigger when the user validates the input', ''],
['minRows', 'number', 'The minimum number of rows for the text area', '1'],
['placeholder', 'string', 'The placeholder text you want to display when the text area is empty', ''],
['onFocus', 'function', 'The callback function you want to trigger when the text area gains focus', ''],
['variant', 'string', 'The variant of the input. Options include: `default`, `icon`, and `button`', 'default'],
['buttonTitle', 'string', 'The title for the button (only applicable for the button variant)', ''],
['value', 'string', 'The initial value for the text area', 'Empty string']
]} />
</ArticleTab>
</ArticleTabs>
## Entity Title Double Text Input
Displays a pair of text inputs side by side, allowing the user to edit two related values simultaneously.
<ArticleTabs label1="Usage" label2="Props">
<ArticleTab>
<SandpackEditor content={`import { RecoilRoot } from "recoil";
import React, { useState } from "react";
import { EntityTitleDoubleTextInput } from "@/ui/input/components/EntityTitleDoubleTextInput";
export const MyComponent = () => {
const [firstValue, setFirstValue] = useState(
"First Value"
);
const [secondValue, setSecondValue] = useState(
"Second Value"
);
const handleInputChange = (newFirstValue, newSecondValue) => {
setFirstValue(newFirstValue);
setSecondValue(newSecondValue);
};
return (
<RecoilRoot>
<EntityTitleDoubleTextInput
firstValue={firstValue}
secondValue={secondValue}
firstValuePlaceholder="Enter First Value"
secondValuePlaceholder="Enter Second Value"
onChange={handleInputChange}
/>
</RecoilRoot>
);
};`} />
</ArticleTab>
<ArticleTab>
<ArticlePropsTable options={[
['firstValue', 'string', 'The value for the first text input'],
['secondValue', 'string', 'The value for the second text input'],
['firstValuePlaceholder', 'string', 'Placeholder text for the first text input, displayed when the input is empty'],
['secondValuePlaceholder', 'string', 'Placeholder text for the second text input, displayed when the input is empty'],
['onChange', 'function', 'The callback function you want to trigger when the text input changes']
]} />
</ArticleTab>
</ArticleTabs>
## Text Area
Allows you to create multi-line text inputs.
<ArticleTabs label1="Usage" label2="Props">
<ArticleTab>
<SandpackEditor content={`import { TextArea } from "@/ui/input/components/TextArea";
export const MyComponent = () => {
return (
<TextArea
disabled={false}
minRows={4}
onChange={()=>console.log('On change function fired')}
placeholder="Enter text here"
value=""
/>
);
};`} />
</ArticleTab>
<ArticleTab>
<ArticlePropsTable options={[
['disabled', 'boolean', 'Indicates whether the text area is disabled', ''],
['minRows', 'number', 'Minimum number of visible rows for the text area.', '1'],
['onChange', 'function', 'Callback function triggered when the text area content changes', ''],
['placeholder', 'string', 'Placeholder text displayed when the text area is empty', ''],
['value', 'string', 'The current value of the text area', 'Empty string']
]} />
</ArticleTab>
</ArticleTabs>
<ArticleEditContent></ArticleEditContent>