)
}
export function QueryState({
isLoading,
isError,
hasData = false,
error,
onRetry,
skeleton,
children,
}: QueryStateProps) {
// Keep the child at the same reconciliation position when a background
// request fails. Changing the wrapper would unmount uncontrolled form fields.
return (
<>
{isLoading ? (
{skeleton ?? }
) : isError ? (
{hasData ? 'Не удалось обновить данные — показана предыдущая версия' : 'Не удалось загрузить данные'}{error?.message ?? 'Произошла ошибка при загрузке.'}
{onRetry ? (
) : null}
) : null}
{!isLoading && (!isError || hasData) ? children : null}
>
)
}