diff --git a/front/src/modules/companies/board/components/CompanyBoard.tsx b/front/src/modules/companies/board/components/CompanyBoard.tsx index 330b0fe58..1bdd8d3eb 100644 --- a/front/src/modules/companies/board/components/CompanyBoard.tsx +++ b/front/src/modules/companies/board/components/CompanyBoard.tsx @@ -2,14 +2,14 @@ import styled from '@emotion/styled'; import { BoardContext } from '@/companies/states/contexts/BoardContext'; import { mapBoardFieldDefinitionsToViewFields } from '@/companies/utils/mapBoardFieldDefinitionsToViewFields'; -import { BoardOptionsDropdown } from '@/ui/layout/board/components/BoardOptionsDropdown'; -import { BoardOptionsDropdownId } from '@/ui/layout/board/components/constants/BoardOptionsDropdownId'; +import { RecordBoardActionBar } from '@/ui/object/record-board/action-bar/components/RecordBoardActionBar'; +import { BoardOptionsDropdownId } from '@/ui/object/record-board/components/constants/BoardOptionsDropdownId'; import { - EntityBoard, - EntityBoardProps, -} from '@/ui/layout/board/components/EntityBoard'; -import { EntityBoardActionBar } from '@/ui/layout/board/components/EntityBoardActionBar'; -import { EntityBoardContextMenu } from '@/ui/layout/board/components/EntityBoardContextMenu'; + RecordBoard, + RecordBoardProps, +} from '@/ui/object/record-board/components/RecordBoard'; +import { RecordBoardContextMenu } from '@/ui/object/record-board/context-menu/components/RecordBoardContextMenu'; +import { BoardOptionsDropdown } from '@/ui/object/record-board/options/components/BoardOptionsDropdown'; import { ViewBar } from '@/views/components/ViewBar'; import { useViewFields } from '@/views/hooks/internal/useViewFields'; import { ViewScope } from '@/views/scopes/ViewScope'; @@ -27,7 +27,7 @@ const StyledContainer = styled.div` `; type CompanyBoardProps = Pick< - EntityBoardProps, + RecordBoardProps, 'onColumnAdd' | 'onColumnDelete' | 'onEditColumnTitle' >; @@ -61,14 +61,14 @@ export const CompanyBoard = ({ optionsDropdownScopeId={BoardOptionsDropdownId} /> - - - + + diff --git a/front/src/modules/companies/components/CompanyBoardCard.tsx b/front/src/modules/companies/components/CompanyBoardCard.tsx index ac3c11e69..70cfa3c6a 100644 --- a/front/src/modules/companies/components/CompanyBoardCard.tsx +++ b/front/src/modules/companies/components/CompanyBoardCard.tsx @@ -7,13 +7,13 @@ import { EntityChipVariant } from '@/ui/display/chip/components/EntityChip'; import { IconEye } from '@/ui/display/icon/index'; import { LightIconButton } from '@/ui/input/button/components/LightIconButton'; import { Checkbox, CheckboxVariant } from '@/ui/input/components/Checkbox'; -import { BoardCardIdContext } from '@/ui/layout/board/contexts/BoardCardIdContext'; -import { useBoardContext } from '@/ui/layout/board/hooks/useBoardContext'; -import { useCurrentCardSelected } from '@/ui/layout/board/hooks/useCurrentCardSelected'; -import { isCardInCompactViewState } from '@/ui/layout/board/states/isCardInCompactViewState'; -import { isCompactViewEnabledState } from '@/ui/layout/board/states/isCompactViewEnabledState'; -import { visibleBoardCardFieldsScopedSelector } from '@/ui/layout/board/states/selectors/visibleBoardCardFieldsScopedSelector'; import { FieldContext } from '@/ui/object/field/contexts/FieldContext'; +import { BoardCardIdContext } from '@/ui/object/record-board/contexts/BoardCardIdContext'; +import { useBoardContext } from '@/ui/object/record-board/hooks/useBoardContext'; +import { useCurrentCardSelected } from '@/ui/object/record-board/hooks/useCurrentCardSelected'; +import { isCardInCompactViewState } from '@/ui/object/record-board/states/isCardInCompactViewState'; +import { isCompactViewEnabledState } from '@/ui/object/record-board/states/isCompactViewEnabledState'; +import { visibleBoardCardFieldsScopedSelector } from '@/ui/object/record-board/states/selectors/visibleBoardCardFieldsScopedSelector'; import { RecordInlineCell } from '@/ui/object/record-inline-cell/components/RecordInlineCell'; import { InlineCellHotkeyScope } from '@/ui/object/record-inline-cell/types/InlineCellHotkeyScope'; import { AnimatedEaseInOut } from '@/ui/utilities/animation/components/AnimatedEaseInOut'; diff --git a/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx b/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx index e483a6fe5..28daa6ca0 100644 --- a/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx +++ b/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx @@ -9,14 +9,14 @@ import { PaginatedObjectTypeResults } from '@/object-record/types/PaginatedObjec import { filterAvailableTableColumns } from '@/object-record/utils/filterAvailableTableColumns'; import { Opportunity } from '@/pipeline/types/Opportunity'; import { PipelineStep } from '@/pipeline/types/PipelineStep'; -import { useBoardActionBarEntries } from '@/ui/layout/board/hooks/useBoardActionBarEntries'; -import { useBoardContext } from '@/ui/layout/board/hooks/useBoardContext'; -import { useBoardContextMenuEntries } from '@/ui/layout/board/hooks/useBoardContextMenuEntries'; -import { availableBoardCardFieldsScopedState } from '@/ui/layout/board/states/availableBoardCardFieldsScopedState'; -import { boardCardFieldsScopedState } from '@/ui/layout/board/states/boardCardFieldsScopedState'; -import { isBoardLoadedState } from '@/ui/layout/board/states/isBoardLoadedState'; import { turnFiltersIntoWhereClauseV2 } from '@/ui/object/object-filter-dropdown/utils/turnFiltersIntoWhereClauseV2'; import { turnSortsIntoOrderByV2 } from '@/ui/object/object-sort-dropdown/utils/turnSortsIntoOrderByV2'; +import { useBoardActionBarEntries } from '@/ui/object/record-board/hooks/useBoardActionBarEntries'; +import { useBoardContext } from '@/ui/object/record-board/hooks/useBoardContext'; +import { useBoardContextMenuEntries } from '@/ui/object/record-board/hooks/useBoardContextMenuEntries'; +import { availableBoardCardFieldsScopedState } from '@/ui/object/record-board/states/availableBoardCardFieldsScopedState'; +import { boardCardFieldsScopedState } from '@/ui/object/record-board/states/boardCardFieldsScopedState'; +import { isBoardLoadedState } from '@/ui/object/record-board/states/isBoardLoadedState'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; import { useSetRecoilScopedStateV2 } from '@/ui/utilities/recoil-scope/hooks/useSetRecoilScopedStateV2'; import { useViewScopedStates } from '@/views/hooks/internal/useViewScopedStates'; diff --git a/front/src/modules/companies/components/NewCompanyProgressButton.tsx b/front/src/modules/companies/components/NewCompanyProgressButton.tsx index 50fb8717a..4441c1209 100644 --- a/front/src/modules/companies/components/NewCompanyProgressButton.tsx +++ b/front/src/modules/companies/components/NewCompanyProgressButton.tsx @@ -3,8 +3,8 @@ import { useCallback, useContext, useState } from 'react'; import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { relationPickerSearchFilterScopedState } from '@/ui/input/relation-picker/states/relationPickerSearchFilterScopedState'; import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope'; -import { NewButton } from '@/ui/layout/board/components/NewButton'; -import { BoardColumnContext } from '@/ui/layout/board/contexts/BoardColumnContext'; +import { NewButton } from '@/ui/object/record-board/components/NewButton'; +import { BoardColumnContext } from '@/ui/object/record-board/contexts/BoardColumnContext'; import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; diff --git a/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts b/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts index 97b50edd5..7939f3df5 100644 --- a/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts +++ b/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts @@ -1,8 +1,8 @@ import { useRecoilCallback } from 'recoil'; import { Opportunity } from '@/pipeline/types/Opportunity'; -import { boardCardIdsByColumnIdFamilyState } from '@/ui/layout/board/states/boardCardIdsByColumnIdFamilyState'; -import { boardColumnsState } from '@/ui/layout/board/states/boardColumnsState'; +import { boardCardIdsByColumnIdFamilyState } from '@/ui/object/record-board/states/boardCardIdsByColumnIdFamilyState'; +import { boardColumnsState } from '@/ui/object/record-board/states/boardColumnsState'; export const useUpdateCompanyBoardCardIds = () => useRecoilCallback( diff --git a/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts b/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts index ae3aca0a1..21cf23c4a 100644 --- a/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts +++ b/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts @@ -3,11 +3,11 @@ import { useRecoilCallback } from 'recoil'; import { currentPipelineStepsState } from '@/pipeline/states/currentPipelineStepsState'; import { Opportunity } from '@/pipeline/types/Opportunity'; import { PipelineStep } from '@/pipeline/types/PipelineStep'; -import { boardCardIdsByColumnIdFamilyState } from '@/ui/layout/board/states/boardCardIdsByColumnIdFamilyState'; -import { boardColumnsState } from '@/ui/layout/board/states/boardColumnsState'; -import { savedBoardColumnsState } from '@/ui/layout/board/states/savedBoardColumnsState'; -import { BoardColumnDefinition } from '@/ui/layout/board/types/BoardColumnDefinition'; import { entityFieldsFamilyState } from '@/ui/object/field/states/entityFieldsFamilyState'; +import { boardCardIdsByColumnIdFamilyState } from '@/ui/object/record-board/states/boardCardIdsByColumnIdFamilyState'; +import { boardColumnsState } from '@/ui/object/record-board/states/boardColumnsState'; +import { savedBoardColumnsState } from '@/ui/object/record-board/states/savedBoardColumnsState'; +import { BoardColumnDefinition } from '@/ui/object/record-board/types/BoardColumnDefinition'; import { isThemeColor } from '@/ui/theme/utils/castStringAsThemeColor'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; import { logError } from '~/utils/logError'; diff --git a/front/src/modules/companies/states/contexts/BoardContext.ts b/front/src/modules/companies/states/contexts/BoardContext.ts index e0d8bd6bd..b13b67213 100644 --- a/front/src/modules/companies/states/contexts/BoardContext.ts +++ b/front/src/modules/companies/states/contexts/BoardContext.ts @@ -1,8 +1,8 @@ import { createContext } from 'react'; import { RecoilScopeContext } from '@/types/RecoilScopeContext'; -import { BoardFieldDefinition } from '@/ui/layout/board/types/BoardFieldDefinition'; import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata'; +import { BoardFieldDefinition } from '@/ui/object/record-board/types/BoardFieldDefinition'; export const BoardContext = createContext<{ BoardRecoilScopeContext: RecoilScopeContext; diff --git a/front/src/modules/companies/utils/mapBoardFieldDefinitionsToViewFields.ts b/front/src/modules/companies/utils/mapBoardFieldDefinitionsToViewFields.ts index b417fb72e..75cde9e27 100644 --- a/front/src/modules/companies/utils/mapBoardFieldDefinitionsToViewFields.ts +++ b/front/src/modules/companies/utils/mapBoardFieldDefinitionsToViewFields.ts @@ -1,5 +1,5 @@ -import { BoardFieldDefinition } from '@/ui/layout/board/types/BoardFieldDefinition'; import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata'; +import { BoardFieldDefinition } from '@/ui/object/record-board/types/BoardFieldDefinition'; import { ViewField } from '@/views/types/ViewField'; export const mapBoardFieldDefinitionsToViewFields = ( diff --git a/front/src/modules/pipeline/hooks/usePipelineSteps.ts b/front/src/modules/pipeline/hooks/usePipelineSteps.ts index 6326adee4..4d74cb731 100644 --- a/front/src/modules/pipeline/hooks/usePipelineSteps.ts +++ b/front/src/modules/pipeline/hooks/usePipelineSteps.ts @@ -4,7 +4,7 @@ import { useCreateOneObjectRecord } from '@/object-record/hooks/useCreateOneObje import { useDeleteOneObjectRecord } from '@/object-record/hooks/useDeleteOneObjectRecord'; import { currentPipelineState } from '@/pipeline/states/currentPipelineState'; import { PipelineStep } from '@/pipeline/types/PipelineStep'; -import { BoardColumnDefinition } from '@/ui/layout/board/types/BoardColumnDefinition'; +import { BoardColumnDefinition } from '@/ui/object/record-board/types/BoardColumnDefinition'; export const usePipelineSteps = () => { const { createOneObject: createOnePipelineStep } = diff --git a/front/src/modules/ui/layout/board/components/BoardColumn.tsx b/front/src/modules/ui/layout/board/components/BoardColumn.tsx deleted file mode 100644 index e25363eb0..000000000 --- a/front/src/modules/ui/layout/board/components/BoardColumn.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import React, { useContext } from 'react'; -import styled from '@emotion/styled'; - -import { Tag } from '@/ui/display/tag/components/Tag'; -import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; - -import { BoardColumnContext } from '../contexts/BoardColumnContext'; -import { BoardColumnHotkeyScope } from '../types/BoardColumnHotkeyScope'; - -import { BoardColumnMenu } from './BoardColumnMenu'; - -const StyledColumn = styled.div<{ isFirstColumn: boolean }>` - background-color: ${({ theme }) => theme.background.primary}; - border-left: 1px solid - ${({ theme, isFirstColumn }) => - isFirstColumn ? 'none' : theme.border.color.light}; - display: flex; - flex-direction: column; - max-width: 200px; - min-width: 200px; - - padding: ${({ theme }) => theme.spacing(2)}; - position: relative; -`; - -const StyledHeader = styled.div` - align-items: center; - cursor: pointer; - display: flex; - flex-direction: row; - height: 24px; - justify-content: left; - margin-bottom: ${({ theme }) => theme.spacing(2)}; - width: 100%; -`; - -const StyledAmount = styled.div` - color: ${({ theme }) => theme.font.color.tertiary}; - margin-left: ${({ theme }) => theme.spacing(2)}; -`; - -const StyledNumChildren = styled.div` - align-items: center; - background-color: ${({ theme }) => theme.background.tertiary}; - border-radius: ${({ theme }) => theme.border.radius.rounded}; - color: ${({ theme }) => theme.font.color.tertiary}; - display: flex; - height: 20px; - justify-content: center; - line-height: ${({ theme }) => theme.text.lineHeight.lg}; - margin-left: auto; - width: 16px; -`; - -export type BoardColumnProps = { - onDelete?: (id: string) => void; - onTitleEdit: (title: string, color: string) => void; - totalAmount?: number; - children: React.ReactNode; - numChildren: number; - stageId: string; -}; - -export const BoardColumn = ({ - onDelete, - onTitleEdit, - totalAmount, - children, - numChildren, - stageId, -}: BoardColumnProps) => { - const boardColumn = useContext(BoardColumnContext); - - const [isBoardColumnMenuOpen, setIsBoardColumnMenuOpen] = - React.useState(false); - - const { - setHotkeyScopeAndMemorizePreviousScope, - goBackToPreviousHotkeyScope, - } = usePreviousHotkeyScope(); - - const handleTitleClick = () => { - setIsBoardColumnMenuOpen(true); - setHotkeyScopeAndMemorizePreviousScope(BoardColumnHotkeyScope.BoardColumn, { - goto: false, - }); - }; - - const handleClose = () => { - goBackToPreviousHotkeyScope(); - setIsBoardColumnMenuOpen(false); - }; - - if (!boardColumn) return <>; - - const { isFirstColumn, columnDefinition } = boardColumn; - - return ( - - - - {!!totalAmount && ${totalAmount}} - {numChildren} - - {isBoardColumnMenuOpen && ( - - )} - {children} - - ); -}; diff --git a/front/src/modules/ui/layout/board/components/EntityBoardColumn.tsx b/front/src/modules/ui/layout/board/components/EntityBoardColumn.tsx deleted file mode 100644 index 17eb766c5..000000000 --- a/front/src/modules/ui/layout/board/components/EntityBoardColumn.tsx +++ /dev/null @@ -1,123 +0,0 @@ -import { useContext } from 'react'; -import styled from '@emotion/styled'; -import { Draggable, Droppable, DroppableProvided } from '@hello-pangea/dnd'; -import { useRecoilValue } from 'recoil'; - -import { BoardColumn } from '@/ui/layout/board/components/BoardColumn'; -import { BoardCardIdContext } from '@/ui/layout/board/contexts/BoardCardIdContext'; -import { BoardColumnContext } from '@/ui/layout/board/contexts/BoardColumnContext'; -import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope'; - -import { boardCardIdsByColumnIdFamilyState } from '../states/boardCardIdsByColumnIdFamilyState'; -import { boardColumnTotalsFamilySelector } from '../states/selectors/boardColumnTotalsFamilySelector'; -import { BoardOptions } from '../types/BoardOptions'; - -import { EntityBoardCard } from './EntityBoardCard'; - -const StyledPlaceholder = styled.div` - min-height: 1px; -`; - -const StyledNewCardButtonContainer = styled.div` - padding-bottom: ${({ theme }) => theme.spacing(4)}; -`; - -const StyledColumnCardsContainer = styled.div` - display: flex; - flex: 1; - flex-direction: column; -`; - -type BoardColumnCardsContainerProps = { - children: React.ReactNode; - droppableProvided: DroppableProvided; -}; - -type EntityBoardColumnProps = { - boardOptions: BoardOptions; - onDelete?: (columnId: string) => void; - onTitleEdit: (columnId: string, title: string, color: string) => void; -}; - -const BoardColumnCardsContainer = ({ - children, - droppableProvided, -}: BoardColumnCardsContainerProps) => { - return ( - - {children} - {droppableProvided?.placeholder} - - ); -}; - -export const EntityBoardColumn = ({ - boardOptions, - onDelete, - onTitleEdit, -}: EntityBoardColumnProps) => { - const column = useContext(BoardColumnContext); - - const boardColumnId = column?.id || ''; - - const boardColumnTotal = useRecoilValue( - boardColumnTotalsFamilySelector(boardColumnId), - ); - - const cardIds = useRecoilValue( - boardCardIdsByColumnIdFamilyState(boardColumnId), - ); - - const handleTitleEdit = (title: string, color: string) => { - onTitleEdit(boardColumnId, title, color); - }; - - if (!column) return <>; - - return ( - - {(droppableProvided) => ( - - - {cardIds.map((cardId, index) => ( - - - - ))} - - {(draggableProvided) => ( -
- - {boardOptions.newCardComponent} - -
- )} -
-
-
- )} -
- ); -}; diff --git a/front/src/modules/ui/layout/board/components/StyledBoard.tsx b/front/src/modules/ui/layout/board/components/StyledBoard.tsx deleted file mode 100644 index 1b39fa2be..000000000 --- a/front/src/modules/ui/layout/board/components/StyledBoard.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import styled from '@emotion/styled'; - -export const StyledBoard = styled.div` - border-top: 1px solid ${({ theme }) => theme.border.color.light}; - display: flex; - flex: 1; - flex-direction: row; - margin-left: ${({ theme }) => theme.spacing(2)}; - margin-right: ${({ theme }) => theme.spacing(2)}; -`; diff --git a/front/src/modules/ui/object/object-filter-dropdown/components/SingleEntityObjectFilterDropdownButton.tsx b/front/src/modules/ui/object/object-filter-dropdown/components/SingleEntityObjectFilterDropdownButton.tsx index 678cfd0ef..a3f799a3b 100644 --- a/front/src/modules/ui/object/object-filter-dropdown/components/SingleEntityObjectFilterDropdownButton.tsx +++ b/front/src/modules/ui/object/object-filter-dropdown/components/SingleEntityObjectFilterDropdownButton.tsx @@ -25,7 +25,6 @@ export const SingleEntityObjectFilterDropdownButton = ({ selectedFilter, setFilterDefinitionUsedInDropdown, setSelectedOperandInDropdown, - resetFilter, } = useFilter(); const availableFilter = availableFilterDefinitions[0]; diff --git a/front/src/modules/ui/layout/board/components/EntityBoardActionBar.tsx b/front/src/modules/ui/object/record-board/action-bar/components/RecordBoardActionBar.tsx similarity index 67% rename from front/src/modules/ui/layout/board/components/EntityBoardActionBar.tsx rename to front/src/modules/ui/object/record-board/action-bar/components/RecordBoardActionBar.tsx index 69dadd09d..de16d7f02 100644 --- a/front/src/modules/ui/layout/board/components/EntityBoardActionBar.tsx +++ b/front/src/modules/ui/object/record-board/action-bar/components/RecordBoardActionBar.tsx @@ -3,9 +3,9 @@ import { useRecoilValue } from 'recoil'; import { ActionBar } from '@/ui/navigation/action-bar/components/ActionBar'; -import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSelector'; +import { selectedCardIdsSelector } from '../../states/selectors/selectedCardIdsSelector'; -export const EntityBoardActionBar = () => { +export const RecordBoardActionBar = () => { const selectedCardIds = useRecoilValue(selectedCardIdsSelector); return ; }; diff --git a/front/src/modules/ui/layout/board/components/NewButton.tsx b/front/src/modules/ui/object/record-board/components/NewButton.tsx similarity index 100% rename from front/src/modules/ui/layout/board/components/NewButton.tsx rename to front/src/modules/ui/object/record-board/components/NewButton.tsx diff --git a/front/src/modules/ui/layout/board/components/EntityBoard.tsx b/front/src/modules/ui/object/record-board/components/RecordBoard.tsx similarity index 85% rename from front/src/modules/ui/layout/board/components/EntityBoard.tsx rename to front/src/modules/ui/object/record-board/components/RecordBoard.tsx index 0dfdf074d..fe9a311b1 100644 --- a/front/src/modules/ui/layout/board/components/EntityBoard.tsx +++ b/front/src/modules/ui/object/record-board/components/RecordBoard.tsx @@ -6,11 +6,10 @@ import { useRecoilValue } from 'recoil'; import { useUpdateOneObjectRecord } from '@/object-record/hooks/useUpdateOneObjectRecord'; import { Opportunity } from '@/pipeline/types/Opportunity'; import { PageHotkeyScope } from '@/types/PageHotkeyScope'; -import { StyledBoard } from '@/ui/layout/board/components/StyledBoard'; -import { BoardColumnContext } from '@/ui/layout/board/contexts/BoardColumnContext'; -import { useSetCardSelected } from '@/ui/layout/board/hooks/useSetCardSelected'; -import { useUpdateBoardCardIds } from '@/ui/layout/board/hooks/useUpdateBoardCardIds'; -import { boardColumnsState } from '@/ui/layout/board/states/boardColumnsState'; +import { BoardColumnContext } from '@/ui/object/record-board/contexts/BoardColumnContext'; +import { useSetCardSelected } from '@/ui/object/record-board/hooks/useSetCardSelected'; +import { useUpdateBoardCardIds } from '@/ui/object/record-board/hooks/useUpdateBoardCardIds'; +import { boardColumnsState } from '@/ui/object/record-board/states/boardColumnsState'; import { DragSelect } from '@/ui/utilities/drag-select/components/DragSelect'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useListenClickOutsideByClassName } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; @@ -22,15 +21,24 @@ import { BoardColumnRecoilScopeContext } from '../states/recoil-scope-contexts/B import { BoardColumnDefinition } from '../types/BoardColumnDefinition'; import { BoardOptions } from '../types/BoardOptions'; -import { EntityBoardColumn } from './EntityBoardColumn'; +import { RecordBoardColumn } from './RecordBoardColumn'; -export type EntityBoardProps = { +export type RecordBoardProps = { boardOptions: BoardOptions; onColumnAdd?: (boardColumn: BoardColumnDefinition) => void; onColumnDelete?: (boardColumnId: string) => void; onEditColumnTitle: (columnId: string, title: string, color: string) => void; }; +const StyledBoard = styled.div` + border-top: 1px solid ${({ theme }) => theme.border.color.light}; + display: flex; + flex: 1; + flex-direction: row; + margin-left: ${({ theme }) => theme.spacing(2)}; + margin-right: ${({ theme }) => theme.spacing(2)}; +`; + const StyledWrapper = styled.div` display: flex; flex-direction: column; @@ -45,11 +53,11 @@ const StyledBoardHeader = styled.div` z-index: 1; `; -export const EntityBoard = ({ +export const RecordBoard = ({ boardOptions, onColumnDelete, onEditColumnTitle, -}: EntityBoardProps) => { +}: RecordBoardProps) => { const boardColumns = useRecoilValue(boardColumnsState); const { updateOneObject: updateOneOpportunity } = @@ -140,7 +148,7 @@ export const EntityBoard = ({ CustomRecoilScopeContext={BoardColumnRecoilScopeContext} key={column.id} > - theme.spacing(4)}; +`; + +const StyledColumnCardsContainer = styled.div` + display: flex; + flex: 1; + flex-direction: column; +`; + +const StyledColumn = styled.div<{ isFirstColumn: boolean }>` + background-color: ${({ theme }) => theme.background.primary}; + border-left: 1px solid + ${({ theme, isFirstColumn }) => + isFirstColumn ? 'none' : theme.border.color.light}; + display: flex; + flex-direction: column; + max-width: 200px; + min-width: 200px; + + padding: ${({ theme }) => theme.spacing(2)}; + position: relative; +`; + +const StyledHeader = styled.div` + align-items: center; + cursor: pointer; + display: flex; + flex-direction: row; + height: 24px; + justify-content: left; + margin-bottom: ${({ theme }) => theme.spacing(2)}; + width: 100%; +`; + +const StyledAmount = styled.div` + color: ${({ theme }) => theme.font.color.tertiary}; + margin-left: ${({ theme }) => theme.spacing(2)}; +`; + +const StyledNumChildren = styled.div` + align-items: center; + background-color: ${({ theme }) => theme.background.tertiary}; + border-radius: ${({ theme }) => theme.border.radius.rounded}; + color: ${({ theme }) => theme.font.color.tertiary}; + display: flex; + height: 20px; + justify-content: center; + line-height: ${({ theme }) => theme.text.lineHeight.lg}; + margin-left: auto; + width: 16px; +`; + +type BoardColumnCardsContainerProps = { + children: React.ReactNode; + droppableProvided: DroppableProvided; +}; + +type RecordBoardColumnProps = { + boardOptions: BoardOptions; + onDelete?: (columnId: string) => void; + onTitleEdit: (columnId: string, title: string, color: string) => void; +}; + +const BoardColumnCardsContainer = ({ + children, + droppableProvided, +}: BoardColumnCardsContainerProps) => { + return ( + + {children} + {droppableProvided?.placeholder} + + ); +}; + +export const RecordBoardColumn = ({ + boardOptions, + onDelete, + onTitleEdit, +}: RecordBoardColumnProps) => { + const column = useContext(BoardColumnContext); + + const [isBoardColumnMenuOpen, setIsBoardColumnMenuOpen] = + React.useState(false); + + const { + setHotkeyScopeAndMemorizePreviousScope, + goBackToPreviousHotkeyScope, + } = usePreviousHotkeyScope(); + + const handleTitleClick = () => { + setIsBoardColumnMenuOpen(true); + setHotkeyScopeAndMemorizePreviousScope(BoardColumnHotkeyScope.BoardColumn, { + goto: false, + }); + }; + + const handleClose = () => { + goBackToPreviousHotkeyScope(); + setIsBoardColumnMenuOpen(false); + }; + + const boardColumnId = column?.id || ''; + + const boardColumnTotal = useRecoilValue( + boardColumnTotalsFamilySelector(boardColumnId), + ); + + const cardIds = useRecoilValue( + boardCardIdsByColumnIdFamilyState(boardColumnId), + ); + + const handleTitleEdit = (title: string, color: string) => { + onTitleEdit(boardColumnId, title, color); + }; + + if (!column) return <>; + + const { isFirstColumn, columnDefinition } = column; + + return ( + + {(droppableProvided) => ( + + + + {!!boardColumnTotal && ( + ${boardColumnTotal} + )} + {cardIds.length} + + {isBoardColumnMenuOpen && ( + + )} + + {cardIds.map((cardId, index) => ( + + + + ))} + + {(draggableProvided) => ( +
+ + {boardOptions.newCardComponent} + +
+ )} +
+
+
+ )} +
+ ); +}; diff --git a/front/src/modules/ui/layout/board/components/BoardColumnMenu.tsx b/front/src/modules/ui/object/record-board/components/RecordBoardColumnDropdownMenu.tsx similarity index 95% rename from front/src/modules/ui/layout/board/components/BoardColumnMenu.tsx rename to front/src/modules/ui/object/record-board/components/RecordBoardColumnDropdownMenu.tsx index cd71a50c0..2aff3d94d 100644 --- a/front/src/modules/ui/layout/board/components/BoardColumnMenu.tsx +++ b/front/src/modules/ui/object/record-board/components/RecordBoardColumnDropdownMenu.tsx @@ -25,7 +25,7 @@ import { BoardColumnContext } from '../contexts/BoardColumnContext'; import { useBoardColumns } from '../hooks/useBoardColumns'; import { BoardColumnHotkeyScope } from '../types/BoardColumnHotkeyScope'; -import { BoardColumnEditTitleMenu } from './BoardColumnEditTitleMenu'; +import { RecordBoardColumnEditTitleMenu } from './RecordBoardColumnEditTitleMenu'; const StyledMenuContainer = styled.div` position: absolute; top: ${({ theme }) => theme.spacing(10)}; @@ -33,7 +33,7 @@ const StyledMenuContainer = styled.div` z-index: 1; `; -type BoardColumnMenuProps = { +type RecordBoardColumnDropdownMenuProps = { onClose: () => void; onDelete?: (id: string) => void; onTitleEdit: (title: string, color: string) => void; @@ -42,12 +42,12 @@ type BoardColumnMenuProps = { type Menu = 'actions' | 'add' | 'title'; -export const BoardColumnMenu = ({ +export const RecordBoardColumnDropdownMenu = ({ onClose, onDelete, onTitleEdit, stageId, -}: BoardColumnMenuProps) => { +}: RecordBoardColumnDropdownMenuProps) => { const [currentMenu, setCurrentMenu] = useState('actions'); const column = useContext(BoardColumnContext); @@ -160,7 +160,7 @@ export const BoardColumnMenu = ({ )} {currentMenu === 'title' && ( - void; onDelete?: (id: string) => void; title: string; @@ -67,14 +67,14 @@ export const COLUMN_COLOR_OPTIONS: ColumnColorOption[] = [ { name: 'Gray', id: 'gray' }, ]; -export const BoardColumnEditTitleMenu = ({ +export const RecordBoardColumnEditTitleMenu = ({ onClose, onDelete, stageId, onTitleEdit, title, color, -}: BoardColumnEditTitleMenuProps) => { +}: RecordBoardColumnEditTitleMenuProps) => { const [internalValue, setInternalValue] = useState(title); const [, setBoardColumns] = useRecoilState(boardColumnsState); const debouncedOnUpdateTitle = debounce( diff --git a/front/src/modules/ui/layout/board/components/__stories__/BoardColumnEditTitleMenu.stories.tsx b/front/src/modules/ui/object/record-board/components/__stories__/RecordBoardColumnEditTitleMenu.stories.tsx similarity index 66% rename from front/src/modules/ui/layout/board/components/__stories__/BoardColumnEditTitleMenu.stories.tsx rename to front/src/modules/ui/object/record-board/components/__stories__/RecordBoardColumnEditTitleMenu.stories.tsx index bbaaf09f1..bb818e778 100644 --- a/front/src/modules/ui/layout/board/components/__stories__/BoardColumnEditTitleMenu.stories.tsx +++ b/front/src/modules/ui/object/record-board/components/__stories__/RecordBoardColumnEditTitleMenu.stories.tsx @@ -3,13 +3,13 @@ import { Meta, StoryObj } from '@storybook/react'; import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator'; import { - BoardColumnEditTitleMenu, COLUMN_COLOR_OPTIONS, -} from '../BoardColumnEditTitleMenu'; + RecordBoardColumnEditTitleMenu, +} from '../RecordBoardColumnEditTitleMenu'; -const meta: Meta = { +const meta: Meta = { title: 'UI/Layout/Board/BoardColumnMenu', - component: BoardColumnEditTitleMenu, + component: RecordBoardColumnEditTitleMenu, decorators: [ComponentDecorator], argTypes: { color: { @@ -21,6 +21,6 @@ const meta: Meta = { }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const AllTags: Story = {}; diff --git a/front/src/modules/ui/layout/board/components/constants/BoardOptionsDropdownId.ts b/front/src/modules/ui/object/record-board/components/constants/BoardOptionsDropdownId.ts similarity index 100% rename from front/src/modules/ui/layout/board/components/constants/BoardOptionsDropdownId.ts rename to front/src/modules/ui/object/record-board/components/constants/BoardOptionsDropdownId.ts diff --git a/front/src/modules/ui/layout/board/components/EntityBoardContextMenu.tsx b/front/src/modules/ui/object/record-board/context-menu/components/RecordBoardContextMenu.tsx similarity index 68% rename from front/src/modules/ui/layout/board/components/EntityBoardContextMenu.tsx rename to front/src/modules/ui/object/record-board/context-menu/components/RecordBoardContextMenu.tsx index 5bb7183b5..ce2200618 100644 --- a/front/src/modules/ui/layout/board/components/EntityBoardContextMenu.tsx +++ b/front/src/modules/ui/object/record-board/context-menu/components/RecordBoardContextMenu.tsx @@ -3,9 +3,9 @@ import { useRecoilValue } from 'recoil'; import { ContextMenu } from '@/ui/navigation/context-menu/components/ContextMenu'; -import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSelector'; +import { selectedCardIdsSelector } from '../../states/selectors/selectedCardIdsSelector'; -export const EntityBoardContextMenu = () => { +export const RecordBoardContextMenu = () => { const selectedCardIds = useRecoilValue(selectedCardIdsSelector); return ; }; diff --git a/front/src/modules/ui/layout/board/contexts/BoardCardIdContext.ts b/front/src/modules/ui/object/record-board/contexts/BoardCardIdContext.ts similarity index 100% rename from front/src/modules/ui/layout/board/contexts/BoardCardIdContext.ts rename to front/src/modules/ui/object/record-board/contexts/BoardCardIdContext.ts diff --git a/front/src/modules/ui/layout/board/contexts/BoardColumnContext.ts b/front/src/modules/ui/object/record-board/contexts/BoardColumnContext.ts similarity index 100% rename from front/src/modules/ui/layout/board/contexts/BoardColumnContext.ts rename to front/src/modules/ui/object/record-board/contexts/BoardColumnContext.ts diff --git a/front/src/modules/ui/layout/board/contexts/BoardOptionsContext.ts b/front/src/modules/ui/object/record-board/contexts/BoardOptionsContext.ts similarity index 60% rename from front/src/modules/ui/layout/board/contexts/BoardOptionsContext.ts rename to front/src/modules/ui/object/record-board/contexts/BoardOptionsContext.ts index fd599cc92..6b87907fe 100644 --- a/front/src/modules/ui/layout/board/contexts/BoardOptionsContext.ts +++ b/front/src/modules/ui/object/record-board/contexts/BoardOptionsContext.ts @@ -1,5 +1,5 @@ import { createContext } from 'react'; -import { BoardOptions } from '@/ui/layout/board/types/BoardOptions'; +import { BoardOptions } from '@/ui/object/record-board/types/BoardOptions'; export const BoardOptionsContext = createContext(null); diff --git a/front/src/modules/ui/layout/board/hooks/useBoardActionBarEntries.tsx b/front/src/modules/ui/object/record-board/hooks/useBoardActionBarEntries.tsx similarity index 87% rename from front/src/modules/ui/layout/board/hooks/useBoardActionBarEntries.tsx rename to front/src/modules/ui/object/record-board/hooks/useBoardActionBarEntries.tsx index 13e0acc37..9f44688f3 100644 --- a/front/src/modules/ui/layout/board/hooks/useBoardActionBarEntries.tsx +++ b/front/src/modules/ui/object/record-board/hooks/useBoardActionBarEntries.tsx @@ -2,8 +2,8 @@ import { useCallback } from 'react'; import { useSetRecoilState } from 'recoil'; import { IconTrash } from '@/ui/display/icon'; -import { useDeleteSelectedBoardCards } from '@/ui/layout/board/hooks/useDeleteSelectedBoardCards'; import { actionBarEntriesState } from '@/ui/navigation/action-bar/states/actionBarEntriesState'; +import { useDeleteSelectedBoardCards } from '@/ui/object/record-board/hooks/useDeleteSelectedBoardCards'; export const useBoardActionBarEntries = () => { const setActionBarEntriesRecoil = useSetRecoilState(actionBarEntriesState); diff --git a/front/src/modules/ui/layout/board/hooks/useBoardCardFields.ts b/front/src/modules/ui/object/record-board/hooks/useBoardCardFields.ts similarity index 89% rename from front/src/modules/ui/layout/board/hooks/useBoardCardFields.ts rename to front/src/modules/ui/object/record-board/hooks/useBoardCardFields.ts index d19ddc1f7..5b0a43846 100644 --- a/front/src/modules/ui/layout/board/hooks/useBoardCardFields.ts +++ b/front/src/modules/ui/object/record-board/hooks/useBoardCardFields.ts @@ -1,8 +1,8 @@ import { useCallback } from 'react'; -import { savedBoardCardFieldsFamilyState } from '@/ui/layout/board/states/savedBoardCardFieldsFamilyState'; -import { BoardFieldDefinition } from '@/ui/layout/board/types/BoardFieldDefinition'; import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata'; +import { savedBoardCardFieldsFamilyState } from '@/ui/object/record-board/states/savedBoardCardFieldsFamilyState'; +import { BoardFieldDefinition } from '@/ui/object/record-board/types/BoardFieldDefinition'; import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; diff --git a/front/src/modules/ui/layout/board/hooks/useBoardColumns.ts b/front/src/modules/ui/object/record-board/hooks/useBoardColumns.ts similarity index 100% rename from front/src/modules/ui/layout/board/hooks/useBoardColumns.ts rename to front/src/modules/ui/object/record-board/hooks/useBoardColumns.ts diff --git a/front/src/modules/ui/layout/board/hooks/useBoardContext.ts b/front/src/modules/ui/object/record-board/hooks/useBoardContext.ts similarity index 100% rename from front/src/modules/ui/layout/board/hooks/useBoardContext.ts rename to front/src/modules/ui/object/record-board/hooks/useBoardContext.ts diff --git a/front/src/modules/ui/layout/board/hooks/useBoardContextMenuEntries.tsx b/front/src/modules/ui/object/record-board/hooks/useBoardContextMenuEntries.tsx similarity index 88% rename from front/src/modules/ui/layout/board/hooks/useBoardContextMenuEntries.tsx rename to front/src/modules/ui/object/record-board/hooks/useBoardContextMenuEntries.tsx index 806a8939f..e0fc6a8c6 100644 --- a/front/src/modules/ui/layout/board/hooks/useBoardContextMenuEntries.tsx +++ b/front/src/modules/ui/object/record-board/hooks/useBoardContextMenuEntries.tsx @@ -2,8 +2,8 @@ import { useCallback } from 'react'; import { useSetRecoilState } from 'recoil'; import { IconTrash } from '@/ui/display/icon'; -import { useDeleteSelectedBoardCards } from '@/ui/layout/board/hooks/useDeleteSelectedBoardCards'; import { contextMenuEntriesState } from '@/ui/navigation/context-menu/states/contextMenuEntriesState'; +import { useDeleteSelectedBoardCards } from '@/ui/object/record-board/hooks/useDeleteSelectedBoardCards'; export const useBoardContextMenuEntries = () => { const setContextMenuEntriesRecoil = useSetRecoilState( diff --git a/front/src/modules/ui/layout/board/hooks/useCurrentCardSelected.ts b/front/src/modules/ui/object/record-board/hooks/useCurrentCardSelected.ts similarity index 93% rename from front/src/modules/ui/layout/board/hooks/useCurrentCardSelected.ts rename to front/src/modules/ui/object/record-board/hooks/useCurrentCardSelected.ts index 450077914..f6ed25afe 100644 --- a/front/src/modules/ui/layout/board/hooks/useCurrentCardSelected.ts +++ b/front/src/modules/ui/object/record-board/hooks/useCurrentCardSelected.ts @@ -1,8 +1,8 @@ import { useContext } from 'react'; import { useRecoilCallback, useRecoilValue, useSetRecoilState } from 'recoil'; -import { activeCardIdsState } from '@/ui/layout/board/states/activeCardIdsState'; import { actionBarOpenState } from '@/ui/navigation/action-bar/states/actionBarIsOpenState'; +import { activeCardIdsState } from '@/ui/object/record-board/states/activeCardIdsState'; import { BoardCardIdContext } from '../contexts/BoardCardIdContext'; import { isCardSelectedFamilyState } from '../states/isCardSelectedFamilyState'; diff --git a/front/src/modules/ui/layout/board/hooks/useDeleteSelectedBoardCards.ts b/front/src/modules/ui/object/record-board/hooks/useDeleteSelectedBoardCards.ts similarity index 100% rename from front/src/modules/ui/layout/board/hooks/useDeleteSelectedBoardCards.ts rename to front/src/modules/ui/object/record-board/hooks/useDeleteSelectedBoardCards.ts diff --git a/front/src/modules/ui/layout/board/hooks/useRemoveCardIds.ts b/front/src/modules/ui/object/record-board/hooks/useRemoveCardIds.ts similarity index 100% rename from front/src/modules/ui/layout/board/hooks/useRemoveCardIds.ts rename to front/src/modules/ui/object/record-board/hooks/useRemoveCardIds.ts diff --git a/front/src/modules/ui/layout/board/hooks/useSetCardSelected.ts b/front/src/modules/ui/object/record-board/hooks/useSetCardSelected.ts similarity index 100% rename from front/src/modules/ui/layout/board/hooks/useSetCardSelected.ts rename to front/src/modules/ui/object/record-board/hooks/useSetCardSelected.ts diff --git a/front/src/modules/ui/layout/board/hooks/useUpdateBoardCardIds.ts b/front/src/modules/ui/object/record-board/hooks/useUpdateBoardCardIds.ts similarity index 100% rename from front/src/modules/ui/layout/board/hooks/useUpdateBoardCardIds.ts rename to front/src/modules/ui/object/record-board/hooks/useUpdateBoardCardIds.ts diff --git a/front/src/modules/ui/layout/board/components/BoardOptionsDropdown.tsx b/front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdown.tsx similarity index 73% rename from front/src/modules/ui/layout/board/components/BoardOptionsDropdown.tsx rename to front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdown.tsx index c2f11e159..e9629a9e2 100644 --- a/front/src/modules/ui/layout/board/components/BoardOptionsDropdown.tsx +++ b/front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdown.tsx @@ -1,10 +1,10 @@ import { useView } from '@/views/hooks/useView'; -import { Dropdown } from '../../dropdown/components/Dropdown'; -import { DropdownScope } from '../../dropdown/scopes/DropdownScope'; -import { BoardOptionsHotkeyScope } from '../types/BoardOptionsHotkeyScope'; +import { Dropdown } from '../../../../layout/dropdown/components/Dropdown'; +import { DropdownScope } from '../../../../layout/dropdown/scopes/DropdownScope'; +import { BoardOptionsDropdownId } from '../../components/constants/BoardOptionsDropdownId'; +import { BoardOptionsHotkeyScope } from '../../types/BoardOptionsHotkeyScope'; -import { BoardOptionsDropdownId } from './constants/BoardOptionsDropdownId'; import { BoardOptionsDropdownButton } from './BoardOptionsDropdownButton'; import { BoardOptionsDropdownContent, diff --git a/front/src/modules/ui/layout/board/components/BoardOptionsDropdownButton.tsx b/front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdownButton.tsx similarity index 100% rename from front/src/modules/ui/layout/board/components/BoardOptionsDropdownButton.tsx rename to front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdownButton.tsx diff --git a/front/src/modules/ui/layout/board/components/BoardOptionsDropdownContent.tsx b/front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdownContent.tsx similarity index 92% rename from front/src/modules/ui/layout/board/components/BoardOptionsDropdownContent.tsx rename to front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdownContent.tsx index 7362eae0d..af03527ba 100644 --- a/front/src/modules/ui/layout/board/components/BoardOptionsDropdownContent.tsx +++ b/front/src/modules/ui/object/record-board/options/components/BoardOptionsDropdownContent.tsx @@ -28,13 +28,13 @@ import { ViewFieldsVisibilityDropdownSection } from '@/views/components/ViewFiel import { useViewScopedStates } from '@/views/hooks/internal/useViewScopedStates'; import { useView } from '@/views/hooks/useView'; -import { useBoardCardFields } from '../hooks/useBoardCardFields'; -import { boardColumnsState } from '../states/boardColumnsState'; -import { isCompactViewEnabledState } from '../states/isCompactViewEnabledState'; -import { hiddenBoardCardFieldsScopedSelector } from '../states/selectors/hiddenBoardCardFieldsScopedSelector'; -import { visibleBoardCardFieldsScopedSelector } from '../states/selectors/visibleBoardCardFieldsScopedSelector'; -import { BoardColumnDefinition } from '../types/BoardColumnDefinition'; -import { BoardOptionsHotkeyScope } from '../types/BoardOptionsHotkeyScope'; +import { useBoardCardFields } from '../../hooks/useBoardCardFields'; +import { boardColumnsState } from '../../states/boardColumnsState'; +import { isCompactViewEnabledState } from '../../states/isCompactViewEnabledState'; +import { hiddenBoardCardFieldsScopedSelector } from '../../states/selectors/hiddenBoardCardFieldsScopedSelector'; +import { visibleBoardCardFieldsScopedSelector } from '../../states/selectors/visibleBoardCardFieldsScopedSelector'; +import { BoardColumnDefinition } from '../../types/BoardColumnDefinition'; +import { BoardOptionsHotkeyScope } from '../../types/BoardOptionsHotkeyScope'; export type BoardOptionsDropdownContentProps = { onStageAdd?: (boardColumn: BoardColumnDefinition) => void; diff --git a/front/src/modules/ui/layout/board/states/activeCardIdsState.ts b/front/src/modules/ui/object/record-board/states/activeCardIdsState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/activeCardIdsState.ts rename to front/src/modules/ui/object/record-board/states/activeCardIdsState.ts diff --git a/front/src/modules/ui/layout/board/states/availableBoardCardFieldsScopedState.ts b/front/src/modules/ui/object/record-board/states/availableBoardCardFieldsScopedState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/availableBoardCardFieldsScopedState.ts rename to front/src/modules/ui/object/record-board/states/availableBoardCardFieldsScopedState.ts diff --git a/front/src/modules/ui/layout/board/states/boardCardFieldsScopedState.ts b/front/src/modules/ui/object/record-board/states/boardCardFieldsScopedState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/boardCardFieldsScopedState.ts rename to front/src/modules/ui/object/record-board/states/boardCardFieldsScopedState.ts diff --git a/front/src/modules/ui/layout/board/states/boardCardIdsByColumnIdFamilyState.ts b/front/src/modules/ui/object/record-board/states/boardCardIdsByColumnIdFamilyState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/boardCardIdsByColumnIdFamilyState.ts rename to front/src/modules/ui/object/record-board/states/boardCardIdsByColumnIdFamilyState.ts diff --git a/front/src/modules/ui/layout/board/states/boardColumnsState.ts b/front/src/modules/ui/object/record-board/states/boardColumnsState.ts similarity index 60% rename from front/src/modules/ui/layout/board/states/boardColumnsState.ts rename to front/src/modules/ui/object/record-board/states/boardColumnsState.ts index 63b31e4a8..18bfef93b 100644 --- a/front/src/modules/ui/layout/board/states/boardColumnsState.ts +++ b/front/src/modules/ui/object/record-board/states/boardColumnsState.ts @@ -1,6 +1,6 @@ import { atom } from 'recoil'; -import { BoardColumnDefinition } from '@/ui/layout/board/types/BoardColumnDefinition'; +import { BoardColumnDefinition } from '@/ui/object/record-board/types/BoardColumnDefinition'; export const boardColumnsState = atom({ key: 'boardColumnsState', diff --git a/front/src/modules/ui/layout/board/states/isBoardLoadedState.ts b/front/src/modules/ui/object/record-board/states/isBoardLoadedState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/isBoardLoadedState.ts rename to front/src/modules/ui/object/record-board/states/isBoardLoadedState.ts diff --git a/front/src/modules/ui/layout/board/states/isCardInCompactViewState.ts b/front/src/modules/ui/object/record-board/states/isCardInCompactViewState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/isCardInCompactViewState.ts rename to front/src/modules/ui/object/record-board/states/isCardInCompactViewState.ts diff --git a/front/src/modules/ui/layout/board/states/isCardSelectedFamilyState.ts b/front/src/modules/ui/object/record-board/states/isCardSelectedFamilyState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/isCardSelectedFamilyState.ts rename to front/src/modules/ui/object/record-board/states/isCardSelectedFamilyState.ts diff --git a/front/src/modules/ui/layout/board/states/isCompactViewEnabledState.ts b/front/src/modules/ui/object/record-board/states/isCompactViewEnabledState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/isCompactViewEnabledState.ts rename to front/src/modules/ui/object/record-board/states/isCompactViewEnabledState.ts diff --git a/front/src/modules/ui/layout/board/states/recoil-scope-contexts/BoardColumnRecoilScopeContext.ts b/front/src/modules/ui/object/record-board/states/recoil-scope-contexts/BoardColumnRecoilScopeContext.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/recoil-scope-contexts/BoardColumnRecoilScopeContext.ts rename to front/src/modules/ui/object/record-board/states/recoil-scope-contexts/BoardColumnRecoilScopeContext.ts diff --git a/front/src/modules/ui/layout/board/states/savedBoardCardFieldsFamilyState.ts b/front/src/modules/ui/object/record-board/states/savedBoardCardFieldsFamilyState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/savedBoardCardFieldsFamilyState.ts rename to front/src/modules/ui/object/record-board/states/savedBoardCardFieldsFamilyState.ts diff --git a/front/src/modules/ui/layout/board/states/savedBoardColumnsState.ts b/front/src/modules/ui/object/record-board/states/savedBoardColumnsState.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/savedBoardColumnsState.ts rename to front/src/modules/ui/object/record-board/states/savedBoardColumnsState.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/boardCardFieldsByKeyScopedSelector.ts b/front/src/modules/ui/object/record-board/states/selectors/boardCardFieldsByKeyScopedSelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/boardCardFieldsByKeyScopedSelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/boardCardFieldsByKeyScopedSelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/boardColumnTotalsFamilySelector.ts b/front/src/modules/ui/object/record-board/states/selectors/boardColumnTotalsFamilySelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/boardColumnTotalsFamilySelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/boardColumnTotalsFamilySelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/canPersistBoardCardFieldsScopedFamilySelector.ts b/front/src/modules/ui/object/record-board/states/selectors/canPersistBoardCardFieldsScopedFamilySelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/canPersistBoardCardFieldsScopedFamilySelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/canPersistBoardCardFieldsScopedFamilySelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/canPersistBoardColumnsSelector.ts b/front/src/modules/ui/object/record-board/states/selectors/canPersistBoardColumnsSelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/canPersistBoardColumnsSelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/canPersistBoardColumnsSelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/hiddenBoardCardFieldsScopedSelector.ts b/front/src/modules/ui/object/record-board/states/selectors/hiddenBoardCardFieldsScopedSelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/hiddenBoardCardFieldsScopedSelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/hiddenBoardCardFieldsScopedSelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/savedBoardCardFieldsByKeyFamilySelector.ts b/front/src/modules/ui/object/record-board/states/selectors/savedBoardCardFieldsByKeyFamilySelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/savedBoardCardFieldsByKeyFamilySelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/savedBoardCardFieldsByKeyFamilySelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/selectedCardIdsSelector.ts b/front/src/modules/ui/object/record-board/states/selectors/selectedCardIdsSelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/selectedCardIdsSelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/selectedCardIdsSelector.ts diff --git a/front/src/modules/ui/layout/board/states/selectors/visibleBoardCardFieldsScopedSelector.ts b/front/src/modules/ui/object/record-board/states/selectors/visibleBoardCardFieldsScopedSelector.ts similarity index 100% rename from front/src/modules/ui/layout/board/states/selectors/visibleBoardCardFieldsScopedSelector.ts rename to front/src/modules/ui/object/record-board/states/selectors/visibleBoardCardFieldsScopedSelector.ts diff --git a/front/src/modules/ui/layout/board/types/BoardColumnDefinition.ts b/front/src/modules/ui/object/record-board/types/BoardColumnDefinition.ts similarity index 100% rename from front/src/modules/ui/layout/board/types/BoardColumnDefinition.ts rename to front/src/modules/ui/object/record-board/types/BoardColumnDefinition.ts diff --git a/front/src/modules/ui/layout/board/types/BoardColumnHotkeyScope.ts b/front/src/modules/ui/object/record-board/types/BoardColumnHotkeyScope.ts similarity index 100% rename from front/src/modules/ui/layout/board/types/BoardColumnHotkeyScope.ts rename to front/src/modules/ui/object/record-board/types/BoardColumnHotkeyScope.ts diff --git a/front/src/modules/ui/layout/board/types/BoardFieldDefinition.ts b/front/src/modules/ui/object/record-board/types/BoardFieldDefinition.ts similarity index 100% rename from front/src/modules/ui/layout/board/types/BoardFieldDefinition.ts rename to front/src/modules/ui/object/record-board/types/BoardFieldDefinition.ts diff --git a/front/src/modules/ui/layout/board/types/BoardOptions.ts b/front/src/modules/ui/object/record-board/types/BoardOptions.ts similarity index 100% rename from front/src/modules/ui/layout/board/types/BoardOptions.ts rename to front/src/modules/ui/object/record-board/types/BoardOptions.ts diff --git a/front/src/modules/ui/layout/board/types/BoardOptionsHotkeyScope.ts b/front/src/modules/ui/object/record-board/types/BoardOptionsHotkeyScope.ts similarity index 100% rename from front/src/modules/ui/layout/board/types/BoardOptionsHotkeyScope.ts rename to front/src/modules/ui/object/record-board/types/BoardOptionsHotkeyScope.ts diff --git a/front/src/modules/ui/layout/board/types/ColumnHotkeyScope.ts b/front/src/modules/ui/object/record-board/types/ColumnHotkeyScope.ts similarity index 100% rename from front/src/modules/ui/layout/board/types/ColumnHotkeyScope.ts rename to front/src/modules/ui/object/record-board/types/ColumnHotkeyScope.ts diff --git a/front/src/modules/views/types/ViewField.ts b/front/src/modules/views/types/ViewField.ts index 6d510c008..2ed6961eb 100644 --- a/front/src/modules/views/types/ViewField.ts +++ b/front/src/modules/views/types/ViewField.ts @@ -1,4 +1,4 @@ -import { BoardFieldDefinition } from '@/ui/layout/board/types/BoardFieldDefinition'; +import { BoardFieldDefinition } from '@/ui/object/record-board/types/BoardFieldDefinition'; import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata'; import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition'; diff --git a/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts b/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts index 59607cc45..83f7aa0fd 100644 --- a/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts +++ b/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts @@ -1,5 +1,5 @@ -import { BoardFieldDefinition } from '@/ui/layout/board/types/BoardFieldDefinition'; import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata'; +import { BoardFieldDefinition } from '@/ui/object/record-board/types/BoardFieldDefinition'; import { assertNotNull } from '~/utils/assert'; import { ViewField } from '../types/ViewField'; diff --git a/front/src/pages/opportunities/Opportunities.tsx b/front/src/pages/opportunities/Opportunities.tsx index 337b73ce0..eccc6c72d 100644 --- a/front/src/pages/opportunities/Opportunities.tsx +++ b/front/src/pages/opportunities/Opportunities.tsx @@ -7,10 +7,10 @@ import { PipelineAddButton } from '@/pipeline/components/PipelineAddButton'; import { usePipelineSteps } from '@/pipeline/hooks/usePipelineSteps'; import { PipelineStep } from '@/pipeline/types/PipelineStep'; import { IconTargetArrow } from '@/ui/display/icon'; -import { BoardOptionsContext } from '@/ui/layout/board/contexts/BoardOptionsContext'; import { PageBody } from '@/ui/layout/page/PageBody'; import { PageContainer } from '@/ui/layout/page/PageContainer'; import { PageHeader } from '@/ui/layout/page/PageHeader'; +import { BoardOptionsContext } from '@/ui/object/record-board/contexts/BoardOptionsContext'; import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope'; import { opportunitiesBoardOptions } from '~/pages/opportunities/opportunitiesBoardOptions'; diff --git a/front/src/pages/opportunities/opportunitiesBoardOptions.tsx b/front/src/pages/opportunities/opportunitiesBoardOptions.tsx index 1e1f00813..8e80d42b9 100644 --- a/front/src/pages/opportunities/opportunitiesBoardOptions.tsx +++ b/front/src/pages/opportunities/opportunitiesBoardOptions.tsx @@ -1,6 +1,6 @@ import { CompanyBoardCard } from '@/companies/components/CompanyBoardCard'; import { NewCompanyProgressButton } from '@/companies/components/NewCompanyProgressButton'; -import { BoardOptions } from '@/ui/layout/board/types/BoardOptions'; +import { BoardOptions } from '@/ui/object/record-board/types/BoardOptions'; import { opportunityBoardFilterDefinitions } from './constants/opportunityBoardFilterDefinitions'; import { opportunityBoardSortDefinitions } from './constants/opportunityBoardSortDefinitions';