Skip to content

Commit 814e529

Browse files
committed
WIP: hot tier refresh
1 parent a53b1c1 commit 814e529

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

src/hooks/useHotTier.ts

+1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export const useHotTier = (streamName: string, hasSettingsAccess: boolean) => {
6363
return {
6464
getHotTierInfoError,
6565
getHotTierInfoLoading,
66+
refetchHotTierInfo,
6667
updateHotTier,
6768
deleteHotTier,
6869
isDeleting,

src/pages/Stream/Views/Manage/Management.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const Management = (props: { schemaLoading: boolean }) => {
4242
isLoading={isHotTierLoading || isRetentionLoading}
4343
updateRetentionConfig={getRetentionConfig.updateLogStreamRetention}
4444
updateHotTierInfo={hotTierFetch.updateHotTier}
45+
refetchHotTierInfo={hotTierFetch.refetchHotTierInfo}
4546
deleteHotTierInfo={hotTierFetch.deleteHotTier}
4647
isDeleting={hotTierFetch.isDeleting}
4748
isUpdating={hotTierFetch.isUpdating}

src/pages/Stream/Views/Manage/Settings.tsx

+18-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1-
import { Box, Button, Divider, Loader, Modal, NumberInput, Stack, TextInput } from '@mantine/core';
1+
import { Box, Button, Divider, Group, Loader, Modal, NumberInput, px, Stack, TextInput } from '@mantine/core';
22
import classes from '../../styles/Management.module.css';
33
import { Text } from '@mantine/core';
44
import { useAppStore } from '@/layouts/MainLayout/providers/AppProvider';
55
import { useForm } from '@mantine/form';
66
import _ from 'lodash';
77
import { useCallback, useEffect, useState } from 'react';
88
import { useStreamStore } from '../../providers/StreamProvider';
9-
import { IconCheck, IconTrash, IconX } from '@tabler/icons-react';
9+
import { IconCheck, IconTrash, IconX, IconReload } from '@tabler/icons-react';
1010
import { sanitizeBytes, convertGibToBytes } from '@/utils/formatBytes';
1111
import timeRangeUtils from '@/utils/timeRangeUtils';
1212
import ErrorView from './ErrorView';
1313
import RestrictedView from '@/components/Misc/RestrictedView';
14+
import IconButton from '@/components/Button/IconButton';
1415

1516
const { formatDateWithTimezone } = timeRangeUtils;
1617

18+
const renderRefreshIcon = () => <IconReload size={px('1rem')} stroke={1.5} />;
19+
1720
const Header = () => {
1821
return (
1922
<Stack className={classes.headerContainer} style={{ minHeight: '3rem', maxHeight: '3rem' }}>
@@ -168,6 +171,7 @@ const DeleteHotTierModal = (props: {
168171

169172
const HotTierConfig = (props: {
170173
updateHotTierInfo: ({ size }: { size: string }) => void;
174+
refetchHotTierInfo: () => void;
171175
deleteHotTierInfo: ({ onSuccess }: { onSuccess: () => void }) => void;
172176
isDeleting: boolean;
173177
isUpdating: boolean;
@@ -228,9 +232,17 @@ const HotTierConfig = (props: {
228232
/>
229233
<Stack style={{ flexDirection: 'row', justifyContent: 'space-between' }} gap={8}>
230234
<Text className={classes.fieldTitle}>Hot Tier Storage Size</Text>
231-
{!hotTierNotSet && streamType === 'UserDefined' ? (
235+
<Group style={{ justifyContent: 'end' }}>
236+
<IconButton
237+
size={38}
238+
renderIcon={renderRefreshIcon}
239+
onClick={props.refetchHotTierInfo}
240+
tooltipLabel="Refresh now"
241+
/>
242+
{/* {!hotTierNotSet && streamType === 'UserDefined' ? ( */}
232243
<IconTrash onClick={openDeleteModal} stroke={1.2} size="1.2rem" className={classes.deleteIcon} />
233-
) : null}
244+
{/* ) : null} */}
245+
</Group>
234246
</Stack>
235247
<Stack style={{ flexDirection: 'row', justifyContent: 'space-between', height: '3.8rem' }}>
236248
<Stack gap={4} style={{ ...(hotTierNotSet ? { display: 'none' } : {}) }}>
@@ -310,6 +322,7 @@ const Settings = (props: {
310322
isLoading: boolean;
311323
updateRetentionConfig: ({ config }: { config: any }) => void;
312324
updateHotTierInfo: ({ size }: { size: string }) => void;
325+
refetchHotTierInfo: () => void;
313326
deleteHotTierInfo: ({ onSuccess }: { onSuccess: () => void }) => void;
314327
isDeleting: boolean;
315328
isUpdating: boolean;
@@ -333,6 +346,7 @@ const Settings = (props: {
333346
) : (
334347
<>
335348
<HotTierConfig
349+
refetchHotTierInfo={props.refetchHotTierInfo}
336350
updateHotTierInfo={props.updateHotTierInfo}
337351
deleteHotTierInfo={props.deleteHotTierInfo}
338352
isDeleting={props.isDeleting}

0 commit comments

Comments
 (0)