mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2026-01-07 13:07:22 +00:00
chore(ui): stay on the same page when the task is resolved (#12537)
* chore(ui): stay on the same page when the task is resolved * chore: update filter on reject task * chore: address comments * fix: cypress test
This commit is contained in:
parent
493c073a66
commit
59ae1d18a1
@ -359,6 +359,10 @@ describe('Tags page should work', () => {
|
||||
|
||||
verifyResponseStatusCode('@taskResolve', 200);
|
||||
verifyResponseStatusCode('@databaseSchemasPage', 200);
|
||||
cy.get('[data-testid="table"]').should('be.visible').click();
|
||||
|
||||
cy.reload();
|
||||
verifyResponseStatusCode('@databaseSchemasPage', 200);
|
||||
|
||||
cy.get('[data-testid="tags-container"]').scrollIntoView().contains(tag);
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ export const KeyHelp = ({ editorValue }: { editorValue: string }) => {
|
||||
return editorValue.length > 2 ? (
|
||||
<div className="absolute tw-right-8">
|
||||
<p
|
||||
className="text-grey-muted tw--mt-1"
|
||||
className="text-grey-muted m-t-xss"
|
||||
data-testid="key-help"
|
||||
style={{ fontSize: '10px' }}>
|
||||
<kbd>{t('label.shift')}</kbd>
|
||||
|
||||
@ -49,6 +49,7 @@ import './activity-feed-tab.less';
|
||||
import {
|
||||
ActivityFeedTabProps,
|
||||
ActivityFeedTabs,
|
||||
TaskFilter,
|
||||
} from './ActivityFeedTab.interface';
|
||||
import { ReactComponent as CheckIcon } from '/assets/svg/ic-check.svg';
|
||||
import { ReactComponent as TaskIcon } from '/assets/svg/ic-task.svg';
|
||||
@ -70,7 +71,7 @@ export const ActivityFeedTab = ({
|
||||
const [elementRef, isInView] = useElementInView(observerOptions);
|
||||
const { subTab: activeTab = 'all' } =
|
||||
useParams<{ subTab: ActivityFeedTabs }>();
|
||||
const [taskFilter, setTaskFilter] = useState<'open' | 'close'>('open');
|
||||
const [taskFilter, setTaskFilter] = useState<TaskFilter>('open');
|
||||
const [allCount, setAllCount] = useState(0);
|
||||
const [tasksCount, setTasksCount] = useState(0);
|
||||
|
||||
@ -276,6 +277,15 @@ export const ActivityFeedTab = ({
|
||||
return [0, 0];
|
||||
}, [entityThread, activeTab]);
|
||||
|
||||
const handleUpdateTaskFilter = (filter: TaskFilter) => {
|
||||
setTaskFilter(filter);
|
||||
};
|
||||
|
||||
const handleAfterTaskClose = () => {
|
||||
handleFeedFetchFromFeedList();
|
||||
handleUpdateTaskFilter('close');
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="activity-feed-tab">
|
||||
<Menu
|
||||
@ -346,7 +356,7 @@ export const ActivityFeedTab = ({
|
||||
}
|
||||
)}
|
||||
onClick={() => {
|
||||
setTaskFilter('open');
|
||||
handleUpdateTaskFilter('open');
|
||||
setActiveThread();
|
||||
}}>
|
||||
{' '}
|
||||
@ -358,7 +368,7 @@ export const ActivityFeedTab = ({
|
||||
'font-medium': taskFilter === 'close',
|
||||
})}
|
||||
onClick={() => {
|
||||
setTaskFilter('close');
|
||||
handleUpdateTaskFilter('close');
|
||||
setActiveThread();
|
||||
}}>
|
||||
{' '}
|
||||
@ -419,6 +429,7 @@ export const ActivityFeedTab = ({
|
||||
entityType={EntityType.TABLE}
|
||||
owner={owner}
|
||||
taskThread={selectedThread}
|
||||
onAfterClose={handleAfterTaskClose}
|
||||
onUpdateEntityDetails={onUpdateEntityDetails}
|
||||
/>
|
||||
) : (
|
||||
@ -426,6 +437,7 @@ export const ActivityFeedTab = ({
|
||||
entityType={isUserEntity ? entityTypeTask : entityType}
|
||||
owner={owner}
|
||||
taskThread={selectedThread}
|
||||
onAfterClose={handleAfterTaskClose}
|
||||
onUpdateEntityDetails={onUpdateEntityDetails}
|
||||
/>
|
||||
)}
|
||||
|
||||
@ -15,6 +15,7 @@ import { Column } from 'generated/entity/data/table';
|
||||
import { EntityReference } from 'generated/entity/type';
|
||||
|
||||
export type FeedKeys = 'all' | 'mentions' | 'tasks';
|
||||
export type TaskFilter = 'open' | 'close';
|
||||
|
||||
export enum ActivityFeedTabs {
|
||||
ALL = 'all',
|
||||
|
||||
@ -52,12 +52,10 @@ import {
|
||||
import { MenuInfo } from 'rc-menu/lib/interface';
|
||||
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import { updateTask, updateThread } from 'rest/feedsAPI';
|
||||
import EntityLink from 'utils/EntityLink';
|
||||
import { getEntityName } from 'utils/EntityUtils';
|
||||
import { getEntityFQN } from 'utils/FeedUtils';
|
||||
import { getEntityLink } from 'utils/TableUtils';
|
||||
import {
|
||||
fetchOptions,
|
||||
isDescriptionTask,
|
||||
@ -84,7 +82,6 @@ export const TaskTab = ({
|
||||
const entityCheck = !isUndefined(entityFQN) && !isUndefined(entityType);
|
||||
const { t } = useTranslation();
|
||||
const [form] = Form.useForm();
|
||||
const history = useHistory();
|
||||
const { isAdminUser } = useAuth();
|
||||
const { postFeed, setActiveThread } = useActivityFeedProvider();
|
||||
const [taskAction, setTaskAction] = useState<TaskAction>(TASK_ACTION_LIST[0]);
|
||||
@ -162,8 +159,7 @@ export const TaskTab = ({
|
||||
updateTask(TaskOperation.RESOLVE, taskDetails?.id + '', data)
|
||||
.then(() => {
|
||||
showSuccessToast(t('server.task-resolved-successfully'));
|
||||
rest.onUpdateEntityDetails?.();
|
||||
history.push(getEntityLink(entityType ?? '', entityFQN ?? ''));
|
||||
rest.onAfterClose?.();
|
||||
})
|
||||
.catch((err: AxiosError) => showErrorToast(err));
|
||||
};
|
||||
@ -245,6 +241,7 @@ export const TaskTab = ({
|
||||
} as unknown as TaskDetails)
|
||||
.then(() => {
|
||||
showSuccessToast(t('server.task-closed-successfully'));
|
||||
rest.onAfterClose?.();
|
||||
})
|
||||
.catch((err: AxiosError) => showErrorToast(err));
|
||||
} else {
|
||||
|
||||
@ -19,6 +19,7 @@ export type TaskTabProps = {
|
||||
taskThread: Thread;
|
||||
owner?: EntityReference;
|
||||
onUpdateEntityDetails?: () => void;
|
||||
onAfterClose?: () => void;
|
||||
} & (
|
||||
| TableTaskTabProps
|
||||
| { columns?: undefined; entityType: Exclude<EntityType, EntityType.TABLE> }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user