Skip to content

Commit 3bffbf8

Browse files
committed
Enhance Sentinel databases result UI
- Created Summary component for result feedback - Fixed ResultColumn sizing property to minSize
1 parent b6fe67a commit 3bffbf8

File tree

4 files changed

+88
-33
lines changed

4 files changed

+88
-33
lines changed

redisinsight/ui/src/pages/autodiscover-sentinel/sentinel-databases-result/components/SentinelDatabasesResult/SentinelDatabasesResult.stories.tsx

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,20 +87,25 @@ const meta: Meta<typeof SentinelDatabasesResult> = {
8787
component: SentinelDatabasesResult,
8888
args: {
8989
columns: columnsMock,
90+
countSuccessAdded: mastersMock.filter(
91+
(m) => m.status === AddRedisDatabaseStatus.Success,
92+
).length,
9093
},
9194
}
9295

9396
export default meta
9497
type Story = StoryObj<typeof SentinelDatabasesResult>
9598

9699
const DefaultRender = () => {
97-
let countSuccessAdded = mastersMock.length - 2
98100
return (
99101
<SentinelDatabasesResult
100102
onViewDatabases={action('onViewDatabases')}
101103
columns={columnsMock}
102104
masters={mastersMock}
103-
countSuccessAdded={countSuccessAdded}
105+
countSuccessAdded={
106+
mastersMock.filter((m) => m.status === AddRedisDatabaseStatus.Success)
107+
.length
108+
}
104109
onBack={action('onBack')}
105110
/>
106111
)
@@ -110,18 +115,49 @@ export const Default: Story = {
110115
render: () => <DefaultRender />,
111116
}
112117

118+
export const AllValid: Story = {
119+
args: {
120+
columns: colFactory(
121+
action('onChangedInput'),
122+
action('onAddInstance'),
123+
false,
124+
1,
125+
1,
126+
),
127+
countSuccessAdded: 1,
128+
masters: [
129+
mastersMock.find((m) => m.status === AddRedisDatabaseStatus.Success) ||
130+
mastersMock[0],
131+
],
132+
onBack: action('onBack'),
133+
},
134+
}
135+
113136
export const AllInvalid: Story = {
114137
args: {
115-
columns: columnsMock,
116-
masters: [],
138+
columns: colFactory(
139+
action('onChangedInput'),
140+
action('onAddInstance'),
141+
false,
142+
0,
143+
1,
144+
),
145+
masters: [mastersMock[0]],
117146
onBack: action('onBack'),
147+
countSuccessAdded: 0,
118148
},
119149
}
120150

121151
export const Empty: Story = {
122152
args: {
123-
columns: columnsMock,
124-
masters: [mastersMock[0]],
153+
columns: colFactory(
154+
action('onChangedInput'),
155+
action('onAddInstance'),
156+
false,
157+
0,
158+
0,
159+
),
160+
masters: [],
125161
onBack: action('onBack'),
126162
countSuccessAdded: 0,
127163
},

redisinsight/ui/src/pages/autodiscover-sentinel/sentinel-databases-result/components/SentinelDatabasesResult/SentinelDatabasesResult.tsx

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { ModifiedSentinelMaster } from 'uiSrc/slices/interfaces'
66
import MessageBar from 'uiSrc/components/message-bar/MessageBar'
77
import { AutodiscoveryPageTemplate } from 'uiSrc/templates'
88

9-
import { Col, Row } from 'uiSrc/components/base/layout/flex'
9+
import { Col, FlexItem, Row } from 'uiSrc/components/base/layout/flex'
1010
import { PrimaryButton } from 'uiSrc/components/base/forms/buttons'
11-
import { ColorText, Text } from 'uiSrc/components/base/text'
11+
import { Text } from 'uiSrc/components/base/text'
1212
import { ColumnDef, Table } from 'uiSrc/components/base/layout/table'
1313

1414
import {
@@ -18,6 +18,7 @@ import {
1818
} from 'uiSrc/components/auto-discover'
1919
import { Spacer } from 'uiSrc/components/base/layout'
2020
import { Header } from 'uiSrc/components/auto-discover/Header'
21+
import { SummaryText } from './Summary'
2122

2223
export interface Props {
2324
countSuccessAdded: number
@@ -73,27 +74,6 @@ const SentinelDatabasesResult = ({
7374
setItems(itemsTemp)
7475
}
7576

76-
const SummaryText = () => (
77-
<Text component="div" color="primary" data-testid="summary">
78-
<ColorText variant="semiBold" size="S">
79-
Summary:&nbsp;
80-
</ColorText>
81-
{countSuccessAdded ? (
82-
<ColorText size="S">
83-
Successfully added {countSuccessAdded}
84-
{' primary group(s)'}
85-
{countFailAdded ? '; ' : ' '}
86-
</ColorText>
87-
) : null}
88-
{countFailAdded ? (
89-
<ColorText size="S">
90-
Failed to add {countFailAdded}
91-
{' primary group(s)'}
92-
</ColorText>
93-
) : null}
94-
</Text>
95-
)
96-
9777
return (
9878
<AutodiscoveryPageTemplate>
9979
<DatabaseContainer justify="start">
@@ -105,7 +85,7 @@ const SentinelDatabasesResult = ({
10585

10686
<Spacer size="m" />
10787
<DatabaseWrapper>
108-
{items.length === 0 || loading ? (
88+
{loading ? (
10989
<Col full centered>
11090
<Text size="XL" variant="semiBold">
11191
{message}
@@ -122,11 +102,22 @@ const SentinelDatabasesResult = ({
122102
desc: false,
123103
},
124104
]}
105+
emptyState={() => (
106+
<Col centered full>
107+
<FlexItem padding={13}>
108+
<Text size="L">{message}</Text>
109+
</FlexItem>
110+
</Col>
111+
)}
112+
stripedRows
125113
/>
126114
)}
127115
</DatabaseWrapper>
128116
<MessageBar opened={!!countSuccessAdded || !!countFailAdded}>
129-
<SummaryText />
117+
<SummaryText
118+
countSuccessAdded={countSuccessAdded}
119+
countFailAdded={countFailAdded}
120+
/>
130121
</MessageBar>
131122
</DatabaseContainer>
132123
<Footer>
@@ -135,7 +126,6 @@ const SentinelDatabasesResult = ({
135126
size="m"
136127
onClick={handleViewDatabases}
137128
data-testid="btn-view-databases"
138-
disabled={countSuccessAdded === 0}
139129
>
140130
View Databases
141131
</PrimaryButton>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { ColorText, Text } from 'uiSrc/components/base/text'
2+
import React from 'react'
3+
4+
export const SummaryText = ({
5+
countSuccessAdded,
6+
countFailAdded,
7+
}: {
8+
countSuccessAdded: number
9+
countFailAdded: number
10+
}) => (
11+
<Text component="div" color="primary" data-testid="summary">
12+
<ColorText variant="semiBold" size="S">
13+
Summary:&nbsp;
14+
</ColorText>
15+
{countSuccessAdded ? (
16+
<ColorText size="S">
17+
Successfully added {countSuccessAdded}
18+
{' primary group(s)'}
19+
{countFailAdded ? '; ' : ' '}
20+
</ColorText>
21+
) : null}
22+
{countFailAdded ? (
23+
<ColorText size="S">
24+
Failed to add {countFailAdded}
25+
{' primary group(s)'}
26+
</ColorText>
27+
) : null}
28+
</Text>
29+
)

redisinsight/ui/src/pages/autodiscover-sentinel/sentinel-databases-result/components/column-definitions/ResultColumn.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export const ResultColumn = (
6262
id: 'message',
6363
accessorKey: 'message',
6464
enableSorting: true,
65-
maxSize: addActions ? 250 : 110,
65+
minSize: addActions ? 250 : 110,
6666
cell: ({
6767
row: {
6868
original: { status, message, name, error, alias, loading = false },

0 commit comments

Comments
 (0)