Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/5
This commit was merged in pull request #5.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import * as React from 'react';
|
||||
import { ResolveTemplateRouteQuery, ResolveTemplateRouteResult } from '../models';
|
||||
import { ApprovalRouteApi } from '../services/api';
|
||||
import { useAsyncSubmit } from './useAsyncSubmit';
|
||||
|
||||
export interface ResolveRoute {
|
||||
result?: ResolveTemplateRouteResult;
|
||||
isBusy: boolean;
|
||||
error?: string;
|
||||
resolve: (query: ResolveTemplateRouteQuery) => void;
|
||||
fail: (message: string) => void;
|
||||
}
|
||||
|
||||
/** Диагностический запрос «как разрешится маршрут» и его состояние. */
|
||||
export function useResolveRoute(api: ApprovalRouteApi): ResolveRoute {
|
||||
const [result, setResult] = React.useState<ResolveTemplateRouteResult | undefined>();
|
||||
const submit = useAsyncSubmit();
|
||||
|
||||
const resolve = (query: ResolveTemplateRouteQuery): void => {
|
||||
// Прошлый результат убираем сразу: показывать его рядом с новыми
|
||||
// параметрами формы — вводить пользователя в заблуждение.
|
||||
setResult(undefined);
|
||||
submit.run(() => api.templateRoutes.resolve(query).then(setResult));
|
||||
};
|
||||
|
||||
return { result, isBusy: submit.isBusy, error: submit.error, resolve, fail: submit.fail };
|
||||
}
|
||||
Reference in New Issue
Block a user