Перейти до вмісту
tatetUI

InlineEdit

Текст, який перетворюється на поле редагування — патерн «клікни й правь».

Редагування на місці замість «відкрий модалку → знайди поле → збережи». Зведено з трьох незалежних реалізацій InlineEdit — рядок таблиці стає полем за кліком, Enter — зберегти, Escape — скасувати.

Приклад

Назва сайту, мови версій, головна сторінка. Типові поля, які потрібні рідко, але мають бути під рукою.

Крок 2 з 3 — клікайте по кроках або ведіть станом.

64%
2500 грн
010000
АвторПерегляди

API

Props

НазваТипТиповоОпис
errorstringundefinedТекст помилки валідації споживача. Ховає кнопку збереження.
ariaLabelstring"Редагувати"Доступна назва. Обов'язкова — кнопка без тексту.
emptyTextstring"—"Порожнє значення — що показувати, коли нічого не введено.
placeholderstring"Введіть значення"
modelValuestring | numberЗначення. Використовуйте через `v-model`.
typenumbertextdateТип редагування. `text` — довільний рядок, `number` — число з валідацією NaN, `date` — нативне date-поле (формат `YYYY-MM-DD`).
saveOnBlurbooleantrueЗберігати на blur — звична поведінка рядків таблиць. `false` — зберігати лише по Enter/кліку поза полем (Enter → commit, Escape → cancel у будь-якому разі).

Події

НазваPayloadОпис
update:modelValue[value: string | number]Значення після підтвердження. Використовуйте через `v-model`.
edit[]Редагування почалось.
save[value: string | number]Зміну підтверджено (Enter, blur або клік поза полем).
cancel[]Редагування скасовано (Escape), значення не змінилось.

Слоти

НазваОпис
displayВласний рендер відображуваного значення.

Коли використовувати

Рядки таблиць і карток з поодинокими правками: автор сторінки, кількість переглядів, назва в списку. Тип number валідує NaN і не емітує його.

saveOnBlur (типово) — зберігає по втраті фокуса: звична поведінка таблиць. saveOnBlur=false — blur скасовує, зберігає лише Enter.

Коли НЕ використовувати

Для полів, які редагуються РАЗОМ з іншими в одній формі — там звичайний Input і спільна кнопка «Зберегти».

Не для великих текстів: рядок у таблиці — не місце для абзаців.

Доступність

Кнопка-рядок має aria-label з поточним значенням; поле — те самим ім'ям. Escape завжди скасовує і не «протікає» в модалку навколо (stopPropagation). Порожнє значення показується як emptyText, а не зникає. Після Enter або Escape фокус повертається на кнопку-рядок; звичайний blur не перехоплює фокус. Помилка пов'язана з полем через aria-describedby і блокує підтвердження, доки споживач її не прибере.