Browse Source

adding success alert for topic recreation and fixed select arrow position (#2104)

Robert Azizbekyan 3 years ago
parent
commit
657025dfd4

+ 1 - 0
kafka-ui-react-app/src/components/common/Icons/DropdownArrowIcon.tsx

@@ -13,6 +13,7 @@ const DropdownArrowIcon: React.FC<Props> = ({ isOpen }) => {
       width="24"
       height="24"
       fill="none"
+      style={{ position: 'absolute', right: '5px' }}
       stroke="currentColor"
       strokeWidth="2"
       color={theme.icons.dropdownArrowIcon}

+ 12 - 0
kafka-ui-react-app/src/redux/reducers/topics/__test__/reducer.spec.ts

@@ -585,6 +585,18 @@ describe('topics Slice', () => {
 
         expect(getTypeAndPayload(store)).toEqual([
           { type: recreateTopic.pending.type },
+          { type: showSuccessAlert.pending.type },
+          {
+            type: alertAdded.type,
+            payload: {
+              id: 'message-topic-local',
+              title: '',
+              type: 'success',
+              createdAt: global.Date.now(),
+              message: 'Topic successfully recreated!',
+            },
+          },
+          { type: showSuccessAlert.fulfilled.type },
           {
             type: recreateTopic.fulfilled.type,
             payload: { [topicName]: { ...recreateResponse } },

+ 9 - 1
kafka-ui-react-app/src/redux/reducers/topics/topicsSlice.ts

@@ -220,9 +220,17 @@ export const deleteTopic = createAsyncThunk<
 export const recreateTopic = createAsyncThunk<
   { topic: Topic },
   RecreateTopicRequest
->('topic/recreateTopic', async (payload, { rejectWithValue }) => {
+>('topic/recreateTopic', async (payload, { rejectWithValue, dispatch }) => {
   try {
+    const { topicName, clusterName } = payload;
     const topic = await topicsApiClient.recreateTopic(payload);
+    dispatch(
+      showSuccessAlert({
+        id: `message-${topicName}-${clusterName}`,
+        message: 'Topic successfully recreated!',
+      })
+    );
+
     return { topic };
   } catch (err) {
     return rejectWithValue(await getResponse(err as Response));