From 96c41563cfd7325f4c362ccf7c27187e44b001a1 Mon Sep 17 00:00:00 2001 From: gitstart-twenty <140154534+gitstart-twenty@users.noreply.github.com> Date: Tue, 29 Aug 2023 14:40:17 +0300 Subject: [PATCH] chore: Make a twenty Eslint Rule to make sure that icons are imported from @/ui/icons (#1370) Fix the imports Co-authored-by: v1b3m Co-authored-by: Mael FOSSO --- front/.eslintrc.js | 13 ++++++++++++- .../modules/activities/notes/components/Notes.tsx | 2 +- .../activities/tasks/components/TaskGroups.tsx | 2 +- .../companies/components/AddPersonToCompany.tsx | 2 +- .../hooks/useCompanyTableContextMenuEntries.tsx | 2 +- front/src/modules/people/components/PeopleCard.tsx | 2 +- .../hooks/usePeopleTableContextMenuEntries.tsx | 2 +- .../components/MatchColumnSelect.tsx | 3 +-- .../src/modules/ui/board/components/EntityBoard.tsx | 2 +- .../ui/board/hooks/useBoardContextMenuEntries.tsx | 2 +- front/src/modules/ui/button/components/Button.tsx | 2 +- .../modules/ui/button/components/FloatingButton.tsx | 3 ++- .../ui/button/components/FloatingIconButton.tsx | 3 ++- .../src/modules/ui/button/components/IconButton.tsx | 3 ++- .../modules/ui/button/components/LightButton.tsx | 3 ++- .../ui/button/components/LightIconButton.tsx | 3 ++- .../__stories__/DateEditableField.stories.tsx | 2 +- .../__stories__/PhoneEditableField.stories.tsx | 2 +- .../components/FilterDropdownOperandButton.tsx | 2 +- .../components/SingleEntityFilterDropdownButton.tsx | 2 +- .../filter-n-sort/components/SortDropdownButton.tsx | 2 +- .../modules/ui/icon/components/IconAddressBook.tsx | 2 +- front/src/modules/ui/icon/index.ts | 5 +++++ .../components/RightDrawerTopBarExpandButton.tsx | 8 ++++---- .../ui/tab/components/__stories__/Tab.stories.tsx | 2 +- .../tab/components/__stories__/Tablist.stories.tsx | 2 +- .../table/editable-cell/components/EditableCell.tsx | 2 +- .../type/components/GenericEditableBooleanCell.tsx | 2 +- front/src/pages/tasks/tasks-filters.tsx | 3 +-- front/src/sync-hooks/PageChangeEffect.tsx | 8 +++++--- 30 files changed, 57 insertions(+), 36 deletions(-) diff --git a/front/.eslintrc.js b/front/.eslintrc.js index fae639631..cf053e15e 100644 --- a/front/.eslintrc.js +++ b/front/.eslintrc.js @@ -61,6 +61,17 @@ module.exports = { "unused-imports/no-unused-vars": [ "warn", { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" } - ] + ], + 'no-restricted-imports': [ + 'error', + { + 'patterns': [ + { + 'group': ['@tabler/icons-react'], + 'message': 'Icon imports are only allowed for `@/ui/icon`', + }, + ], + }, + ], } }; diff --git a/front/src/modules/activities/notes/components/Notes.tsx b/front/src/modules/activities/notes/components/Notes.tsx index 5d363e73b..748ad6ed0 100644 --- a/front/src/modules/activities/notes/components/Notes.tsx +++ b/front/src/modules/activities/notes/components/Notes.tsx @@ -1,12 +1,12 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; -import { IconNotes } from '@tabler/icons-react'; import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateActivityDrawer'; import { NoteList } from '@/activities/notes/components/NoteList'; import { useNotes } from '@/activities/notes/hooks/useNotes'; import { ActivityTargetableEntity } from '@/activities/types/ActivityTargetableEntity'; import { Button } from '@/ui/button/components/Button'; +import { IconNotes } from '@/ui/icon'; import { ActivityType } from '~/generated/graphql'; const StyledTaskGroupEmptyContainer = styled.div` diff --git a/front/src/modules/activities/tasks/components/TaskGroups.tsx b/front/src/modules/activities/tasks/components/TaskGroups.tsx index 5fa4c7b24..1ffbaf2f4 100644 --- a/front/src/modules/activities/tasks/components/TaskGroups.tsx +++ b/front/src/modules/activities/tasks/components/TaskGroups.tsx @@ -1,11 +1,11 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; -import { IconCheckbox } from '@tabler/icons-react'; import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateActivityDrawer'; import { useTasks } from '@/activities/tasks/hooks/useTasks'; import { ActivityTargetableEntity } from '@/activities/types/ActivityTargetableEntity'; import { Button } from '@/ui/button/components/Button'; +import { IconCheckbox } from '@/ui/icon'; import { ActivityType } from '~/generated/graphql'; import { AddTaskButton } from './AddTaskButton'; diff --git a/front/src/modules/companies/components/AddPersonToCompany.tsx b/front/src/modules/companies/components/AddPersonToCompany.tsx index fb0cd0811..632b38bf1 100644 --- a/front/src/modules/companies/components/AddPersonToCompany.tsx +++ b/front/src/modules/companies/components/AddPersonToCompany.tsx @@ -2,7 +2,6 @@ import { useState } from 'react'; import { getOperationName } from '@apollo/client/utilities'; import styled from '@emotion/styled'; import { flip, offset, useFloating } from '@floating-ui/react'; -import { IconPlus } from '@tabler/icons-react'; import { v4 } from 'uuid'; import { @@ -11,6 +10,7 @@ import { } from '@/people/components/PeoplePicker'; import { GET_PEOPLE } from '@/people/graphql/queries/getPeople'; import { LightIconButton } from '@/ui/button/components/LightIconButton'; +import { IconPlus } from '@/ui/icon'; import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope'; import { TextInput } from '@/ui/input/text/components/TextInput'; import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; diff --git a/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx b/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx index 8cb768f21..5cecff827 100644 --- a/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx +++ b/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx @@ -1,10 +1,10 @@ -import { IconCheckbox, IconNotes, IconTrash } from '@tabler/icons-react'; import { useSetRecoilState } from 'recoil'; import { useOpenCreateActivityDrawerForSelectedRowIds } from '@/activities/hooks/useOpenCreateActivityDrawerForSelectedRowIds'; import { ActivityTargetableEntityType } from '@/activities/types/ActivityTargetableEntity'; import { ContextMenuEntry } from '@/ui/context-menu/components/ContextMenuEntry'; import { contextMenuEntriesState } from '@/ui/context-menu/states/contextMenuEntriesState'; +import { IconCheckbox, IconNotes, IconTrash } from '@/ui/icon'; import { ActivityType } from '~/generated/graphql'; import { useDeleteSelectedComapnies } from './useDeleteCompanies'; diff --git a/front/src/modules/people/components/PeopleCard.tsx b/front/src/modules/people/components/PeopleCard.tsx index d376c8b58..ac053e7e8 100644 --- a/front/src/modules/people/components/PeopleCard.tsx +++ b/front/src/modules/people/components/PeopleCard.tsx @@ -4,12 +4,12 @@ import { getOperationName } from '@apollo/client/utilities'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'; -import { IconDotsVertical, IconLinkOff, IconTrash } from '@tabler/icons-react'; import { FloatingIconButton } from '@/ui/button/components/FloatingIconButton'; import { DropdownMenuSelectableItem } from '@/ui/dropdown/components/DropdownMenuSelectableItem'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; +import { IconDotsVertical, IconLinkOff, IconTrash } from '@/ui/icon'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { Avatar } from '@/users/components/Avatar'; import { diff --git a/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx b/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx index 7c02682ee..8862d552f 100644 --- a/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx +++ b/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx @@ -1,11 +1,11 @@ import { getOperationName } from '@apollo/client/utilities'; -import { IconCheckbox, IconNotes, IconTrash } from '@tabler/icons-react'; import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'; import { useOpenCreateActivityDrawerForSelectedRowIds } from '@/activities/hooks/useOpenCreateActivityDrawerForSelectedRowIds'; import { ActivityTargetableEntityType } from '@/activities/types/ActivityTargetableEntity'; import { ContextMenuEntry } from '@/ui/context-menu/components/ContextMenuEntry'; import { contextMenuEntriesState } from '@/ui/context-menu/states/contextMenuEntriesState'; +import { IconCheckbox, IconNotes, IconTrash } from '@/ui/icon'; import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection'; import { selectedRowIdsSelector } from '@/ui/table/states/selectors/selectedRowIdsSelector'; import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState'; diff --git a/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx b/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx index 4f2245dfc..48a16a58f 100644 --- a/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx +++ b/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx @@ -9,7 +9,6 @@ import { size, useFloating, } from '@floating-ui/react'; -import { TablerIconsProps } from '@tabler/icons-react'; import debounce from 'lodash.debounce'; import { ReadonlyDeep } from 'type-fest'; @@ -20,7 +19,7 @@ import { DropdownMenuSelectableItem } from '@/ui/dropdown/components/DropdownMen import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; -import { IconChevronDown } from '@/ui/icon'; +import { IconChevronDown, TablerIconsProps } from '@/ui/icon'; import { AppTooltip } from '@/ui/tooltip/AppTooltip'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useUpdateEffect } from '~/hooks/useUpdateEffect'; diff --git a/front/src/modules/ui/board/components/EntityBoard.tsx b/front/src/modules/ui/board/components/EntityBoard.tsx index 28e7dac63..57c95553c 100644 --- a/front/src/modules/ui/board/components/EntityBoard.tsx +++ b/front/src/modules/ui/board/components/EntityBoard.tsx @@ -3,7 +3,6 @@ import { getOperationName } from '@apollo/client/utilities'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { DragDropContext, OnDragEndResponder } from '@hello-pangea/dnd'; // Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd https://github.com/atlassian/react-beautiful-dnd/issues/2350 -import { IconList } from '@tabler/icons-react'; import { useRecoilState } from 'recoil'; import { CompanyBoardRecoilScopeContext } from '@/companies/states/recoil-scope-contexts/CompanyBoardRecoilScopeContext'; @@ -12,6 +11,7 @@ import { BoardHeader } from '@/ui/board/components/BoardHeader'; import { StyledBoard } from '@/ui/board/components/StyledBoard'; import { BoardColumnIdContext } from '@/ui/board/contexts/BoardColumnIdContext'; import { SelectedSortType } from '@/ui/filter-n-sort/types/interface'; +import { IconList } from '@/ui/icon'; import { DragSelect } from '@/ui/utilities/drag-select/components/DragSelect'; import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope'; import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; diff --git a/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx b/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx index 95aad392b..be0178f8e 100644 --- a/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx +++ b/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx @@ -1,8 +1,8 @@ -import { IconTrash } from '@tabler/icons-react'; import { useSetRecoilState } from 'recoil'; import { ContextMenuEntry } from '@/ui/context-menu/components/ContextMenuEntry'; import { contextMenuEntriesState } from '@/ui/context-menu/states/contextMenuEntriesState'; +import { IconTrash } from '@/ui/icon'; import { useDeleteSelectedBoardCards } from './useDeleteSelectedBoardCards'; diff --git a/front/src/modules/ui/button/components/Button.tsx b/front/src/modules/ui/button/components/Button.tsx index 300fa586f..622750275 100644 --- a/front/src/modules/ui/button/components/Button.tsx +++ b/front/src/modules/ui/button/components/Button.tsx @@ -1,7 +1,7 @@ import React, { useMemo } from 'react'; import styled from '@emotion/styled'; -import { TablerIconsProps } from '@tabler/icons-react'; +import { TablerIconsProps } from '@/ui/icon'; import { SoonPill } from '@/ui/pill/components/SoonPill'; export type ButtonSize = 'medium' | 'small'; diff --git a/front/src/modules/ui/button/components/FloatingButton.tsx b/front/src/modules/ui/button/components/FloatingButton.tsx index cadfde716..0d0c3a456 100644 --- a/front/src/modules/ui/button/components/FloatingButton.tsx +++ b/front/src/modules/ui/button/components/FloatingButton.tsx @@ -1,6 +1,7 @@ import React, { useMemo } from 'react'; import styled from '@emotion/styled'; -import { TablerIconsProps } from '@tabler/icons-react'; + +import { TablerIconsProps } from '@/ui/icon'; export type FloatingButtonSize = 'small' | 'medium'; export type FloatingButtonPosition = 'standalone' | 'left' | 'middle' | 'right'; diff --git a/front/src/modules/ui/button/components/FloatingIconButton.tsx b/front/src/modules/ui/button/components/FloatingIconButton.tsx index dec856cad..e2565a2d4 100644 --- a/front/src/modules/ui/button/components/FloatingIconButton.tsx +++ b/front/src/modules/ui/button/components/FloatingIconButton.tsx @@ -1,6 +1,7 @@ import React, { useMemo } from 'react'; import styled from '@emotion/styled'; -import { TablerIconsProps } from '@tabler/icons-react'; + +import { TablerIconsProps } from '@/ui/icon'; export type FloatingIconButtonSize = 'small' | 'medium'; export type FloatingIconButtonPosition = diff --git a/front/src/modules/ui/button/components/IconButton.tsx b/front/src/modules/ui/button/components/IconButton.tsx index 402d53815..8ad091fc1 100644 --- a/front/src/modules/ui/button/components/IconButton.tsx +++ b/front/src/modules/ui/button/components/IconButton.tsx @@ -1,6 +1,7 @@ import React, { useMemo } from 'react'; import styled from '@emotion/styled'; -import { TablerIconsProps } from '@tabler/icons-react'; + +import { TablerIconsProps } from '@/ui/icon'; export type IconButtonSize = 'medium' | 'small'; export type IconButtonPosition = 'standalone' | 'left' | 'middle' | 'right'; diff --git a/front/src/modules/ui/button/components/LightButton.tsx b/front/src/modules/ui/button/components/LightButton.tsx index a7a4019b4..2ae8e6e5e 100644 --- a/front/src/modules/ui/button/components/LightButton.tsx +++ b/front/src/modules/ui/button/components/LightButton.tsx @@ -1,6 +1,7 @@ import React, { MouseEvent, useMemo } from 'react'; import styled from '@emotion/styled'; -import { TablerIconsProps } from '@tabler/icons-react'; + +import { TablerIconsProps } from '@/ui/icon'; export type LightButtonAccent = 'secondary' | 'tertiary'; diff --git a/front/src/modules/ui/button/components/LightIconButton.tsx b/front/src/modules/ui/button/components/LightIconButton.tsx index d86166938..ac277b8bb 100644 --- a/front/src/modules/ui/button/components/LightIconButton.tsx +++ b/front/src/modules/ui/button/components/LightIconButton.tsx @@ -1,6 +1,7 @@ import React, { MouseEvent, useMemo } from 'react'; import styled from '@emotion/styled'; -import { TablerIconsProps } from '@tabler/icons-react'; + +import { TablerIconsProps } from '@/ui/icon'; export type LightIconButtonAccent = 'secondary' | 'tertiary'; export type LightIconButtonSize = 'small' | 'medium'; diff --git a/front/src/modules/ui/editable-field/variants/components/__stories__/DateEditableField.stories.tsx b/front/src/modules/ui/editable-field/variants/components/__stories__/DateEditableField.stories.tsx index a78b6d7b7..1920cf1a3 100644 --- a/front/src/modules/ui/editable-field/variants/components/__stories__/DateEditableField.stories.tsx +++ b/front/src/modules/ui/editable-field/variants/components/__stories__/DateEditableField.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from '@storybook/react'; -import { IconCalendar } from '@tabler/icons-react'; +import { IconCalendar } from '@/ui/icon'; import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator'; import { DateEditableField } from '../DateEditableField'; diff --git a/front/src/modules/ui/editable-field/variants/components/__stories__/PhoneEditableField.stories.tsx b/front/src/modules/ui/editable-field/variants/components/__stories__/PhoneEditableField.stories.tsx index 789e5859d..1ee3f34bd 100644 --- a/front/src/modules/ui/editable-field/variants/components/__stories__/PhoneEditableField.stories.tsx +++ b/front/src/modules/ui/editable-field/variants/components/__stories__/PhoneEditableField.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from '@storybook/react'; -import { IconPhone } from '@tabler/icons-react'; +import { IconPhone } from '@/ui/icon'; import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator'; import { PhoneEditableField } from '../PhoneEditableField'; diff --git a/front/src/modules/ui/filter-n-sort/components/FilterDropdownOperandButton.tsx b/front/src/modules/ui/filter-n-sort/components/FilterDropdownOperandButton.tsx index d75d151f6..c0f0f1134 100644 --- a/front/src/modules/ui/filter-n-sort/components/FilterDropdownOperandButton.tsx +++ b/front/src/modules/ui/filter-n-sort/components/FilterDropdownOperandButton.tsx @@ -1,8 +1,8 @@ import { Context } from 'react'; import { useTheme } from '@emotion/react'; -import { IconChevronDown } from '@tabler/icons-react'; import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader'; +import { IconChevronDown } from '@/ui/icon'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; import { isFilterDropdownOperandSelectUnfoldedScopedState } from '../states/isFilterDropdownOperandSelectUnfoldedScopedState'; diff --git a/front/src/modules/ui/filter-n-sort/components/SingleEntityFilterDropdownButton.tsx b/front/src/modules/ui/filter-n-sort/components/SingleEntityFilterDropdownButton.tsx index a7f35d22b..597857801 100644 --- a/front/src/modules/ui/filter-n-sort/components/SingleEntityFilterDropdownButton.tsx +++ b/front/src/modules/ui/filter-n-sort/components/SingleEntityFilterDropdownButton.tsx @@ -2,11 +2,11 @@ import { Context, useState } from 'react'; import React from 'react'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; -import { IconChevronDown } from '@tabler/icons-react'; import { filterDefinitionUsedInDropdownScopedState } from '@/ui/filter-n-sort/states/filterDefinitionUsedInDropdownScopedState'; import { filterDropdownSearchInputScopedState } from '@/ui/filter-n-sort/states/filterDropdownSearchInputScopedState'; import { selectedOperandInDropdownScopedState } from '@/ui/filter-n-sort/states/selectedOperandInDropdownScopedState'; +import { IconChevronDown } from '@/ui/icon'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; diff --git a/front/src/modules/ui/filter-n-sort/components/SortDropdownButton.tsx b/front/src/modules/ui/filter-n-sort/components/SortDropdownButton.tsx index f7580bd9b..d8b3855de 100644 --- a/front/src/modules/ui/filter-n-sort/components/SortDropdownButton.tsx +++ b/front/src/modules/ui/filter-n-sort/components/SortDropdownButton.tsx @@ -1,11 +1,11 @@ import { Context, useCallback, useState } from 'react'; import { useTheme } from '@emotion/react'; -import { IconChevronDown } from '@tabler/icons-react'; import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader'; import { DropdownMenuSelectableItem } from '@/ui/dropdown/components/DropdownMenuSelectableItem'; import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; +import { IconChevronDown } from '@/ui/icon'; import { OverflowingTextWithTooltip } from '@/ui/tooltip/OverflowingTextWithTooltip'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; diff --git a/front/src/modules/ui/icon/components/IconAddressBook.tsx b/front/src/modules/ui/icon/components/IconAddressBook.tsx index 6586dbfe8..b9ddebfd1 100644 --- a/front/src/modules/ui/icon/components/IconAddressBook.tsx +++ b/front/src/modules/ui/icon/components/IconAddressBook.tsx @@ -1,4 +1,4 @@ -import { TablerIconsProps } from '@tabler/icons-react'; +import { TablerIconsProps } from '@/ui/icon'; import { ReactComponent as IconAddressBookRaw } from '../assets/address-book.svg'; diff --git a/front/src/modules/ui/icon/index.ts b/front/src/modules/ui/icon/index.ts index fe324d8a9..5ad890a94 100644 --- a/front/src/modules/ui/icon/index.ts +++ b/front/src/modules/ui/icon/index.ts @@ -1,3 +1,5 @@ +/* eslint-disable no-restricted-imports */ +export type { TablerIconsProps } from '@tabler/icons-react'; export { IconAlertCircle, IconAlertTriangle, @@ -29,6 +31,7 @@ export { IconCopy, IconCross, IconCurrencyDollar, + IconDotsVertical, IconEye, IconEyeOff, IconFileImport, @@ -39,7 +42,9 @@ export { IconInbox, IconLayoutSidebarLeftCollapse, IconLayoutSidebarRightCollapse, + IconLayoutSidebarRightExpand, IconLink, + IconLinkOff, IconList, IconLogout, IconMail, diff --git a/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx b/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx index 184f4e27d..52de52bd8 100644 --- a/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx +++ b/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx @@ -1,10 +1,10 @@ -import { - IconLayoutSidebarRightCollapse, - IconLayoutSidebarRightExpand, -} from '@tabler/icons-react'; import { useRecoilState } from 'recoil'; import { LightIconButton } from '@/ui/button/components/LightIconButton'; +import { + IconLayoutSidebarRightCollapse, + IconLayoutSidebarRightExpand, +} from '@/ui/icon'; import { isRightDrawerExpandedState } from '../states/isRightDrawerExpandedState'; diff --git a/front/src/modules/ui/tab/components/__stories__/Tab.stories.tsx b/front/src/modules/ui/tab/components/__stories__/Tab.stories.tsx index 5ed38f72e..b4cc59212 100644 --- a/front/src/modules/ui/tab/components/__stories__/Tab.stories.tsx +++ b/front/src/modules/ui/tab/components/__stories__/Tab.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from '@storybook/react'; -import { IconCheckbox } from '@tabler/icons-react'; +import { IconCheckbox } from '@/ui/icon'; import { CatalogDecorator } from '~/testing/decorators/CatalogDecorator'; import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator'; diff --git a/front/src/modules/ui/tab/components/__stories__/Tablist.stories.tsx b/front/src/modules/ui/tab/components/__stories__/Tablist.stories.tsx index cfd8b25b2..0ef6a3431 100644 --- a/front/src/modules/ui/tab/components/__stories__/Tablist.stories.tsx +++ b/front/src/modules/ui/tab/components/__stories__/Tablist.stories.tsx @@ -1,8 +1,8 @@ import { expect } from '@storybook/jest'; import type { Meta, StoryObj } from '@storybook/react'; import { within } from '@storybook/testing-library'; -import { IconCheckbox } from '@tabler/icons-react'; +import { IconCheckbox } from '@/ui/icon'; import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope'; import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator'; diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx index fa8063e10..bff8bbc94 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx @@ -1,9 +1,9 @@ import { ReactElement, useState } from 'react'; import styled from '@emotion/styled'; -import { IconPencil } from '@tabler/icons-react'; import { motion } from 'framer-motion'; import { FloatingIconButton } from '@/ui/button/components/FloatingIconButton'; +import { IconPencil } from '@/ui/icon'; import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; import { CellHotkeyScopeContext } from '../../contexts/CellHotkeyScopeContext'; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableBooleanCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableBooleanCell.tsx index 6dad7de57..e31401e25 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableBooleanCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableBooleanCell.tsx @@ -1,8 +1,8 @@ import styled from '@emotion/styled'; -import { IconCheck, IconX } from '@tabler/icons-react'; import { useRecoilState } from 'recoil'; import type { ViewFieldBooleanMetadata } from '@/ui/editable-field/types/ViewField'; +import { IconCheck, IconX } from '@/ui/icon'; import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId'; import { useUpdateEntityField } from '@/ui/table/hooks/useUpdateEntityField'; import { tableEntityFieldFamilySelector } from '@/ui/table/states/selectors/tableEntityFieldFamilySelector'; diff --git a/front/src/pages/tasks/tasks-filters.tsx b/front/src/pages/tasks/tasks-filters.tsx index abb55d57e..5f17c16f5 100644 --- a/front/src/pages/tasks/tasks-filters.tsx +++ b/front/src/pages/tasks/tasks-filters.tsx @@ -1,7 +1,6 @@ -import { IconUser } from '@tabler/icons-react'; - import { TasksRecoilScopeContext } from '@/activities/states/recoil-scope-contexts/TasksRecoilScopeContext'; import { FilterDefinitionByEntity } from '@/ui/filter-n-sort/types/FilterDefinitionByEntity'; +import { IconUser } from '@/ui/icon'; import { FilterDropdownUserSearchSelect } from '@/users/components/FilterDropdownUserSearchSelect'; import { Activity } from '~/generated/graphql'; diff --git a/front/src/sync-hooks/PageChangeEffect.tsx b/front/src/sync-hooks/PageChangeEffect.tsx index 71fe89815..f131bbb3c 100644 --- a/front/src/sync-hooks/PageChangeEffect.tsx +++ b/front/src/sync-hooks/PageChangeEffect.tsx @@ -1,6 +1,5 @@ import { useEffect, useState } from 'react'; import { matchPath, useLocation, useNavigate } from 'react-router-dom'; -import { IconCheckbox, IconNotes } from '@tabler/icons-react'; import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateActivityDrawer'; import { ActivityTargetableEntityType } from '@/activities/types/ActivityTargetableEntity'; @@ -13,11 +12,14 @@ import { AppBasePath } from '@/types/AppBasePath'; import { AppPath } from '@/types/AppPath'; import { PageHotkeyScope } from '@/types/PageHotkeyScope'; import { SettingsPath } from '@/types/SettingsPath'; +import { IconCheckbox, IconNotes } from '@/ui/icon'; import { useSnackBar } from '@/ui/snack-bar/hooks/useSnackBar'; import { TableHotkeyScope } from '@/ui/table/types/TableHotkeyScope'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; -import { useGetWorkspaceFromInviteHashLazyQuery } from '~/generated/graphql'; -import { ActivityType } from '~/generated/graphql'; +import { + ActivityType, + useGetWorkspaceFromInviteHashLazyQuery, +} from '~/generated/graphql'; import { useIsMatchingLocation } from '../hooks/useIsMatchingLocation';