Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/15
This commit was merged in pull request #15.
This commit is contained in:
@@ -421,6 +421,12 @@ export const RequestsTableView: React.FC<IRequestsTableViewProps> = ({
|
||||
? undefined
|
||||
: (partial: IPage): void => {
|
||||
if (cancelled) return;
|
||||
// ПУСТОЙ промежуточный результат не показываем: смысл onPartial —
|
||||
// не держать экран пустым, пока отвечает более медленный источник,
|
||||
// а пустая страница как раз пустой экран и даёт, только вместо
|
||||
// «Загрузка…» на нём появляется «Вы ещё не создавали заявок» —
|
||||
// и через мгновение исчезает, когда придёт второй источник.
|
||||
if (partial.rows.length === 0) return;
|
||||
setRows(partial.rows);
|
||||
setTotalRows(partial.totalRows);
|
||||
};
|
||||
@@ -477,6 +483,18 @@ export const RequestsTableView: React.FC<IRequestsTableViewProps> = ({
|
||||
const q = debouncedQuery.trim();
|
||||
const total = totalRows;
|
||||
const visible = rows || [];
|
||||
|
||||
/**
|
||||
* Можно ли уже судить о содержимом таблицы.
|
||||
*
|
||||
* Пустоту («Вы ещё не создавали заявок») объявляем ТОЛЬКО по завершённой
|
||||
* загрузке именно ЭТОЙ таблицы (loadedKey), а не по любому пустому rows: до
|
||||
* этого rows может быть пустым по совершенно другой причине — часть источников
|
||||
* ещё в пути (см. onPartial выше, «Мои заявки» собираются из Search + REST).
|
||||
* Промежуточный НЕПУСТОЙ результат показывать можно и нужно — в нём уже есть
|
||||
* что смотреть.
|
||||
*/
|
||||
const loaded = loadedKey === dataKey || visible.length > 0;
|
||||
const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));
|
||||
|
||||
// Страница может оказаться за пределами набора: пришла из старой ссылки или
|
||||
@@ -527,8 +545,8 @@ export const RequestsTableView: React.FC<IRequestsTableViewProps> = ({
|
||||
</div>
|
||||
|
||||
{error && <div className={styles.error}>Не удалось загрузить заявки: {error}</div>}
|
||||
{!error && rows === undefined && <div className={styles.empty}>Загрузка…</div>}
|
||||
{!error && rows && total === 0 && (
|
||||
{!error && !loaded && <div className={styles.empty}>Загрузка…</div>}
|
||||
{!error && loaded && total === 0 && (
|
||||
<div className={styles.empty}>
|
||||
{q ? `По запросу «${debouncedQuery}» ничего не найдено.` : EMPTY_TEXTS[view]}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user