Reorganize context/states/selectors in dedicated folders (#1205)
* Reorganize context/states/selectors in dedicated folders * linter
This commit is contained in:
@ -3,7 +3,6 @@ import type { Meta, StoryObj } from '@storybook/react';
|
|||||||
import { useRecoilState } from 'recoil';
|
import { useRecoilState } from 'recoil';
|
||||||
|
|
||||||
import { currentUserState } from '@/auth/states/currentUserState';
|
import { currentUserState } from '@/auth/states/currentUserState';
|
||||||
import { isAuthenticatingState } from '@/auth/states/isAuthenticatingState';
|
|
||||||
import { App } from '~/App';
|
import { App } from '~/App';
|
||||||
import { FullHeightStorybookLayout } from '~/testing/FullHeightStorybookLayout';
|
import { FullHeightStorybookLayout } from '~/testing/FullHeightStorybookLayout';
|
||||||
import { graphqlMocks } from '~/testing/graphqlMocks';
|
import { graphqlMocks } from '~/testing/graphqlMocks';
|
||||||
@ -11,10 +10,8 @@ import { mockedUsersData } from '~/testing/mock-data/users';
|
|||||||
|
|
||||||
const MockedAuth: React.FC<React.PropsWithChildren> = ({ children }) => {
|
const MockedAuth: React.FC<React.PropsWithChildren> = ({ children }) => {
|
||||||
const [, setCurrentUser] = useRecoilState(currentUserState);
|
const [, setCurrentUser] = useRecoilState(currentUserState);
|
||||||
const [, setIsAuthenticating] = useRecoilState(isAuthenticatingState);
|
|
||||||
|
|
||||||
setCurrentUser(mockedUsersData[0]);
|
setCurrentUser(mockedUsersData[0]);
|
||||||
setIsAuthenticating(false);
|
|
||||||
|
|
||||||
return <>{children}</>;
|
return <>{children}</>;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import type { Meta, StoryObj } from '@storybook/react';
|
import type { Meta, StoryObj } from '@storybook/react';
|
||||||
|
|
||||||
import { TasksContext } from '@/activities/states/TasksContext';
|
import { TasksRecoilScopeContext } from '@/activities/states/recoil-scope-contexts/TasksRecoilScopeContext';
|
||||||
import { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
|
import { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
|
||||||
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
||||||
import { graphqlMocks } from '~/testing/graphqlMocks';
|
import { graphqlMocks } from '~/testing/graphqlMocks';
|
||||||
@ -13,7 +13,7 @@ const meta: Meta<typeof TaskGroups> = {
|
|||||||
decorators: [ComponentWithRouterDecorator, ComponentWithRecoilScopeDecorator],
|
decorators: [ComponentWithRouterDecorator, ComponentWithRecoilScopeDecorator],
|
||||||
parameters: {
|
parameters: {
|
||||||
msw: graphqlMocks,
|
msw: graphqlMocks,
|
||||||
recoilScopeContext: TasksContext,
|
recoilScopeContext: TasksRecoilScopeContext,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import type { Meta, StoryObj } from '@storybook/react';
|
|||||||
import { graphql } from 'msw';
|
import { graphql } from 'msw';
|
||||||
|
|
||||||
import { GET_ACTIVITIES } from '@/activities/queries';
|
import { GET_ACTIVITIES } from '@/activities/queries';
|
||||||
import { TasksContext } from '@/activities/states/TasksContext';
|
import { TasksRecoilScopeContext } from '@/activities/states/recoil-scope-contexts/TasksRecoilScopeContext';
|
||||||
import { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
|
import { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
|
||||||
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
||||||
import { graphqlMocks } from '~/testing/graphqlMocks';
|
import { graphqlMocks } from '~/testing/graphqlMocks';
|
||||||
@ -16,7 +16,7 @@ const meta: Meta<typeof TaskGroups> = {
|
|||||||
decorators: [ComponentWithRouterDecorator, ComponentWithRecoilScopeDecorator],
|
decorators: [ComponentWithRouterDecorator, ComponentWithRecoilScopeDecorator],
|
||||||
parameters: {
|
parameters: {
|
||||||
msw: graphqlMocks,
|
msw: graphqlMocks,
|
||||||
recoilScopeContext: TasksContext,
|
recoilScopeContext: TasksRecoilScopeContext,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { IconUserCircle } from '@/ui/icon';
|
import { IconUserCircle } from '@/ui/icon';
|
||||||
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
@ -16,7 +16,7 @@ type OwnProps = {
|
|||||||
|
|
||||||
export function ActivityAssigneeEditableField({ activity }: OwnProps) {
|
export function ActivityAssigneeEditableField({ activity }: OwnProps) {
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<RecoilScope>
|
<RecoilScope>
|
||||||
<EditableField
|
<EditableField
|
||||||
customEditHotkeyScope={{
|
customEditHotkeyScope={{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { ActivityTargetChips } from '@/activities/components/ActivityTargetChips';
|
import { ActivityTargetChips } from '@/activities/components/ActivityTargetChips';
|
||||||
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { IconArrowUpRight } from '@/ui/icon';
|
import { IconArrowUpRight } from '@/ui/icon';
|
||||||
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
@ -21,7 +21,7 @@ type OwnProps = {
|
|||||||
|
|
||||||
export function ActivityRelationEditableField({ activity }: OwnProps) {
|
export function ActivityRelationEditableField({ activity }: OwnProps) {
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<RecoilScope>
|
<RecoilScope>
|
||||||
<EditableField
|
<EditableField
|
||||||
useEditButton
|
useEditButton
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { availableFiltersScopedState } from '@/ui/filter-n-sort/states/available
|
|||||||
import { FilterDefinition } from '@/ui/filter-n-sort/types/FilterDefinition';
|
import { FilterDefinition } from '@/ui/filter-n-sort/types/FilterDefinition';
|
||||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||||
|
|
||||||
import { TasksContext } from '../states/TasksContext';
|
import { TasksRecoilScopeContext } from '../states/recoil-scope-contexts/TasksRecoilScopeContext';
|
||||||
|
|
||||||
export function useInitializeTasksFilters({
|
export function useInitializeTasksFilters({
|
||||||
availableFilters,
|
availableFilters,
|
||||||
@ -13,7 +13,7 @@ export function useInitializeTasksFilters({
|
|||||||
}) {
|
}) {
|
||||||
const [, setAvailableFilters] = useRecoilScopedState(
|
const [, setAvailableFilters] = useRecoilScopedState(
|
||||||
availableFiltersScopedState,
|
availableFiltersScopedState,
|
||||||
TasksContext,
|
TasksRecoilScopeContext,
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { useRecoilValue } from 'recoil';
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { selectedRowIdsSelector } from '@/ui/table/states/selectedRowIdsSelector';
|
import { selectedRowIdsSelector } from '@/ui/table/states/selectors/selectedRowIdsSelector';
|
||||||
import { ActivityType } from '~/generated/graphql';
|
import { ActivityType } from '~/generated/graphql';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import { ActivityType, useGetActivitiesQuery } from '~/generated/graphql';
|
|||||||
import { tasksFilters } from '~/pages/tasks/tasks-filters';
|
import { tasksFilters } from '~/pages/tasks/tasks-filters';
|
||||||
import { parseDate } from '~/utils/date-utils';
|
import { parseDate } from '~/utils/date-utils';
|
||||||
|
|
||||||
import { TasksContext } from '../states/TasksContext';
|
import { TasksRecoilScopeContext } from '../states/recoil-scope-contexts/TasksRecoilScopeContext';
|
||||||
|
|
||||||
import { useInitializeTasksFilters } from './useInitializeTasksFilters';
|
import { useInitializeTasksFilters } from './useInitializeTasksFilters';
|
||||||
|
|
||||||
@ -22,12 +22,12 @@ export function useTasks() {
|
|||||||
|
|
||||||
const [activeTabId] = useRecoilScopedState(
|
const [activeTabId] = useRecoilScopedState(
|
||||||
activeTabIdScopedState,
|
activeTabIdScopedState,
|
||||||
TasksContext,
|
TasksRecoilScopeContext,
|
||||||
);
|
);
|
||||||
|
|
||||||
const [filters, setFilters] = useRecoilScopedState(
|
const [filters, setFilters] = useRecoilScopedState(
|
||||||
filtersScopedState,
|
filtersScopedState,
|
||||||
TasksContext,
|
TasksRecoilScopeContext,
|
||||||
);
|
);
|
||||||
|
|
||||||
// If there is no filter, we set the default filter to the current user
|
// If there is no filter, we set the default filter to the current user
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
export const TasksContext = createContext<string | null>(null);
|
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
import { createContext } from 'react';
|
||||||
|
|
||||||
|
export const TasksRecoilScopeContext = createContext<string | null>(null);
|
||||||
@ -10,12 +10,10 @@ import {
|
|||||||
} from '~/generated/graphql';
|
} from '~/generated/graphql';
|
||||||
|
|
||||||
import { currentUserState } from '../states/currentUserState';
|
import { currentUserState } from '../states/currentUserState';
|
||||||
import { isAuthenticatingState } from '../states/isAuthenticatingState';
|
|
||||||
import { tokenPairState } from '../states/tokenPairState';
|
import { tokenPairState } from '../states/tokenPairState';
|
||||||
|
|
||||||
export function useAuth() {
|
export function useAuth() {
|
||||||
const [, setTokenPair] = useRecoilState(tokenPairState);
|
const [, setTokenPair] = useRecoilState(tokenPairState);
|
||||||
const [, setIsAuthenticating] = useRecoilState(isAuthenticatingState);
|
|
||||||
const [, setCurrentUser] = useRecoilState(currentUserState);
|
const [, setCurrentUser] = useRecoilState(currentUserState);
|
||||||
|
|
||||||
const [challenge] = useChallengeMutation();
|
const [challenge] = useChallengeMutation();
|
||||||
@ -65,11 +63,9 @@ export function useAuth() {
|
|||||||
setCurrentUser(verifyResult.data?.verify.user);
|
setCurrentUser(verifyResult.data?.verify.user);
|
||||||
setTokenPair(verifyResult.data?.verify.tokens);
|
setTokenPair(verifyResult.data?.verify.tokens);
|
||||||
|
|
||||||
setIsAuthenticating(false);
|
|
||||||
|
|
||||||
return verifyResult.data?.verify;
|
return verifyResult.data?.verify;
|
||||||
},
|
},
|
||||||
[setIsAuthenticating, setTokenPair, verify, setCurrentUser],
|
[setTokenPair, verify, setCurrentUser],
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleCrendentialsSignIn = useCallback(
|
const handleCrendentialsSignIn = useCallback(
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
import { atom } from 'recoil';
|
|
||||||
|
|
||||||
export const authFlowUserEmailState = atom<string>({
|
|
||||||
key: 'authFlowUserEmailState',
|
|
||||||
default: '',
|
|
||||||
});
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
import { selector } from 'recoil';
|
|
||||||
|
|
||||||
import { currentUserState } from './currentUserState';
|
|
||||||
|
|
||||||
export const isAuthenticatedState = selector<boolean>({
|
|
||||||
key: 'isAuthenticatedState',
|
|
||||||
get: ({ get }) => {
|
|
||||||
const user = get(currentUserState);
|
|
||||||
return !!user;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
import { atom } from 'recoil';
|
|
||||||
|
|
||||||
export const isAuthenticatingState = atom<boolean>({
|
|
||||||
key: 'isAuthenticatingState',
|
|
||||||
default: true,
|
|
||||||
});
|
|
||||||
@ -15,7 +15,7 @@ import {
|
|||||||
import { getLogoUrlFromDomainName } from '~/utils';
|
import { getLogoUrlFromDomainName } from '~/utils';
|
||||||
|
|
||||||
import { useCommandMenu } from '../hooks/useCommandMenu';
|
import { useCommandMenu } from '../hooks/useCommandMenu';
|
||||||
import { commandMenuCommand } from '../states/commandMenuCommandsState';
|
import { commandMenuCommandsState } from '../states/commandMenuCommandsState';
|
||||||
import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState';
|
import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState';
|
||||||
import { CommandType } from '../types/Command';
|
import { CommandType } from '../types/Command';
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ export function CommandMenu() {
|
|||||||
const openActivityRightDrawer = useOpenActivityRightDrawer();
|
const openActivityRightDrawer = useOpenActivityRightDrawer();
|
||||||
const isCommandMenuOpened = useRecoilValue(isCommandMenuOpenedState);
|
const isCommandMenuOpened = useRecoilValue(isCommandMenuOpenedState);
|
||||||
const [search, setSearch] = useState('');
|
const [search, setSearch] = useState('');
|
||||||
const commands = useRecoilValue(commandMenuCommand);
|
const commands = useRecoilValue(commandMenuCommandsState);
|
||||||
|
|
||||||
useScopedHotkeys(
|
useScopedHotkeys(
|
||||||
'ctrl+k,meta+k',
|
'ctrl+k,meta+k',
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousH
|
|||||||
import { AppHotkeyScope } from '@/ui/utilities/hotkey/types/AppHotkeyScope';
|
import { AppHotkeyScope } from '@/ui/utilities/hotkey/types/AppHotkeyScope';
|
||||||
|
|
||||||
import { commandMenuCommands } from '../constants/commandMenuCommands';
|
import { commandMenuCommands } from '../constants/commandMenuCommands';
|
||||||
import { commandMenuCommand } from '../states/commandMenuCommandsState';
|
import { commandMenuCommandsState } from '../states/commandMenuCommandsState';
|
||||||
import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState';
|
import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState';
|
||||||
import { Command } from '../types/Command';
|
import { Command } from '../types/Command';
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ export function useCommandMenu() {
|
|||||||
const [, setIsCommandMenuOpenedState] = useRecoilState(
|
const [, setIsCommandMenuOpenedState] = useRecoilState(
|
||||||
isCommandMenuOpenedState,
|
isCommandMenuOpenedState,
|
||||||
);
|
);
|
||||||
const setCommands = useSetRecoilState(commandMenuCommand);
|
const setCommands = useSetRecoilState(commandMenuCommandsState);
|
||||||
const {
|
const {
|
||||||
setHotkeyScopeAndMemorizePreviousScope,
|
setHotkeyScopeAndMemorizePreviousScope,
|
||||||
goBackToPreviousHotkeyScope,
|
goBackToPreviousHotkeyScope,
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import { atom } from 'recoil';
|
|||||||
|
|
||||||
import { Command, CommandType } from '../types/Command';
|
import { Command, CommandType } from '../types/Command';
|
||||||
|
|
||||||
export const commandMenuCommand = atom<Command[]>({
|
export const commandMenuCommandsState = atom<Command[]>({
|
||||||
key: 'command-menu/commandMenuCommand',
|
key: 'command-menu/commandMenuCommandsState',
|
||||||
default: [
|
default: [
|
||||||
{
|
{
|
||||||
to: '',
|
to: '',
|
||||||
|
|||||||
@ -9,14 +9,14 @@ import { graphqlMocks } from '~/testing/graphqlMocks';
|
|||||||
|
|
||||||
import { defaultPipelineProgressOrderBy } from '../../pipeline/queries';
|
import { defaultPipelineProgressOrderBy } from '../../pipeline/queries';
|
||||||
import { HooksCompanyBoard } from '../components/HooksCompanyBoard';
|
import { HooksCompanyBoard } from '../components/HooksCompanyBoard';
|
||||||
import { CompanyBoardContext } from '../states/CompanyBoardContext';
|
import { CompanyBoardRecoilScopeContext } from '../states/recoil-scope-contexts/CompanyBoardRecoilScopeContext';
|
||||||
|
|
||||||
const meta: Meta<typeof EntityBoard> = {
|
const meta: Meta<typeof EntityBoard> = {
|
||||||
title: 'Modules/Companies/Board',
|
title: 'Modules/Companies/Board',
|
||||||
component: EntityBoard,
|
component: EntityBoard,
|
||||||
decorators: [
|
decorators: [
|
||||||
(Story) => (
|
(Story) => (
|
||||||
<RecoilScope SpecificContext={CompanyBoardContext}>
|
<RecoilScope SpecificContext={CompanyBoardRecoilScopeContext}>
|
||||||
<HooksCompanyBoard orderBy={defaultPipelineProgressOrderBy} />
|
<HooksCompanyBoard orderBy={defaultPipelineProgressOrderBy} />
|
||||||
<MemoryRouter>
|
<MemoryRouter>
|
||||||
<Story />
|
<Story />
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import { MemoryRouter } from 'react-router-dom';
|
|||||||
import { Meta, StoryObj } from '@storybook/react';
|
import { Meta, StoryObj } from '@storybook/react';
|
||||||
|
|
||||||
import { CompanyBoardCard } from '@/companies/components/CompanyBoardCard';
|
import { CompanyBoardCard } from '@/companies/components/CompanyBoardCard';
|
||||||
import { BoardCardIdContext } from '@/ui/board/states/BoardCardIdContext';
|
import { BoardCardIdContext } from '@/ui/board/contexts/BoardCardIdContext';
|
||||||
import { BoardColumnContext } from '@/ui/board/states/BoardColumnContext';
|
import { BoardColumnRecoilScopeContext } from '@/ui/board/states/recoil-scope-contexts/BoardColumnRecoilScopeContext';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator';
|
import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator';
|
||||||
import { graphqlMocks } from '~/testing/graphqlMocks';
|
import { graphqlMocks } from '~/testing/graphqlMocks';
|
||||||
@ -11,16 +11,16 @@ import { mockedPipelineProgressData } from '~/testing/mock-data/pipeline-progres
|
|||||||
|
|
||||||
import { defaultPipelineProgressOrderBy } from '../../pipeline/queries';
|
import { defaultPipelineProgressOrderBy } from '../../pipeline/queries';
|
||||||
import { HooksCompanyBoard } from '../components/HooksCompanyBoard';
|
import { HooksCompanyBoard } from '../components/HooksCompanyBoard';
|
||||||
import { CompanyBoardContext } from '../states/CompanyBoardContext';
|
import { CompanyBoardRecoilScopeContext } from '../states/recoil-scope-contexts/CompanyBoardRecoilScopeContext';
|
||||||
|
|
||||||
const meta: Meta<typeof CompanyBoardCard> = {
|
const meta: Meta<typeof CompanyBoardCard> = {
|
||||||
title: 'Modules/Companies/CompanyBoardCard',
|
title: 'Modules/Companies/CompanyBoardCard',
|
||||||
component: CompanyBoardCard,
|
component: CompanyBoardCard,
|
||||||
decorators: [
|
decorators: [
|
||||||
(Story) => (
|
(Story) => (
|
||||||
<RecoilScope SpecificContext={CompanyBoardContext}>
|
<RecoilScope SpecificContext={CompanyBoardRecoilScopeContext}>
|
||||||
<HooksCompanyBoard orderBy={defaultPipelineProgressOrderBy} />
|
<HooksCompanyBoard orderBy={defaultPipelineProgressOrderBy} />
|
||||||
<RecoilScope SpecificContext={BoardColumnContext}>
|
<RecoilScope SpecificContext={BoardColumnRecoilScopeContext}>
|
||||||
<BoardCardIdContext.Provider value={mockedPipelineProgressData[1].id}>
|
<BoardCardIdContext.Provider value={mockedPipelineProgressData[1].id}>
|
||||||
<MemoryRouter>
|
<MemoryRouter>
|
||||||
<Story />
|
<Story />
|
||||||
|
|||||||
@ -2,14 +2,14 @@ import { ReactNode, useContext } from 'react';
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
import { useRecoilState, useRecoilValue } from 'recoil';
|
import { useRecoilState, useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
|
import { BoardCardIdContext } from '@/ui/board/contexts/BoardCardIdContext';
|
||||||
import { useCurrentCardSelected } from '@/ui/board/hooks/useCurrentCardSelected';
|
import { useCurrentCardSelected } from '@/ui/board/hooks/useCurrentCardSelected';
|
||||||
import { BoardCardIdContext } from '@/ui/board/states/BoardCardIdContext';
|
|
||||||
import { viewFieldsDefinitionsState } from '@/ui/board/states/viewFieldsDefinitionsState';
|
import { viewFieldsDefinitionsState } from '@/ui/board/states/viewFieldsDefinitionsState';
|
||||||
import { EntityChipVariant } from '@/ui/chip/components/EntityChip';
|
import { EntityChipVariant } from '@/ui/chip/components/EntityChip';
|
||||||
import { GenericEditableField } from '@/ui/editable-field/components/GenericEditableField';
|
import { GenericEditableField } from '@/ui/editable-field/components/GenericEditableField';
|
||||||
import { EditableFieldDefinitionContext } from '@/ui/editable-field/states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '@/ui/editable-field/contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '@/ui/editable-field/states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '@/ui/editable-field/contexts/EditableFieldEntityIdContext';
|
||||||
import { EditableFieldMutationContext } from '@/ui/editable-field/states/EditableFieldMutationContext';
|
import { EditableFieldMutationContext } from '@/ui/editable-field/contexts/EditableFieldMutationContext';
|
||||||
import {
|
import {
|
||||||
Checkbox,
|
Checkbox,
|
||||||
CheckboxVariant,
|
CheckboxVariant,
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import { opportunitiesBoardOptions } from '~/pages/opportunities/opportunitiesBo
|
|||||||
|
|
||||||
import { useUpdateCompanyBoardCardIds } from '../hooks/useUpdateBoardCardIds';
|
import { useUpdateCompanyBoardCardIds } from '../hooks/useUpdateBoardCardIds';
|
||||||
import { useUpdateCompanyBoard } from '../hooks/useUpdateCompanyBoardColumns';
|
import { useUpdateCompanyBoard } from '../hooks/useUpdateCompanyBoardColumns';
|
||||||
import { CompanyBoardContext } from '../states/CompanyBoardContext';
|
import { CompanyBoardRecoilScopeContext } from '../states/recoil-scope-contexts/CompanyBoardRecoilScopeContext';
|
||||||
|
|
||||||
export function HooksCompanyBoard({
|
export function HooksCompanyBoard({
|
||||||
orderBy,
|
orderBy,
|
||||||
@ -35,7 +35,7 @@ export function HooksCompanyBoard({
|
|||||||
);
|
);
|
||||||
const [, setAvailableFilters] = useRecoilScopedState(
|
const [, setAvailableFilters] = useRecoilScopedState(
|
||||||
availableFiltersScopedState,
|
availableFiltersScopedState,
|
||||||
CompanyBoardContext,
|
CompanyBoardRecoilScopeContext,
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -45,7 +45,10 @@ export function HooksCompanyBoard({
|
|||||||
|
|
||||||
const [, setIsBoardLoaded] = useRecoilState(isBoardLoadedState);
|
const [, setIsBoardLoaded] = useRecoilState(isBoardLoadedState);
|
||||||
|
|
||||||
const filters = useRecoilScopedValue(filtersScopedState, CompanyBoardContext);
|
const filters = useRecoilScopedValue(
|
||||||
|
filtersScopedState,
|
||||||
|
CompanyBoardRecoilScopeContext,
|
||||||
|
);
|
||||||
|
|
||||||
const updateCompanyBoard = useUpdateCompanyBoard();
|
const updateCompanyBoard = useUpdateCompanyBoard();
|
||||||
|
|
||||||
|
|||||||
@ -6,8 +6,8 @@ import { v4 as uuidv4 } from 'uuid';
|
|||||||
import { GET_PIPELINE_PROGRESS, GET_PIPELINES } from '@/pipeline/queries';
|
import { GET_PIPELINE_PROGRESS, GET_PIPELINES } from '@/pipeline/queries';
|
||||||
import { currentPipelineState } from '@/pipeline/states/currentPipelineState';
|
import { currentPipelineState } from '@/pipeline/states/currentPipelineState';
|
||||||
import { NewButton } from '@/ui/board/components/NewButton';
|
import { NewButton } from '@/ui/board/components/NewButton';
|
||||||
|
import { BoardColumnIdContext } from '@/ui/board/contexts/BoardColumnIdContext';
|
||||||
import { boardCardIdsByColumnIdFamilyState } from '@/ui/board/states/boardCardIdsByColumnIdFamilyState';
|
import { boardCardIdsByColumnIdFamilyState } from '@/ui/board/states/boardCardIdsByColumnIdFamilyState';
|
||||||
import { BoardColumnIdContext } from '@/ui/board/states/BoardColumnIdContext';
|
|
||||||
import { SingleEntitySelect } from '@/ui/input/relation-picker/components/SingleEntitySelect';
|
import { SingleEntitySelect } from '@/ui/input/relation-picker/components/SingleEntitySelect';
|
||||||
import { relationPickerSearchFilterScopedState } from '@/ui/input/relation-picker/states/relationPickerSearchFilterScopedState';
|
import { relationPickerSearchFilterScopedState } from '@/ui/input/relation-picker/states/relationPickerSearchFilterScopedState';
|
||||||
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
import { Company, useUpdateOneCompanyMutation } from '~/generated/graphql';
|
import { Company, useUpdateOneCompanyMutation } from '~/generated/graphql';
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ export function CompanyNameEditableField({ company }: OwnProps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<StyledEditableTitleInput
|
<StyledEditableTitleInput
|
||||||
autoComplete="off"
|
autoComplete="off"
|
||||||
autoFocus
|
autoFocus
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
import { useEffect } from 'react';
|
|
||||||
|
|
||||||
import { CompanyBoardContext } from '@/companies/states/CompanyBoardContext';
|
|
||||||
import { availableFiltersScopedState } from '@/ui/filter-n-sort/states/availableFiltersScopedState';
|
|
||||||
import { FilterDefinition } from '@/ui/filter-n-sort/types/FilterDefinition';
|
|
||||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
|
||||||
|
|
||||||
export function useInitializeCompanyBoardFilters({
|
|
||||||
availableFilters,
|
|
||||||
}: {
|
|
||||||
availableFilters: FilterDefinition[];
|
|
||||||
}) {
|
|
||||||
const [, setAvailableFilters] = useRecoilScopedState(
|
|
||||||
availableFiltersScopedState,
|
|
||||||
CompanyBoardContext,
|
|
||||||
);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setAvailableFilters(availableFilters);
|
|
||||||
}, [setAvailableFilters, availableFilters]);
|
|
||||||
}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
export const CompanyBoardContext = createContext<string | null>(null);
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
import { atomFamily } from 'recoil';
|
|
||||||
|
|
||||||
import { CompanyProgress } from '@/companies/types/CompanyProgress';
|
|
||||||
|
|
||||||
export const companyBoardIndexState = atomFamily<
|
|
||||||
CompanyProgress | undefined,
|
|
||||||
string
|
|
||||||
>({
|
|
||||||
key: 'companyBoardIndexState',
|
|
||||||
default: undefined,
|
|
||||||
});
|
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
import { createContext } from 'react';
|
||||||
|
|
||||||
|
export const CompanyBoardRecoilScopeContext = createContext<string | null>(
|
||||||
|
null,
|
||||||
|
);
|
||||||
@ -9,7 +9,7 @@ import { IconList } from '@/ui/icon';
|
|||||||
import { EntityTable } from '@/ui/table/components/EntityTable';
|
import { EntityTable } from '@/ui/table/components/EntityTable';
|
||||||
import { GenericEntityTableData } from '@/ui/table/components/GenericEntityTableData';
|
import { GenericEntityTableData } from '@/ui/table/components/GenericEntityTableData';
|
||||||
import { useUpsertEntityTableItem } from '@/ui/table/hooks/useUpsertEntityTableItem';
|
import { useUpsertEntityTableItem } from '@/ui/table/hooks/useUpsertEntityTableItem';
|
||||||
import { TableContext } from '@/ui/table/states/TableContext';
|
import { TableRecoilScopeContext } from '@/ui/table/states/recoil-scope-contexts/TableRecoilScopeContext';
|
||||||
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
||||||
import { useTableViewFields } from '@/views/hooks/useTableViewFields';
|
import { useTableViewFields } from '@/views/hooks/useTableViewFields';
|
||||||
import { useViewSorts } from '@/views/hooks/useViewSorts';
|
import { useViewSorts } from '@/views/hooks/useViewSorts';
|
||||||
@ -26,7 +26,10 @@ import { defaultOrderBy } from '../../queries';
|
|||||||
|
|
||||||
export function CompanyTable() {
|
export function CompanyTable() {
|
||||||
const currentViewId = useRecoilValue(currentViewIdState);
|
const currentViewId = useRecoilValue(currentViewIdState);
|
||||||
const orderBy = useRecoilScopedValue(sortsOrderByScopedState, TableContext);
|
const orderBy = useRecoilScopedValue(
|
||||||
|
sortsOrderByScopedState,
|
||||||
|
TableRecoilScopeContext,
|
||||||
|
);
|
||||||
const [updateEntityMutation] = useUpdateOneCompanyMutation();
|
const [updateEntityMutation] = useUpdateOneCompanyMutation();
|
||||||
const upsertEntityTableItem = useUpsertEntityTableItem();
|
const upsertEntityTableItem = useUpsertEntityTableItem();
|
||||||
|
|
||||||
@ -36,10 +39,13 @@ export function CompanyTable() {
|
|||||||
});
|
});
|
||||||
const { updateSorts } = useViewSorts({
|
const { updateSorts } = useViewSorts({
|
||||||
availableSorts,
|
availableSorts,
|
||||||
Context: TableContext,
|
Context: TableRecoilScopeContext,
|
||||||
});
|
});
|
||||||
|
|
||||||
const filters = useRecoilScopedValue(filtersScopedState, TableContext);
|
const filters = useRecoilScopedValue(
|
||||||
|
filtersScopedState,
|
||||||
|
TableRecoilScopeContext,
|
||||||
|
);
|
||||||
|
|
||||||
const whereFilters = useMemo(() => {
|
const whereFilters = useMemo(() => {
|
||||||
return { AND: filters.map(turnFilterIntoWhereClause) };
|
return { AND: filters.map(turnFilterIntoWhereClause) };
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { GET_PIPELINES } from '@/pipeline/queries';
|
|||||||
import { IconTrash } from '@/ui/icon/index';
|
import { IconTrash } from '@/ui/icon/index';
|
||||||
import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/EntityTableActionBarButton';
|
import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/EntityTableActionBarButton';
|
||||||
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
||||||
import { selectedRowIdsSelector } from '@/ui/table/states/selectedRowIdsSelector';
|
import { selectedRowIdsSelector } from '@/ui/table/states/selectors/selectedRowIdsSelector';
|
||||||
import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState';
|
import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState';
|
||||||
import { useDeleteManyCompaniesMutation } from '~/generated/graphql';
|
import { useDeleteManyCompaniesMutation } from '~/generated/graphql';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { DoubleTextInputEdit } from '@/ui/input/double-text/components/DoubleTextInputEdit';
|
import { DoubleTextInputEdit } from '@/ui/input/double-text/components/DoubleTextInputEdit';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
import { Person, useUpdateOnePersonMutation } from '~/generated/graphql';
|
import { Person, useUpdateOnePersonMutation } from '~/generated/graphql';
|
||||||
@ -46,7 +46,7 @@ export function PeopleFullNameEditableField({ people }: OwnProps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<DoubleTextInputEdit
|
<DoubleTextInputEdit
|
||||||
firstValuePlaceholder={'First name'} // Hack: Fake character to prevent password-manager from filling the field
|
firstValuePlaceholder={'First name'} // Hack: Fake character to prevent password-manager from filling the field
|
||||||
secondValuePlaceholder={'Last name'} // Hack: Fake character to prevent password-manager from filling the field
|
secondValuePlaceholder={'Last name'} // Hack: Fake character to prevent password-manager from filling the field
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { availableFiltersScopedState } from '@/ui/filter-n-sort/states/available
|
|||||||
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
||||||
import { isFetchingEntityTableDataState } from '@/ui/table/states/isFetchingEntityTableDataState';
|
import { isFetchingEntityTableDataState } from '@/ui/table/states/isFetchingEntityTableDataState';
|
||||||
import { numberOfTableRowsState } from '@/ui/table/states/numberOfTableRowsState';
|
import { numberOfTableRowsState } from '@/ui/table/states/numberOfTableRowsState';
|
||||||
import { TableContext } from '@/ui/table/states/TableContext';
|
import { TableRecoilScopeContext } from '@/ui/table/states/recoil-scope-contexts/TableRecoilScopeContext';
|
||||||
import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState';
|
import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState';
|
||||||
import { currentPageLocationState } from '@/ui/utilities/loading-state/states/currentPageLocationState';
|
import { currentPageLocationState } from '@/ui/utilities/loading-state/states/currentPageLocationState';
|
||||||
import { useContextScopeId } from '@/ui/utilities/recoil-scope/hooks/useContextScopeId';
|
import { useContextScopeId } from '@/ui/utilities/recoil-scope/hooks/useContextScopeId';
|
||||||
@ -24,7 +24,7 @@ import { peoplePhoneFamilyState } from '../states/peoplePhoneFamilyState';
|
|||||||
export function useSetPeopleEntityTable() {
|
export function useSetPeopleEntityTable() {
|
||||||
const resetTableRowSelection = useResetTableRowSelection();
|
const resetTableRowSelection = useResetTableRowSelection();
|
||||||
|
|
||||||
const tableContextScopeId = useContextScopeId(TableContext);
|
const tableContextScopeId = useContextScopeId(TableRecoilScopeContext);
|
||||||
|
|
||||||
const currentLocation = useLocation().pathname;
|
const currentLocation = useLocation().pathname;
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
import { atomFamily } from 'recoil';
|
|
||||||
|
|
||||||
import { GetPeopleQuery } from '~/generated/graphql';
|
|
||||||
|
|
||||||
export const peopleEntityTableFamilyState = atomFamily<
|
|
||||||
GetPeopleQuery['people'][0] | null,
|
|
||||||
string
|
|
||||||
>({
|
|
||||||
key: 'peopleEntityTableFamilyState',
|
|
||||||
default: null,
|
|
||||||
});
|
|
||||||
@ -9,7 +9,7 @@ import { IconList } from '@/ui/icon';
|
|||||||
import { EntityTable } from '@/ui/table/components/EntityTable';
|
import { EntityTable } from '@/ui/table/components/EntityTable';
|
||||||
import { GenericEntityTableData } from '@/ui/table/components/GenericEntityTableData';
|
import { GenericEntityTableData } from '@/ui/table/components/GenericEntityTableData';
|
||||||
import { useUpsertEntityTableItem } from '@/ui/table/hooks/useUpsertEntityTableItem';
|
import { useUpsertEntityTableItem } from '@/ui/table/hooks/useUpsertEntityTableItem';
|
||||||
import { TableContext } from '@/ui/table/states/TableContext';
|
import { TableRecoilScopeContext } from '@/ui/table/states/recoil-scope-contexts/TableRecoilScopeContext';
|
||||||
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
||||||
import { useTableViewFields } from '@/views/hooks/useTableViewFields';
|
import { useTableViewFields } from '@/views/hooks/useTableViewFields';
|
||||||
import { useViewSorts } from '@/views/hooks/useViewSorts';
|
import { useViewSorts } from '@/views/hooks/useViewSorts';
|
||||||
@ -26,7 +26,10 @@ import { defaultOrderBy } from '../../queries';
|
|||||||
|
|
||||||
export function PeopleTable() {
|
export function PeopleTable() {
|
||||||
const currentViewId = useRecoilValue(currentViewIdState);
|
const currentViewId = useRecoilValue(currentViewIdState);
|
||||||
const orderBy = useRecoilScopedValue(sortsOrderByScopedState, TableContext);
|
const orderBy = useRecoilScopedValue(
|
||||||
|
sortsOrderByScopedState,
|
||||||
|
TableRecoilScopeContext,
|
||||||
|
);
|
||||||
const [updateEntityMutation] = useUpdateOnePersonMutation();
|
const [updateEntityMutation] = useUpdateOnePersonMutation();
|
||||||
const upsertEntityTableItem = useUpsertEntityTableItem();
|
const upsertEntityTableItem = useUpsertEntityTableItem();
|
||||||
|
|
||||||
@ -36,10 +39,13 @@ export function PeopleTable() {
|
|||||||
});
|
});
|
||||||
const { updateSorts } = useViewSorts({
|
const { updateSorts } = useViewSorts({
|
||||||
availableSorts,
|
availableSorts,
|
||||||
Context: TableContext,
|
Context: TableRecoilScopeContext,
|
||||||
});
|
});
|
||||||
|
|
||||||
const filters = useRecoilScopedValue(filtersScopedState, TableContext);
|
const filters = useRecoilScopedValue(
|
||||||
|
filtersScopedState,
|
||||||
|
TableRecoilScopeContext,
|
||||||
|
);
|
||||||
|
|
||||||
const whereFilters = useMemo(() => {
|
const whereFilters = useMemo(() => {
|
||||||
return { AND: filters.map(turnFilterIntoWhereClause) };
|
return { AND: filters.map(turnFilterIntoWhereClause) };
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { GET_PEOPLE } from '@/people/queries';
|
|||||||
import { IconTrash } from '@/ui/icon/index';
|
import { IconTrash } from '@/ui/icon/index';
|
||||||
import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/EntityTableActionBarButton';
|
import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/EntityTableActionBarButton';
|
||||||
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
|
||||||
import { selectedRowIdsSelector } from '@/ui/table/states/selectedRowIdsSelector';
|
import { selectedRowIdsSelector } from '@/ui/table/states/selectors/selectedRowIdsSelector';
|
||||||
import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState';
|
import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState';
|
||||||
import { useDeleteManyPersonMutation } from '~/generated/graphql';
|
import { useDeleteManyPersonMutation } from '~/generated/graphql';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
import { atomFamily } from 'recoil';
|
|
||||||
|
|
||||||
export const pipelineProgressIdScopedState = atomFamily<string | null, string>({
|
|
||||||
key: 'pipelineProgressIdScopedState',
|
|
||||||
default: null,
|
|
||||||
});
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
import { atomFamily } from 'recoil';
|
|
||||||
|
|
||||||
export const pipelineStageIdScopedState = atomFamily<string | null, string>({
|
|
||||||
key: 'pipelineStageIdScopedState',
|
|
||||||
default: null,
|
|
||||||
});
|
|
||||||
@ -7,7 +7,7 @@ import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/Ent
|
|||||||
import { useDeleteManyPipelineProgressMutation } from '~/generated/graphql';
|
import { useDeleteManyPipelineProgressMutation } from '~/generated/graphql';
|
||||||
|
|
||||||
import { useRemoveCardIds } from '../hooks/useRemoveCardIds';
|
import { useRemoveCardIds } from '../hooks/useRemoveCardIds';
|
||||||
import { selectedCardIdsSelector } from '../states/selectedCardIdsSelector';
|
import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSelector';
|
||||||
|
|
||||||
export function BoardActionBarButtonDeleteBoardCard() {
|
export function BoardActionBarButtonDeleteBoardCard() {
|
||||||
const selectedCardIds = useRecoilValue(selectedCardIdsSelector);
|
const selectedCardIds = useRecoilValue(selectedCardIdsSelector);
|
||||||
|
|||||||
@ -6,11 +6,11 @@ import { DragDropContext, OnDragEndResponder } from '@hello-pangea/dnd'; // Atla
|
|||||||
import { IconList } from '@tabler/icons-react';
|
import { IconList } from '@tabler/icons-react';
|
||||||
import { useRecoilState } from 'recoil';
|
import { useRecoilState } from 'recoil';
|
||||||
|
|
||||||
import { CompanyBoardContext } from '@/companies/states/CompanyBoardContext';
|
import { CompanyBoardRecoilScopeContext } from '@/companies/states/recoil-scope-contexts/CompanyBoardRecoilScopeContext';
|
||||||
import { GET_PIPELINE_PROGRESS } from '@/pipeline/queries';
|
import { GET_PIPELINE_PROGRESS } from '@/pipeline/queries';
|
||||||
import { BoardHeader } from '@/ui/board/components/BoardHeader';
|
import { BoardHeader } from '@/ui/board/components/BoardHeader';
|
||||||
import { StyledBoard } from '@/ui/board/components/StyledBoard';
|
import { StyledBoard } from '@/ui/board/components/StyledBoard';
|
||||||
import { BoardColumnIdContext } from '@/ui/board/states/BoardColumnIdContext';
|
import { BoardColumnIdContext } from '@/ui/board/contexts/BoardColumnIdContext';
|
||||||
import { SelectedSortType } from '@/ui/filter-n-sort/types/interface';
|
import { SelectedSortType } from '@/ui/filter-n-sort/types/interface';
|
||||||
import { DragSelect } from '@/ui/utilities/drag-select/components/DragSelect';
|
import { DragSelect } from '@/ui/utilities/drag-select/components/DragSelect';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
@ -23,8 +23,8 @@ import {
|
|||||||
|
|
||||||
import { useSetCardSelected } from '../hooks/useSetCardSelected';
|
import { useSetCardSelected } from '../hooks/useSetCardSelected';
|
||||||
import { useUpdateBoardCardIds } from '../hooks/useUpdateBoardCardIds';
|
import { useUpdateBoardCardIds } from '../hooks/useUpdateBoardCardIds';
|
||||||
import { BoardColumnContext } from '../states/BoardColumnContext';
|
|
||||||
import { boardColumnsState } from '../states/boardColumnsState';
|
import { boardColumnsState } from '../states/boardColumnsState';
|
||||||
|
import { BoardColumnRecoilScopeContext } from '../states/recoil-scope-contexts/BoardColumnRecoilScopeContext';
|
||||||
import { BoardOptions } from '../types/BoardOptions';
|
import { BoardOptions } from '../types/BoardOptions';
|
||||||
|
|
||||||
import { EntityBoardColumn } from './EntityBoardColumn';
|
import { EntityBoardColumn } from './EntityBoardColumn';
|
||||||
@ -113,13 +113,16 @@ export function EntityBoard({
|
|||||||
viewIcon={<IconList size={theme.icon.size.md} />}
|
viewIcon={<IconList size={theme.icon.size.md} />}
|
||||||
availableSorts={boardOptions.sorts}
|
availableSorts={boardOptions.sorts}
|
||||||
onSortsUpdate={updateSorts}
|
onSortsUpdate={updateSorts}
|
||||||
context={CompanyBoardContext}
|
context={CompanyBoardRecoilScopeContext}
|
||||||
/>
|
/>
|
||||||
<StyledBoard ref={boardRef}>
|
<StyledBoard ref={boardRef}>
|
||||||
<DragDropContext onDragEnd={onDragEnd}>
|
<DragDropContext onDragEnd={onDragEnd}>
|
||||||
{sortedBoardColumns.map((column) => (
|
{sortedBoardColumns.map((column) => (
|
||||||
<BoardColumnIdContext.Provider value={column.id} key={column.id}>
|
<BoardColumnIdContext.Provider value={column.id} key={column.id}>
|
||||||
<RecoilScope SpecificContext={BoardColumnContext} key={column.id}>
|
<RecoilScope
|
||||||
|
SpecificContext={BoardColumnRecoilScopeContext}
|
||||||
|
key={column.id}
|
||||||
|
>
|
||||||
<EntityBoardColumn
|
<EntityBoardColumn
|
||||||
boardOptions={boardOptions}
|
boardOptions={boardOptions}
|
||||||
column={column}
|
column={column}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { ActionBar } from '@/ui/action-bar/components/ActionBar';
|
import { ActionBar } from '@/ui/action-bar/components/ActionBar';
|
||||||
|
|
||||||
import { selectedCardIdsSelector } from '../states/selectedCardIdsSelector';
|
import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSelector';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
children: React.ReactNode | React.ReactNode[];
|
children: React.ReactNode | React.ReactNode[];
|
||||||
|
|||||||
@ -4,13 +4,13 @@ import { Draggable, Droppable, DroppableProvided } from '@hello-pangea/dnd';
|
|||||||
import { useRecoilValue } from 'recoil';
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { BoardColumn } from '@/ui/board/components/BoardColumn';
|
import { BoardColumn } from '@/ui/board/components/BoardColumn';
|
||||||
import { BoardCardIdContext } from '@/ui/board/states/BoardCardIdContext';
|
import { BoardCardIdContext } from '@/ui/board/contexts/BoardCardIdContext';
|
||||||
import { BoardColumnIdContext } from '@/ui/board/states/BoardColumnIdContext';
|
import { BoardColumnIdContext } from '@/ui/board/contexts/BoardColumnIdContext';
|
||||||
import { BoardColumnDefinition } from '@/ui/board/types/BoardColumnDefinition';
|
import { BoardColumnDefinition } from '@/ui/board/types/BoardColumnDefinition';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { boardCardIdsByColumnIdFamilyState } from '../states/boardCardIdsByColumnIdFamilyState';
|
import { boardCardIdsByColumnIdFamilyState } from '../states/boardCardIdsByColumnIdFamilyState';
|
||||||
import { boardColumnTotalsFamilySelector } from '../states/boardColumnTotalsFamilySelector';
|
import { boardColumnTotalsFamilySelector } from '../states/selectors/boardColumnTotalsFamilySelector';
|
||||||
import { BoardOptions } from '../types/BoardOptions';
|
import { BoardOptions } from '../types/BoardOptions';
|
||||||
|
|
||||||
import { EntityBoardCard } from './EntityBoardCard';
|
import { EntityBoardCard } from './EntityBoardCard';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
import { useRecoilCallback, useRecoilState } from 'recoil';
|
import { useRecoilCallback, useRecoilState } from 'recoil';
|
||||||
|
|
||||||
import { BoardCardIdContext } from '../states/BoardCardIdContext';
|
import { BoardCardIdContext } from '../contexts/BoardCardIdContext';
|
||||||
import { isCardSelectedFamilyState } from '../states/isCardSelectedFamilyState';
|
import { isCardSelectedFamilyState } from '../states/isCardSelectedFamilyState';
|
||||||
|
|
||||||
export function useCurrentCardSelected() {
|
export function useCurrentCardSelected() {
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
export const BoardCardContext = createContext<string | null>(null);
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
export const BoardColumnContext = createContext<string | null>(null);
|
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
import { createContext } from 'react';
|
||||||
|
|
||||||
|
export const BoardColumnRecoilScopeContext = createContext<string | null>(null);
|
||||||
@ -2,7 +2,7 @@ import { selectorFamily } from 'recoil';
|
|||||||
|
|
||||||
import { companyProgressesFamilyState } from '@/companies/states/companyProgressesFamilyState';
|
import { companyProgressesFamilyState } from '@/companies/states/companyProgressesFamilyState';
|
||||||
|
|
||||||
import { boardCardIdsByColumnIdFamilyState } from './boardCardIdsByColumnIdFamilyState';
|
import { boardCardIdsByColumnIdFamilyState } from '../boardCardIdsByColumnIdFamilyState';
|
||||||
|
|
||||||
// TODO: this state should be computed during the synchronization hook and put in a generic
|
// TODO: this state should be computed during the synchronization hook and put in a generic
|
||||||
// boardColumnTotalsFamilyState indexed by columnId.
|
// boardColumnTotalsFamilyState indexed by columnId.
|
||||||
@ -1,8 +1,8 @@
|
|||||||
import { selector } from 'recoil';
|
import { selector } from 'recoil';
|
||||||
|
|
||||||
import { boardCardIdsByColumnIdFamilyState } from './boardCardIdsByColumnIdFamilyState';
|
import { boardCardIdsByColumnIdFamilyState } from '../boardCardIdsByColumnIdFamilyState';
|
||||||
import { boardColumnsState } from './boardColumnsState';
|
import { boardColumnsState } from '../boardColumnsState';
|
||||||
import { isCardSelectedFamilyState } from './isCardSelectedFamilyState';
|
import { isCardSelectedFamilyState } from '../isCardSelectedFamilyState';
|
||||||
|
|
||||||
export const selectedCardIdsSelector = selector<string[]>({
|
export const selectedCardIdsSelector = selector<string[]>({
|
||||||
key: 'selectedCardIdsSelector',
|
key: 'selectedCardIdsSelector',
|
||||||
@ -3,10 +3,10 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { FieldContext } from '../states/FieldContext';
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldDateMetadata } from '../types/FieldMetadata';
|
import { FieldDateMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ export function GenericEditableDateField() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
iconLabel={currentEditableFieldDefinition.icon}
|
iconLabel={currentEditableFieldDefinition.icon}
|
||||||
editModeContent={<GenericEditableDateFieldEditMode />}
|
editModeContent={<GenericEditableDateFieldEditMode />}
|
||||||
|
|||||||
@ -4,9 +4,9 @@ import { useRecoilValue } from 'recoil';
|
|||||||
import { DateInputDisplay } from '@/ui/input/date/components/DateInputDisplay';
|
import { DateInputDisplay } from '@/ui/input/date/components/DateInputDisplay';
|
||||||
import { parseDate } from '~/utils/date-utils';
|
import { parseDate } from '~/utils/date-utils';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldDateMetadata } from '../types/FieldMetadata';
|
import { FieldDateMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
import { useRecoilState } from 'recoil';
|
import { useRecoilState } from 'recoil';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldDateMetadata } from '../types/FieldMetadata';
|
import { FieldDateMetadata } from '../types/FieldMetadata';
|
||||||
import { EditableFieldEditModeDate } from '../variants/components/EditableFieldEditModeDate';
|
import { EditableFieldEditModeDate } from '../variants/components/EditableFieldEditModeDate';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { isFieldDate } from '../types/guards/isFieldDate';
|
import { isFieldDate } from '../types/guards/isFieldDate';
|
||||||
import { isFieldNumber } from '../types/guards/isFieldNumber';
|
import { isFieldNumber } from '../types/guards/isFieldNumber';
|
||||||
import { isFieldPhone } from '../types/guards/isFieldPhone';
|
import { isFieldPhone } from '../types/guards/isFieldPhone';
|
||||||
|
|||||||
@ -3,10 +3,10 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { FieldContext } from '../states/FieldContext';
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ export function GenericEditableNumberField() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
iconLabel={currentEditableFieldDefinition.icon}
|
iconLabel={currentEditableFieldDefinition.icon}
|
||||||
editModeContent={<GenericEditableNumberFieldEditMode />}
|
editModeContent={<GenericEditableNumberFieldEditMode />}
|
||||||
|
|||||||
@ -7,11 +7,11 @@ import {
|
|||||||
castAsIntegerOrNull,
|
castAsIntegerOrNull,
|
||||||
} from '~/utils/cast-as-integer-or-null';
|
} from '~/utils/cast-as-integer-or-null';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -4,10 +4,10 @@ import { useRecoilValue } from 'recoil';
|
|||||||
import { PhoneInputDisplay } from '@/ui/input/phone/components/PhoneInputDisplay';
|
import { PhoneInputDisplay } from '@/ui/input/phone/components/PhoneInputDisplay';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { FieldContext } from '../states/FieldContext';
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldPhoneMetadata } from '../types/FieldMetadata';
|
import { FieldPhoneMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ export function GenericEditablePhoneField() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
useEditButton
|
useEditButton
|
||||||
iconLabel={currentEditableFieldDefinition.icon}
|
iconLabel={currentEditableFieldDefinition.icon}
|
||||||
|
|||||||
@ -3,11 +3,11 @@ import { useRecoilState } from 'recoil';
|
|||||||
|
|
||||||
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldPhoneMetadata } from '../types/FieldMetadata';
|
import { FieldPhoneMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -4,10 +4,10 @@ import { useRecoilValue } from 'recoil';
|
|||||||
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { FieldContext } from '../states/FieldContext';
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldRelationMetadata } from '../types/FieldMetadata';
|
import { FieldRelationMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ export function GenericEditableRelationField() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<RecoilScope>
|
<RecoilScope>
|
||||||
<EditableField
|
<EditableField
|
||||||
useEditButton={currentEditableFieldDefinition.metadata.useEditButton}
|
useEditButton={currentEditableFieldDefinition.metadata.useEditButton}
|
||||||
|
|||||||
@ -7,9 +7,9 @@ import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
|||||||
import { UserChip } from '@/users/components/UserChip';
|
import { UserChip } from '@/users/components/UserChip';
|
||||||
import { getLogoUrlFromDomainName } from '~/utils';
|
import { getLogoUrlFromDomainName } from '~/utils';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldRelationMetadata } from '../types/FieldMetadata';
|
import { FieldRelationMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -8,11 +8,11 @@ import { EntityForSelect } from '@/ui/input/relation-picker/types/EntityForSelec
|
|||||||
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
||||||
import { UserPicker } from '@/users/components/UserPicker';
|
import { UserPicker } from '@/users/components/UserPicker';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useEditableField } from '../hooks/useEditableField';
|
import { useEditableField } from '../hooks/useEditableField';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import {
|
import {
|
||||||
FieldRelationMetadata,
|
FieldRelationMetadata,
|
||||||
|
|||||||
@ -3,10 +3,10 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { FieldContext } from '../states/FieldContext';
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ export function GenericEditableTextField() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
iconLabel={currentEditableFieldDefinition.icon}
|
iconLabel={currentEditableFieldDefinition.icon}
|
||||||
editModeContent={<GenericEditableTextFieldEditMode />}
|
editModeContent={<GenericEditableTextFieldEditMode />}
|
||||||
|
|||||||
@ -3,11 +3,11 @@ import { useRecoilState } from 'recoil';
|
|||||||
|
|
||||||
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldTextMetadata } from '../types/FieldMetadata';
|
import { FieldTextMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -3,10 +3,10 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { FieldContext } from '../states/FieldContext';
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
import { FieldNumberMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ export function GenericEditableURLField() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
useEditButton
|
useEditButton
|
||||||
iconLabel={currentEditableFieldDefinition.icon}
|
iconLabel={currentEditableFieldDefinition.icon}
|
||||||
|
|||||||
@ -3,11 +3,11 @@ import { useRecoilState } from 'recoil';
|
|||||||
|
|
||||||
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
import { useRegisterCloseFieldHandlers } from '../hooks/useRegisterCloseFieldHandlers';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldURLMetadata } from '../types/FieldMetadata';
|
import { FieldURLMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
|
|
||||||
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldProbabilityMetadata } from '../types/FieldMetadata';
|
import { FieldProbabilityMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ export function ProbabilityEditableField() {
|
|||||||
) as FieldDefinition<FieldProbabilityMetadata>;
|
) as FieldDefinition<FieldProbabilityMetadata>;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
iconLabel={currentEditableFieldDefinition.icon}
|
iconLabel={currentEditableFieldDefinition.icon}
|
||||||
displayModeContent={<ProbabilityEditableFieldEditMode />}
|
displayModeContent={<ProbabilityEditableFieldEditMode />}
|
||||||
|
|||||||
@ -4,10 +4,10 @@ import { useRecoilState } from 'recoil';
|
|||||||
|
|
||||||
import { useEditableField } from '@/ui/editable-field/hooks/useEditableField';
|
import { useEditableField } from '@/ui/editable-field/hooks/useEditableField';
|
||||||
|
|
||||||
|
import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext';
|
||||||
|
import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext';
|
||||||
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
|
||||||
import { EditableFieldDefinitionContext } from '../states/EditableFieldDefinitionContext';
|
import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector';
|
||||||
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
|
|
||||||
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
|
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import { FieldProbabilityMetadata } from '../types/FieldMetadata';
|
import { FieldProbabilityMetadata } from '../types/FieldMetadata';
|
||||||
|
|
||||||
|
|||||||
@ -2,14 +2,14 @@ import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousH
|
|||||||
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
||||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||||
|
|
||||||
import { FieldContext } from '../states/FieldContext';
|
|
||||||
import { isFieldInEditModeScopedState } from '../states/isFieldInEditModeScopedState';
|
import { isFieldInEditModeScopedState } from '../states/isFieldInEditModeScopedState';
|
||||||
|
import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope';
|
import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope';
|
||||||
|
|
||||||
export function useEditableField() {
|
export function useEditableField() {
|
||||||
const [isFieldInEditMode, setIsFieldInEditMode] = useRecoilScopedState(
|
const [isFieldInEditMode, setIsFieldInEditMode] = useRecoilScopedState(
|
||||||
isFieldInEditModeScopedState,
|
isFieldInEditModeScopedState,
|
||||||
FieldContext,
|
FieldRecoilScopeContext,
|
||||||
);
|
);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
|
|
||||||
import { EditableFieldMutationContext } from '../states/EditableFieldMutationContext';
|
import { EditableFieldMutationContext } from '../contexts/EditableFieldMutationContext';
|
||||||
import { FieldDefinition } from '../types/FieldDefinition';
|
import { FieldDefinition } from '../types/FieldDefinition';
|
||||||
import {
|
import {
|
||||||
FieldChipMetadata,
|
FieldChipMetadata,
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
export const FieldContext = createContext<string | null>(null);
|
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
import { createContext } from 'react';
|
||||||
|
|
||||||
|
export const FieldRecoilScopeContext = createContext<string | null>(null);
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { selectorFamily } from 'recoil';
|
import { selectorFamily } from 'recoil';
|
||||||
|
|
||||||
import { genericEntitiesFamilyState } from './genericEntitiesFamilyState';
|
import { genericEntitiesFamilyState } from '../genericEntitiesFamilyState';
|
||||||
|
|
||||||
export const genericEntityFieldFamilySelector = selectorFamily({
|
export const genericEntityFieldFamilySelector = selectorFamily({
|
||||||
key: 'genericEntityFieldFamilySelector',
|
key: 'genericEntityFieldFamilySelector',
|
||||||
@ -1,5 +1,5 @@
|
|||||||
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { DateInputDisplay } from '@/ui/input/date/components/DateInputDisplay';
|
import { DateInputDisplay } from '@/ui/input/date/components/DateInputDisplay';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
import { parseDate } from '~/utils/date-utils';
|
import { parseDate } from '~/utils/date-utils';
|
||||||
@ -21,7 +21,7 @@ export function DateEditableField({ icon, value, label, onSubmit }: OwnProps) {
|
|||||||
const internalDateValue = value ? parseDate(value).toJSDate() : null;
|
const internalDateValue = value ? parseDate(value).toJSDate() : null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
// onSubmit={handleSubmit}
|
// onSubmit={handleSubmit}
|
||||||
// onCancel={handleCancel}
|
// onCancel={handleCancel}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
|
||||||
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
import { EditableField } from '@/ui/editable-field/components/EditableField';
|
||||||
import { FieldContext } from '@/ui/editable-field/states/FieldContext';
|
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
|
||||||
import { PhoneInputDisplay } from '@/ui/input/phone/components/PhoneInputDisplay';
|
import { PhoneInputDisplay } from '@/ui/input/phone/components/PhoneInputDisplay';
|
||||||
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
import { TextInputEdit } from '@/ui/input/text/components/TextInputEdit';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
@ -40,7 +40,7 @@ export function PhoneEditableField({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecoilScope SpecificContext={FieldContext}>
|
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
|
||||||
<EditableField
|
<EditableField
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
onCancel={handleCancel}
|
onCancel={handleCancel}
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
import { FilterDefinition } from '../types/FilterDefinition';
|
|
||||||
|
|
||||||
export const AvailableFiltersContext = createContext<FilterDefinition[]>([]);
|
|
||||||
@ -3,7 +3,7 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { ActionBar } from '@/ui/action-bar/components/ActionBar';
|
import { ActionBar } from '@/ui/action-bar/components/ActionBar';
|
||||||
|
|
||||||
import { selectedRowIdsSelector } from '../../states/selectedRowIdsSelector';
|
import { selectedRowIdsSelector } from '../../states/selectors/selectedRowIdsSelector';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
children: React.ReactNode | React.ReactNode[];
|
children: React.ReactNode | React.ReactNode[];
|
||||||
|
|||||||
@ -9,11 +9,11 @@ import { SelectedSortType, SortType } from '@/ui/filter-n-sort/types/interface';
|
|||||||
import { DragSelect } from '@/ui/utilities/drag-select/components/DragSelect';
|
import { DragSelect } from '@/ui/utilities/drag-select/components/DragSelect';
|
||||||
import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside';
|
import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside';
|
||||||
|
|
||||||
|
import { EntityUpdateMutationContext } from '../contexts/EntityUpdateMutationHookContext';
|
||||||
import { useLeaveTableFocus } from '../hooks/useLeaveTableFocus';
|
import { useLeaveTableFocus } from '../hooks/useLeaveTableFocus';
|
||||||
import { useMapKeyboardToSoftFocus } from '../hooks/useMapKeyboardToSoftFocus';
|
import { useMapKeyboardToSoftFocus } from '../hooks/useMapKeyboardToSoftFocus';
|
||||||
import { useResetTableRowSelection } from '../hooks/useResetTableRowSelection';
|
import { useResetTableRowSelection } from '../hooks/useResetTableRowSelection';
|
||||||
import { useSetRowSelectedState } from '../hooks/useSetRowSelectedState';
|
import { useSetRowSelectedState } from '../hooks/useSetRowSelectedState';
|
||||||
import { EntityUpdateMutationContext } from '../states/EntityUpdateMutationHookContext';
|
|
||||||
import { TableHeader } from '../table-header/components/TableHeader';
|
import { TableHeader } from '../table-header/components/TableHeader';
|
||||||
|
|
||||||
import { EntityTableBody } from './EntityTableBody';
|
import { EntityTableBody } from './EntityTableBody';
|
||||||
|
|||||||
@ -2,9 +2,9 @@ import { useRecoilValue } from 'recoil';
|
|||||||
|
|
||||||
import { isNavbarSwitchingSizeState } from '@/ui/layout/states/isNavbarSwitchingSizeState';
|
import { isNavbarSwitchingSizeState } from '@/ui/layout/states/isNavbarSwitchingSizeState';
|
||||||
|
|
||||||
|
import { RowIdContext } from '../contexts/RowIdContext';
|
||||||
|
import { RowIndexContext } from '../contexts/RowIndexContext';
|
||||||
import { isFetchingEntityTableDataState } from '../states/isFetchingEntityTableDataState';
|
import { isFetchingEntityTableDataState } from '../states/isFetchingEntityTableDataState';
|
||||||
import { RowIdContext } from '../states/RowIdContext';
|
|
||||||
import { RowIndexContext } from '../states/RowIndexContext';
|
|
||||||
import { tableRowIdsState } from '../states/tableRowIdsState';
|
import { tableRowIdsState } from '../states/tableRowIdsState';
|
||||||
|
|
||||||
import { EntityTableRow } from './EntityTableRow';
|
import { EntityTableRow } from './EntityTableRow';
|
||||||
|
|||||||
@ -3,11 +3,11 @@ import { useSetRecoilState } from 'recoil';
|
|||||||
|
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
|
import { ColumnIndexContext } from '../contexts/ColumnIndexContext';
|
||||||
|
import { ViewFieldContext } from '../contexts/ViewFieldContext';
|
||||||
import { GenericEditableCell } from '../editable-cell/components/GenericEditableCell';
|
import { GenericEditableCell } from '../editable-cell/components/GenericEditableCell';
|
||||||
import { useCurrentRowSelected } from '../hooks/useCurrentRowSelected';
|
import { useCurrentRowSelected } from '../hooks/useCurrentRowSelected';
|
||||||
import { ColumnIndexContext } from '../states/ColumnIndexContext';
|
|
||||||
import { contextMenuPositionState } from '../states/contextMenuPositionState';
|
import { contextMenuPositionState } from '../states/contextMenuPositionState';
|
||||||
import { ViewFieldContext } from '../states/ViewFieldContext';
|
|
||||||
|
|
||||||
export function EntityTableCell({ cellIndex }: { cellIndex: number }) {
|
export function EntityTableCell({ cellIndex }: { cellIndex: number }) {
|
||||||
const setContextMenuPosition = useSetRecoilState(contextMenuPositionState);
|
const setContextMenuPosition = useSetRecoilState(contextMenuPositionState);
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
import { useRecoilValue } from 'recoil';
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
|
import { ViewFieldContext } from '../contexts/ViewFieldContext';
|
||||||
import { visibleTableColumnsState } from '../states/tableColumnsState';
|
import { visibleTableColumnsState } from '../states/tableColumnsState';
|
||||||
import { ViewFieldContext } from '../states/ViewFieldContext';
|
|
||||||
|
|
||||||
import { CheckboxCell } from './CheckboxCell';
|
import { CheckboxCell } from './CheckboxCell';
|
||||||
import { EntityTableCell } from './EntityTableCell';
|
import { EntityTableCell } from './EntityTableCell';
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { motion } from 'framer-motion';
|
|||||||
import { IconButton } from '@/ui/button/components/IconButton';
|
import { IconButton } from '@/ui/button/components/IconButton';
|
||||||
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
||||||
|
|
||||||
import { CellHotkeyScopeContext } from '../../states/CellHotkeyScopeContext';
|
import { CellHotkeyScopeContext } from '../../contexts/CellHotkeyScopeContext';
|
||||||
import { TableHotkeyScope } from '../../types/TableHotkeyScope';
|
import { TableHotkeyScope } from '../../types/TableHotkeyScope';
|
||||||
import { useCurrentCellEditMode } from '../hooks/useCurrentCellEditMode';
|
import { useCurrentCellEditMode } from '../hooks/useCurrentCellEditMode';
|
||||||
import { useEditableCell } from '../hooks/useEditableCell';
|
import { useEditableCell } from '../hooks/useEditableCell';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useContext, useMemo } from 'react';
|
import { useContext, useMemo } from 'react';
|
||||||
|
|
||||||
import { ColumnIndexContext } from '../../states/ColumnIndexContext';
|
import { ColumnIndexContext } from '../../contexts/ColumnIndexContext';
|
||||||
import { RowIndexContext } from '../../states/RowIndexContext';
|
import { RowIndexContext } from '../../contexts/RowIndexContext';
|
||||||
import { CellPosition } from '../../types/CellPosition';
|
import { CellPosition } from '../../types/CellPosition';
|
||||||
|
|
||||||
export function useCurrentCellPosition() {
|
export function useCurrentCellPosition() {
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import { useDragSelect } from '@/ui/utilities/drag-select/hooks/useDragSelect';
|
|||||||
import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope';
|
import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope';
|
||||||
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
||||||
|
|
||||||
|
import { CellHotkeyScopeContext } from '../../contexts/CellHotkeyScopeContext';
|
||||||
import { useCloseCurrentCellInEditMode } from '../../hooks/useClearCellInEditMode';
|
import { useCloseCurrentCellInEditMode } from '../../hooks/useClearCellInEditMode';
|
||||||
import { CellHotkeyScopeContext } from '../../states/CellHotkeyScopeContext';
|
|
||||||
import { TableHotkeyScope } from '../../types/TableHotkeyScope';
|
import { TableHotkeyScope } from '../../types/TableHotkeyScope';
|
||||||
|
|
||||||
import { useCurrentCellEditMode } from './useCurrentCellEditMode';
|
import { useCurrentCellEditMode } from './useCurrentCellEditMode';
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import {
|
|||||||
} from '@/ui/editable-field/types/ViewField';
|
} from '@/ui/editable-field/types/ViewField';
|
||||||
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
import { getLogoUrlFromDomainName } from '~/utils';
|
import { getLogoUrlFromDomainName } from '~/utils';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import {
|
|||||||
} from '@/ui/editable-field/types/ViewField';
|
} from '@/ui/editable-field/types/ViewField';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
import { TextCellEdit } from './TextCellEdit';
|
import { TextCellEdit } from './TextCellEdit';
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import {
|
|||||||
import { DateInputDisplay } from '@/ui/input/date/components/DateInputDisplay';
|
import { DateInputDisplay } from '@/ui/input/date/components/DateInputDisplay';
|
||||||
import { EditableCell } from '@/ui/table/editable-cell/components/EditableCell';
|
import { EditableCell } from '@/ui/table/editable-cell/components/EditableCell';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
import { GenericEditableDateCellEditMode } from './GenericEditableDateCellEditMode';
|
import { GenericEditableDateCellEditMode } from './GenericEditableDateCellEditMode';
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import {
|
|||||||
} from '@/ui/editable-field/types/ViewField';
|
} from '@/ui/editable-field/types/ViewField';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
import { DateCellEdit } from './DateCellEdit';
|
import { DateCellEdit } from './DateCellEdit';
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import {
|
|||||||
import { TextInputDisplay } from '@/ui/input/text/components/TextInputDisplay';
|
import { TextInputDisplay } from '@/ui/input/text/components/TextInputDisplay';
|
||||||
import { EditableCell } from '@/ui/table/editable-cell/components/EditableCell';
|
import { EditableCell } from '@/ui/table/editable-cell/components/EditableCell';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
import { GenericEditableDoubleTextCellEditMode } from './GenericEditableDoubleTextCellEditMode';
|
import { GenericEditableDoubleTextCellEditMode } from './GenericEditableDoubleTextCellEditMode';
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import {
|
|||||||
} from '@/ui/editable-field/types/ViewField';
|
} from '@/ui/editable-field/types/ViewField';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
import { DoubleTextCellEdit } from './DoubleTextCellEdit';
|
import { DoubleTextCellEdit } from './DoubleTextCellEdit';
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import {
|
|||||||
} from '@/ui/editable-field/types/ViewField';
|
} from '@/ui/editable-field/types/ViewField';
|
||||||
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
viewField: ViewFieldDefinition<ViewFieldDoubleTextChipMetadata>;
|
viewField: ViewFieldDefinition<ViewFieldDoubleTextChipMetadata>;
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import {
|
|||||||
} from '@/ui/editable-field/types/ViewField';
|
} from '@/ui/editable-field/types/ViewField';
|
||||||
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
|
||||||
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField';
|
||||||
import { tableEntityFieldFamilySelector } from '@/ui/table/states/tableEntityFieldFamilySelector';
|
import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector';
|
||||||
|
|
||||||
import { DoubleTextCellEdit } from './DoubleTextCellEdit';
|
import { DoubleTextCellEdit } from './DoubleTextCellEdit';
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user