Fix Bug Tasks Page not switching tab
This commit is contained in:
@ -1,15 +1,16 @@
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateActivityDrawer';
|
import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateActivityDrawer';
|
||||||
|
import { TASKS_TAB_LIST_COMPONENT_ID } from '@/activities/tasks/constants/tasksTabListComponentId';
|
||||||
import { useTasks } from '@/activities/tasks/hooks/useTasks';
|
import { useTasks } from '@/activities/tasks/hooks/useTasks';
|
||||||
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
||||||
import { IconPlus } from '@/ui/display/icon';
|
import { IconPlus } from '@/ui/display/icon';
|
||||||
import { Button } from '@/ui/input/button/components/Button';
|
import { Button } from '@/ui/input/button/components/Button';
|
||||||
|
import { useTabList } from '@/ui/layout/tab/hooks/useTabList';
|
||||||
|
|
||||||
import { AddTaskButton } from './AddTaskButton';
|
import { AddTaskButton } from './AddTaskButton';
|
||||||
import { TaskList } from './TaskList';
|
import { TaskList } from './TaskList';
|
||||||
import { useTabList } from '@/ui/layout/tab/hooks/useTabList';
|
|
||||||
import { useRecoilValue } from 'recoil';
|
|
||||||
|
|
||||||
const StyledTaskGroupEmptyContainer = styled.div`
|
const StyledTaskGroupEmptyContainer = styled.div`
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -68,7 +69,7 @@ export const TaskGroups = ({
|
|||||||
|
|
||||||
const openCreateActivity = useOpenCreateActivityDrawer();
|
const openCreateActivity = useOpenCreateActivityDrawer();
|
||||||
|
|
||||||
const { activeTabIdState } = useTabList('task-groups-tab-list');
|
const { activeTabIdState } = useTabList(TASKS_TAB_LIST_COMPONENT_ID);
|
||||||
const activeTabId = useRecoilValue(activeTabIdState);
|
const activeTabId = useRecoilValue(activeTabIdState);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
export const TASKS_TAB_LIST_COMPONENT_ID = 'tasks-tab-list';
|
||||||
@ -23,6 +23,8 @@ export const useTasks = ({
|
|||||||
filterDropdownId,
|
filterDropdownId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const isTargettingObjectRecords = isNonEmptyArray(targetableObjects);
|
||||||
|
|
||||||
const targetableObjectsFilter =
|
const targetableObjectsFilter =
|
||||||
targetableObjects.reduce<LeafObjectRecordFilter>(
|
targetableObjects.reduce<LeafObjectRecordFilter>(
|
||||||
(aggregateFilter, targetableObject) => {
|
(aggregateFilter, targetableObject) => {
|
||||||
@ -44,15 +46,20 @@ export const useTasks = ({
|
|||||||
const { records: activityTargets } = useFindManyRecords({
|
const { records: activityTargets } = useFindManyRecords({
|
||||||
objectNameSingular: CoreObjectNameSingular.ActivityTarget,
|
objectNameSingular: CoreObjectNameSingular.ActivityTarget,
|
||||||
filter: targetableObjectsFilter,
|
filter: targetableObjectsFilter,
|
||||||
|
skip: !isTargettingObjectRecords,
|
||||||
});
|
});
|
||||||
|
|
||||||
const skipRequest = !isNonEmptyArray(activityTargets) && !selectedFilter;
|
const skipRequest = !isNonEmptyArray(activityTargets) && !selectedFilter;
|
||||||
|
|
||||||
const idFilter = {
|
const idFilter = isTargettingObjectRecords
|
||||||
id: {
|
? {
|
||||||
in: activityTargets.map((activityTarget) => activityTarget.activityId),
|
id: {
|
||||||
},
|
in: activityTargets.map(
|
||||||
};
|
(activityTarget) => activityTarget.activityId,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
: { id: {} };
|
||||||
|
|
||||||
const assigneeIdFilter = selectedFilter
|
const assigneeIdFilter = selectedFilter
|
||||||
? {
|
? {
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { Threads } from '@/activities/emails/components/Threads';
|
import { Threads } from '@/activities/emails/components/Threads';
|
||||||
import { Attachments } from '@/activities/files/components/Attachments';
|
import { Attachments } from '@/activities/files/components/Attachments';
|
||||||
@ -15,12 +16,10 @@ import {
|
|||||||
IconTimelineEvent,
|
IconTimelineEvent,
|
||||||
} from '@/ui/display/icon';
|
} from '@/ui/display/icon';
|
||||||
import { TabList } from '@/ui/layout/tab/components/TabList';
|
import { TabList } from '@/ui/layout/tab/components/TabList';
|
||||||
|
import { useTabList } from '@/ui/layout/tab/hooks/useTabList';
|
||||||
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
|
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
|
||||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||||
|
|
||||||
import { useTabList } from '@/ui/layout/tab/hooks/useTabList';
|
|
||||||
import { useRecoilValue } from 'recoil';
|
|
||||||
|
|
||||||
const StyledShowPageRightContainer = styled.div`
|
const StyledShowPageRightContainer = styled.div`
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { IconComponent } from '@/ui/display/icon/types/IconComponent';
|
import { IconComponent } from '@/ui/display/icon/types/IconComponent';
|
||||||
|
|
||||||
import { Tab } from './Tab';
|
|
||||||
import { useTabList } from '@/ui/layout/tab/hooks/useTabList';
|
import { useTabList } from '@/ui/layout/tab/hooks/useTabList';
|
||||||
import { TabListScope } from '@/ui/layout/tab/scopes/TabListScope';
|
import { TabListScope } from '@/ui/layout/tab/scopes/TabListScope';
|
||||||
import { useRecoilValue } from 'recoil';
|
|
||||||
|
import { Tab } from './Tab';
|
||||||
|
|
||||||
type SingleTabProps = {
|
type SingleTabProps = {
|
||||||
title: string;
|
title: string;
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { useTabListStates } from '@/ui/layout/tab/hooks/internal/useTabListStates';
|
|
||||||
import { useSetRecoilState } from 'recoil';
|
import { useSetRecoilState } from 'recoil';
|
||||||
|
|
||||||
|
import { useTabListStates } from '@/ui/layout/tab/hooks/internal/useTabListStates';
|
||||||
|
|
||||||
export const useTabList = (tabListId?: string) => {
|
export const useTabList = (tabListId?: string) => {
|
||||||
const { activeTabIdState } = useTabListStates({
|
const { activeTabIdState } = useTabListStates({
|
||||||
tabListScopeId: `${tabListId}-scope`,
|
tabListScopeId: `${tabListId}-scope`,
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import styled from '@emotion/styled';
|
|||||||
import { TasksRecoilScopeContext } from '@/activities/states/recoil-scope-contexts/TasksRecoilScopeContext';
|
import { TasksRecoilScopeContext } from '@/activities/states/recoil-scope-contexts/TasksRecoilScopeContext';
|
||||||
import { PageAddTaskButton } from '@/activities/tasks/components/PageAddTaskButton';
|
import { PageAddTaskButton } from '@/activities/tasks/components/PageAddTaskButton';
|
||||||
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
||||||
|
import { TASKS_TAB_LIST_COMPONENT_ID } from '@/activities/tasks/constants/tasksTabListComponentId';
|
||||||
import { ObjectFilterDropdownButton } from '@/object-record/object-filter-dropdown/components/ObjectFilterDropdownButton';
|
import { ObjectFilterDropdownButton } from '@/object-record/object-filter-dropdown/components/ObjectFilterDropdownButton';
|
||||||
import { RelationPickerHotkeyScope } from '@/object-record/relation-picker/types/RelationPickerHotkeyScope';
|
import { RelationPickerHotkeyScope } from '@/object-record/relation-picker/types/RelationPickerHotkeyScope';
|
||||||
import { IconArchive, IconCheck, IconCheckbox } from '@/ui/display/icon/index';
|
import { IconArchive, IconCheck, IconCheckbox } from '@/ui/display/icon/index';
|
||||||
@ -58,7 +59,10 @@ export const Tasks = () => {
|
|||||||
<TopBar
|
<TopBar
|
||||||
leftComponent={
|
leftComponent={
|
||||||
<StyledTabListContainer>
|
<StyledTabListContainer>
|
||||||
<TabList tabListId="tasks-tab-list" tabs={TASK_TABS} />
|
<TabList
|
||||||
|
tabListId={TASKS_TAB_LIST_COMPONENT_ID}
|
||||||
|
tabs={TASK_TABS}
|
||||||
|
/>
|
||||||
</StyledTabListContainer>
|
</StyledTabListContainer>
|
||||||
}
|
}
|
||||||
rightComponent={
|
rightComponent={
|
||||||
|
|||||||
Reference in New Issue
Block a user