FormSubmitter
Defined in: core/utils/form-submitter.ts:70
FormSubmitter - управляет процессом отправки формы
Example
const submitter = new FormSubmitter(form);
// Простой submit
const result = await submitter.submit(async (values) => {
return await api.saveForm(values);
});
// Проверка состояния
if (submitter.submitting.value) {
console.log('Форма отправляется...');
}
Type Parameters
T
T extends FormFields
Constructors
Constructor
new FormSubmitter<T>(form): FormSubmitter<T>;
Defined in: core/utils/form-submitter.ts:80
Parameters
form
Форма для отправки
Returns
FormSubmitter<T>
Methods
isSubmitting()
isSubmitting(): boolean;
Defined in: core/utils/form-submitter.ts:202
Проверить, идет ли отправка формы
Returns
boolean
submit()
submit<R>(onSubmit, options?): Promise<R | null>;
Defined in: core/utils/form-submitter.ts:110
Отправить форму
Процесс:
- Помечает все поля как touched (для отображения ошибок)
- Валидирует форму
- Если валидация успешна - вызывает onSubmit
- Управляет состоянием submitting
Type Parameters
R
R
Parameters
onSubmit
(values) => R | Promise<R>
Callback для отправки данных
options?
Опции submit
Returns
Promise<R | null>
Результат от onSubmit или null если валидация не пройдена
Example
const result = await submitter.submit(async (values) => {
const response = await fetch('/api/form', {
method: 'POST',
body: JSON.stringify(values)
});
return response.json();
});
if (result === null) {
console.log('Форма не прошла валидацию');
}
submitWithResult()
submitWithResult<R>(onSubmit, options?): Promise<SubmitResult<R>>;
Defined in: core/utils/form-submitter.ts:164
Отправить форму с расширенным результатом
В отличие от submit(), возвращает объект с информацией об успехе/ошибке
Type Parameters
R
R
Parameters
onSubmit
(values) => R | Promise<R>
Callback для отправки данных
options?
Опции submit
Returns
Promise<SubmitResult<R>>
Объект SubmitResult с данными и статусом
Example
const result = await submitter.submitWithResult(async (values) => {
return await api.saveForm(values);
});
if (result.success) {
console.log('Сохранено:', result.data);
} else if (result.error) {
console.error('Ошибка:', result.error.message);
} else {
console.log('Валидация не пройдена');
}
Properties
submitting
readonly submitting: ReadonlySignal<boolean>;
Defined in: core/utils/form-submitter.ts:75
Публичный read-only сигнал состояния отправки