-
-
Notifications
You must be signed in to change notification settings - Fork 229
Expand file tree
/
Copy pathuseEmptyMessages.tsx
More file actions
52 lines (45 loc) · 1.86 KB
/
useEmptyMessages.tsx
File metadata and controls
52 lines (45 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import React, { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { Button, ListEmptyMessage } from 'components';
import { QUICK_START_URL } from 'consts';
import { goToUrl } from 'libs';
export const useEmptyMessages = ({
clearFilter,
noData,
isDisabledClearFilter,
}: {
clearFilter?: () => void;
noData?: boolean;
isDisabledClearFilter?: boolean;
}) => {
const { t } = useTranslation();
const renderEmptyMessage = useCallback<() => React.ReactNode>(() => {
if (noData && isDisabledClearFilter) {
return (
<ListEmptyMessage
title={t('projects.run.empty_message_title')}
message={t('projects.run.quickstart_message_text')}
>
<Button variant="primary" external onClick={() => goToUrl(QUICK_START_URL, true)}>{t('common.quickstart')}</Button>
</ListEmptyMessage>
);
}
return (
<ListEmptyMessage title={t('projects.run.nomatch_message_title')} message={t('projects.run.nomatch_message_text')}>
<Button disabled={isDisabledClearFilter} onClick={clearFilter}>
{t('common.clearFilter')}
</Button>
</ListEmptyMessage>
);
}, [isDisabledClearFilter, clearFilter]);
const renderNoMatchMessage = useCallback<() => React.ReactNode>(() => {
return (
<ListEmptyMessage title={t('projects.run.nomatch_message_title')} message={t('projects.run.nomatch_message_text')}>
<Button disabled={isDisabledClearFilter} onClick={clearFilter}>
{t('common.clearFilter')}
</Button>
</ListEmptyMessage>
);
}, [isDisabledClearFilter, clearFilter]);
return { renderEmptyMessage, renderNoMatchMessage } as const;
};