diff --git a/.vscode/settings.json b/.vscode/settings.json index b7235d7533..efca65e087 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,6 +26,7 @@ "cSpell.enableFiletypes": [ "!javascript", "!json", + "!typescript", "!typescriptreact", "md", "mdx" diff --git a/front/package-lock.json b/front/package-lock.json index 5efc23e7db..e7a0438d0f 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -28,7 +28,6 @@ "react-datepicker": "^4.11.0", "react-dom": "^18.2.0", "react-hotkeys-hook": "^4.4.0", - "react-icons": "^4.8.0", "react-router-dom": "^6.4.4", "react-textarea-autosize": "^8.4.1", "react-tooltip": "^5.13.1", @@ -32859,14 +32858,6 @@ "react-dom": ">=16.8.1" } }, - "node_modules/react-icons": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.9.0.tgz", - "integrity": "sha512-ijUnFr//ycebOqujtqtV9PFS7JjhWg0QU6ykURVHuL4cbofvRCf3f6GMn9+fBktEFQOIVZnuAYLZdiyadRQRFg==", - "peerDependencies": { - "react": "*" - } - }, "node_modules/react-inspector": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.1.tgz", diff --git a/front/package.json b/front/package.json index e1a7a644b3..031bb07f4d 100644 --- a/front/package.json +++ b/front/package.json @@ -23,7 +23,6 @@ "react-datepicker": "^4.11.0", "react-dom": "^18.2.0", "react-hotkeys-hook": "^4.4.0", - "react-icons": "^4.8.0", "react-router-dom": "^6.4.4", "react-textarea-autosize": "^8.4.1", "react-tooltip": "^5.13.1", diff --git a/front/src/AppNavbar.tsx b/front/src/AppNavbar.tsx index 5981474626..e04f273529 100644 --- a/front/src/AppNavbar.tsx +++ b/front/src/AppNavbar.tsx @@ -1,12 +1,12 @@ -import { - TbBuilding, - TbInbox, - TbSearch, - TbSettings, - TbUser, -} from 'react-icons/tb'; import { useMatch, useResolvedPath } from 'react-router-dom'; +import { + IconBuilding, + IconInbox, + IconSearch, + IconSettings, + IconUser, +} from '@/ui/icons/index'; import NavItemsContainer from '@/ui/layout/navbar/NavItemsContainer'; import NavItem from './modules/ui/layout/navbar/NavItem'; @@ -21,25 +21,25 @@ export function AppNavbar() { } + icon={} soon={true} /> } + icon={} soon={true} /> } + icon={} /> } + icon={} active={ !!useMatch({ path: useResolvedPath('/people').pathname, @@ -50,7 +50,7 @@ export function AppNavbar() { } + icon={} active={ !!useMatch({ path: useResolvedPath('/companies').pathname, diff --git a/front/src/modules/settings/components/SettingsNavbar.tsx b/front/src/modules/settings/components/SettingsNavbar.tsx index 1c95b009b9..c8177b34a8 100644 --- a/front/src/modules/settings/components/SettingsNavbar.tsx +++ b/front/src/modules/settings/components/SettingsNavbar.tsx @@ -1,7 +1,12 @@ -import { TbColorSwatch, TbLogout, TbSettings, TbUser } from 'react-icons/tb'; import { useMatch, useResolvedPath } from 'react-router-dom'; import { removeTokens } from '@/auth/services/AuthService'; +import { + IconColorSwatch, + IconLogout, + IconSettings, + IconUser, +} from '@/ui/icons/index'; import NavBackButton from '@/ui/layout/navbar//NavBackButton'; import NavItem from '@/ui/layout/navbar/NavItem'; import NavItemsContainer from '@/ui/layout/navbar/NavItemsContainer'; @@ -16,7 +21,7 @@ export function SettingsNavbar() { } + icon={} active={ !!useMatch({ path: useResolvedPath('/people').pathname, @@ -27,7 +32,7 @@ export function SettingsNavbar() { } + icon={} soon={true} active={ !!useMatch({ @@ -40,7 +45,7 @@ export function SettingsNavbar() { } + icon={} soon={true} active={ !!useMatch({ @@ -53,7 +58,7 @@ export function SettingsNavbar() { } + icon={} danger={true} /> diff --git a/front/src/modules/ui/components/board/BoardNewButton.tsx b/front/src/modules/ui/components/board/BoardNewButton.tsx index 6454326115..ce5f042e28 100644 --- a/front/src/modules/ui/components/board/BoardNewButton.tsx +++ b/front/src/modules/ui/components/board/BoardNewButton.tsx @@ -1,5 +1,6 @@ import styled from '@emotion/styled'; -import { IconPlus } from '@tabler/icons-react'; + +import { IconPlus } from '@/ui/icons/index'; const StyledButton = styled.button` display: flex; diff --git a/front/src/modules/ui/components/editable-cell/types/EditableRelation.tsx b/front/src/modules/ui/components/editable-cell/types/EditableRelation.tsx index 9254d014ec..ac2b5026a3 100644 --- a/front/src/modules/ui/components/editable-cell/types/EditableRelation.tsx +++ b/front/src/modules/ui/components/editable-cell/types/EditableRelation.tsx @@ -1,11 +1,11 @@ import { ChangeEvent, ComponentType, useEffect, useState } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; -import { FaPlus } from 'react-icons/fa'; import styled from '@emotion/styled'; import { useRecoilState } from 'recoil'; import { SearchConfigType } from '@/search/interfaces/interface'; import { useSearch } from '@/search/services/search'; +import { IconPlus } from '@/ui/icons/index'; import { textInputStyle } from '@/ui/layout/styles/themes'; import { isSomeInputInEditModeState } from '@/ui/tables/states/isSomeInputInEditModeState'; import { AnyEntity } from '@/utils/interfaces/generic.interface'; @@ -252,7 +252,7 @@ export function EditableRelation< onClick={handleCreateNewRelationButtonClick} > - + Create new diff --git a/front/src/modules/ui/components/inputs/AutosizeTextInput.tsx b/front/src/modules/ui/components/inputs/AutosizeTextInput.tsx index 50bd9799b6..f53065cd48 100644 --- a/front/src/modules/ui/components/inputs/AutosizeTextInput.tsx +++ b/front/src/modules/ui/components/inputs/AutosizeTextInput.tsx @@ -1,11 +1,11 @@ import { useState } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { HotkeysEvent } from 'react-hotkeys-hook/dist/types'; -import { HiArrowSmRight } from 'react-icons/hi'; import TextareaAutosize from 'react-textarea-autosize'; import styled from '@emotion/styled'; import { IconButton } from '@/ui/components/buttons/IconButton'; +import { IconArrowRight } from '@/ui/icons/index'; const MAX_ROWS = 5; @@ -132,7 +132,7 @@ export function AutosizeTextInput({ } + icon={} disabled={isSendButtonDisabled} /> diff --git a/front/src/modules/ui/components/menu/DropdownMenuSelectableItem.tsx b/front/src/modules/ui/components/menu/DropdownMenuSelectableItem.tsx index a4d83ba6f6..61543b8a2c 100644 --- a/front/src/modules/ui/components/menu/DropdownMenuSelectableItem.tsx +++ b/front/src/modules/ui/components/menu/DropdownMenuSelectableItem.tsx @@ -1,7 +1,7 @@ import React from 'react'; import styled from '@emotion/styled'; -import { IconCheck } from '@tabler/icons-react'; +import { IconCheck } from '@/ui/icons/index'; import { hoverBackground } from '@/ui/layout/styles/themes'; import { DropdownMenuButton } from './DropdownMenuButton'; diff --git a/front/src/modules/ui/components/menu/stories/DropdownMenu.stories.tsx b/front/src/modules/ui/components/menu/stories/DropdownMenu.stories.tsx index e26d9bb0a9..581ab992c4 100644 --- a/front/src/modules/ui/components/menu/stories/DropdownMenu.stories.tsx +++ b/front/src/modules/ui/components/menu/stories/DropdownMenu.stories.tsx @@ -1,8 +1,8 @@ import React, { useState } from 'react'; import styled from '@emotion/styled'; import type { Meta, StoryObj } from '@storybook/react'; -import { IconPlus } from '@tabler/icons-react'; +import { IconPlus } from '@/ui/icons/index'; import { Avatar } from '@/users/components/Avatar'; import { getRenderWrapperForComponent } from '~/testing/renderWrappers'; diff --git a/front/src/modules/ui/components/table/action-bar/TableActionBarButtonOpenComments.tsx b/front/src/modules/ui/components/table/action-bar/TableActionBarButtonOpenComments.tsx index 6337c87e66..08749e0e85 100644 --- a/front/src/modules/ui/components/table/action-bar/TableActionBarButtonOpenComments.tsx +++ b/front/src/modules/ui/components/table/action-bar/TableActionBarButtonOpenComments.tsx @@ -1,4 +1,4 @@ -import { FaRegComment } from 'react-icons/fa'; +import { IconComment } from '@/ui/icons/index'; import { EntityTableActionBarButton } from './EntityTableActionBarButton'; @@ -10,7 +10,7 @@ export function TableActionBarButtonToggleComments({ onClick }: OwnProps) { return ( } + icon={} onClick={onClick} /> ); diff --git a/front/src/modules/ui/components/table/table-header/DropdownButton.tsx b/front/src/modules/ui/components/table/table-header/DropdownButton.tsx index 718ff5265d..3ccbfe1df8 100644 --- a/front/src/modules/ui/components/table/table-header/DropdownButton.tsx +++ b/front/src/modules/ui/components/table/table-header/DropdownButton.tsx @@ -1,7 +1,8 @@ import { ReactNode, useRef } from 'react'; -import { FaAngleDown } from 'react-icons/fa'; import styled from '@emotion/styled'; +import { IconChevronDown } from '@/ui/icons/index'; + import { useOutsideAlerter } from '../../../hooks/useOutsideAlerter'; import { overlayBackground, @@ -196,7 +197,7 @@ const StyleAngleDownContainer = styled.div` function DropdownTopOptionAngleDown() { return ( - + ); } diff --git a/front/src/modules/ui/components/table/table-header/SortAndFilterBar.tsx b/front/src/modules/ui/components/table/table-header/SortAndFilterBar.tsx index b216c15fb8..7cc9025919 100644 --- a/front/src/modules/ui/components/table/table-header/SortAndFilterBar.tsx +++ b/front/src/modules/ui/components/table/table-header/SortAndFilterBar.tsx @@ -1,4 +1,3 @@ -import { FaArrowDown, FaArrowUp } from 'react-icons/fa'; import styled from '@emotion/styled'; import { @@ -6,6 +5,7 @@ import { SelectedFilterType, } from '@/filters-and-sorts/interfaces/filters/interface'; import { SelectedSortType } from '@/filters-and-sorts/interfaces/sorts/interface'; +import { IconArrowNarrowDown, IconArrowNarrowUp } from '@/ui/icons/index'; import SortOrFilterChip from './SortOrFilterChip'; @@ -74,7 +74,13 @@ function SortAndFilterBar({ key={sort.key} labelValue={sort.label} id={sort.key} - icon={sort.order === 'desc' ? : } + icon={ + sort.order === 'desc' ? ( + + ) : ( + + ) + } onRemove={() => onRemoveSort(sort.key)} /> ); diff --git a/front/src/modules/ui/components/table/table-header/SortOrFilterChip.tsx b/front/src/modules/ui/components/table/table-header/SortOrFilterChip.tsx index f69924beb5..be16b97d77 100644 --- a/front/src/modules/ui/components/table/table-header/SortOrFilterChip.tsx +++ b/front/src/modules/ui/components/table/table-header/SortOrFilterChip.tsx @@ -1,7 +1,8 @@ import { ReactNode } from 'react'; -import { TbX } from 'react-icons/tb'; import styled from '@emotion/styled'; +import { IconX } from '@/ui/icons/index'; + type OwnProps = { id: string; labelKey?: string; @@ -55,7 +56,7 @@ function SortOrFilterChip({ {labelKey && {labelKey}: } {labelValue} - + ); diff --git a/front/src/modules/ui/components/table/table-header/__stories__/TableHeader.stories.tsx b/front/src/modules/ui/components/table/table-header/__stories__/TableHeader.stories.tsx index 500066d8a3..179cc61027 100644 --- a/front/src/modules/ui/components/table/table-header/__stories__/TableHeader.stories.tsx +++ b/front/src/modules/ui/components/table/table-header/__stories__/TableHeader.stories.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import { FaList } from 'react-icons/fa'; import { ApolloProvider } from '@apollo/client'; import type { Meta, StoryObj } from '@storybook/react'; import { userEvent, within } from '@storybook/testing-library'; +import { IconList } from '@/ui/icons/index'; import { FullHeightStorybookLayout } from '~/testing/FullHeightStorybookLayout'; import { mockedClient } from '~/testing/mockedClient'; @@ -25,7 +25,7 @@ export const Empty: Story = { } + viewIcon={} availableSorts={availableSorts} availableFilters={availableFilters} /> @@ -40,7 +40,7 @@ export const WithSortsAndFilters: Story = { } + viewIcon={} availableSorts={availableSorts} availableFilters={availableFilters} /> diff --git a/front/src/modules/ui/icons/components/IconComment.tsx b/front/src/modules/ui/icons/components/IconComment.tsx deleted file mode 100644 index ab6a866f1f..0000000000 --- a/front/src/modules/ui/icons/components/IconComment.tsx +++ /dev/null @@ -1 +0,0 @@ -export { IconMessageCircle as IconComment } from '@tabler/icons-react'; diff --git a/front/src/modules/ui/icons/components/IconSidebarLeftCollapse.tsx b/front/src/modules/ui/icons/components/IconSidebarLeftCollapse.tsx deleted file mode 100644 index c18df9f991..0000000000 --- a/front/src/modules/ui/icons/components/IconSidebarLeftCollapse.tsx +++ /dev/null @@ -1 +0,0 @@ -export { TbLayoutSidebarLeftCollapse as IconSidebarLeftCollapse } from 'react-icons/tb'; diff --git a/front/src/modules/ui/icons/components/IconSidebarRightCollapse.tsx b/front/src/modules/ui/icons/components/IconSidebarRightCollapse.tsx deleted file mode 100644 index 832485a7ec..0000000000 --- a/front/src/modules/ui/icons/components/IconSidebarRightCollapse.tsx +++ /dev/null @@ -1 +0,0 @@ -export { TbLayoutSidebarRightCollapse as IconSidebarRightCollapse } from 'react-icons/tb'; diff --git a/front/src/modules/ui/icons/index.ts b/front/src/modules/ui/icons/index.ts index 07d7cb2e49..4afa2a893d 100644 --- a/front/src/modules/ui/icons/index.ts +++ b/front/src/modules/ui/icons/index.ts @@ -1,6 +1,28 @@ export { IconAddressBook } from './components/IconAddressBook'; -export { IconComment } from './components/IconComment'; -export { IconSidebarLeftCollapse } from './components/IconSidebarLeftCollapse'; -export { IconSidebarRightCollapse } from './components/IconSidebarRightCollapse'; -export { IconAward } from '@tabler/icons-react'; +export { IconBuilding } from '@tabler/icons-react'; +export { IconMessageCircle as IconComment } from '@tabler/icons-react'; export { IconCheck } from '@tabler/icons-react'; +export { IconTrash } from '@tabler/icons-react'; +export { IconLayoutSidebarRightCollapse } from '@tabler/icons-react'; +export { IconLayoutSidebarLeftCollapse } from '@tabler/icons-react'; +export { IconUser } from '@tabler/icons-react'; +export { IconList } from '@tabler/icons-react'; +export { IconInbox } from '@tabler/icons-react'; +export { IconSearch } from '@tabler/icons-react'; +export { IconSettings } from '@tabler/icons-react'; +export { IconLogout } from '@tabler/icons-react'; +export { IconColorSwatch } from '@tabler/icons-react'; +export { IconX } from '@tabler/icons-react'; +export { IconChevronLeft } from '@tabler/icons-react'; +export { IconPlus } from '@tabler/icons-react'; +export { IconLink } from '@tabler/icons-react'; +export { IconSum } from '@tabler/icons-react'; +export { IconCalendar } from '@tabler/icons-react'; +export { IconMapPin } from '@tabler/icons-react'; +export { IconMail } from '@tabler/icons-react'; +export { IconPhone } from '@tabler/icons-react'; +export { IconTarget } from '@tabler/icons-react'; +export { IconChevronDown } from '@tabler/icons-react'; +export { IconArrowNarrowDown } from '@tabler/icons-react'; +export { IconArrowNarrowUp } from '@tabler/icons-react'; +export { IconArrowRight } from '@tabler/icons-react'; diff --git a/front/src/modules/ui/layout/navbar/NavBackButton.tsx b/front/src/modules/ui/layout/navbar/NavBackButton.tsx index 91a32191e5..0d8214836e 100644 --- a/front/src/modules/ui/layout/navbar/NavBackButton.tsx +++ b/front/src/modules/ui/layout/navbar/NavBackButton.tsx @@ -1,7 +1,8 @@ -import { TbChevronLeft } from 'react-icons/tb'; import { useNavigate } from 'react-router-dom'; import styled from '@emotion/styled'; +import { IconChevronLeft } from '@/ui/icons/index'; + import NavCollapseButton from './NavCollapseButton'; type OwnProps = { @@ -38,7 +39,7 @@ export default function NavBackButton({ title }: OwnProps) { navigate('/', { replace: true })} > - + {title} diff --git a/front/src/modules/ui/layout/navbar/NavCollapseButton.tsx b/front/src/modules/ui/layout/navbar/NavCollapseButton.tsx index 30a84ead42..3db90d7118 100644 --- a/front/src/modules/ui/layout/navbar/NavCollapseButton.tsx +++ b/front/src/modules/ui/layout/navbar/NavCollapseButton.tsx @@ -1,7 +1,10 @@ import styled from '@emotion/styled'; import { useRecoilState } from 'recoil'; -import { IconSidebarLeftCollapse, IconSidebarRightCollapse } from '@/ui/icons'; +import { + IconLayoutSidebarLeftCollapse, + IconLayoutSidebarRightCollapse, +} from '@/ui/icons'; import { isNavbarOpenedState } from '../states/isNavbarOpenedState'; import { MOBILE_VIEWPORT } from '../styles/themes'; @@ -50,7 +53,7 @@ export default function NavCollapseButton({ onClick={() => setIsNavOpen(!isNavOpen)} hideOnDesktop={hideOnDesktop} > - + )} {!isNavOpen && ( @@ -58,7 +61,7 @@ export default function NavCollapseButton({ onClick={() => setIsNavOpen(!isNavOpen)} hideOnDesktop={hideOnDesktop} > - + )} diff --git a/front/src/modules/ui/layout/right-drawer/components/RightDrawerTopBarCloseButton.tsx b/front/src/modules/ui/layout/right-drawer/components/RightDrawerTopBarCloseButton.tsx index 8d680bc1d6..1f1cc93565 100644 --- a/front/src/modules/ui/layout/right-drawer/components/RightDrawerTopBarCloseButton.tsx +++ b/front/src/modules/ui/layout/right-drawer/components/RightDrawerTopBarCloseButton.tsx @@ -1,7 +1,8 @@ import styled from '@emotion/styled'; -import { IconPlus } from '@tabler/icons-react'; import { useRecoilState } from 'recoil'; +import { IconPlus } from '@/ui/icons/index'; + import { isRightDrawerOpenState } from '../states/isRightDrawerOpenState'; const StyledButton = styled.button` diff --git a/front/src/modules/ui/layout/top-bar/TopBar.tsx b/front/src/modules/ui/layout/top-bar/TopBar.tsx index fbe781a67a..38389ab5ca 100644 --- a/front/src/modules/ui/layout/top-bar/TopBar.tsx +++ b/front/src/modules/ui/layout/top-bar/TopBar.tsx @@ -1,7 +1,8 @@ import { ReactNode } from 'react'; -import { TbPlus } from 'react-icons/tb'; import styled from '@emotion/styled'; +import { IconPlus } from '@/ui/icons/index'; + import NavCollapseButton from '../navbar/NavCollapseButton'; export const TOP_BAR_MIN_HEIGHT = '40px'; @@ -59,7 +60,7 @@ export function TopBar({ title, icon, onAddButtonClick }: OwnProps) { data-testid="add-button" onClick={onAddButtonClick} > - + )} diff --git a/front/src/pages/companies/Companies.tsx b/front/src/pages/companies/Companies.tsx index 7cda823931..8f9068e3b7 100644 --- a/front/src/pages/companies/Companies.tsx +++ b/front/src/pages/companies/Companies.tsx @@ -1,6 +1,4 @@ import { useCallback, useState } from 'react'; -import { FaList } from 'react-icons/fa'; -import { TbBuilding } from 'react-icons/tb'; import styled from '@emotion/styled'; import { v4 as uuidv4 } from 'uuid'; @@ -21,6 +19,8 @@ import { import { SelectedFilterType } from '@/filters-and-sorts/interfaces/filters/interface'; import { EntityTableActionBar } from '@/ui/components/table/action-bar/EntityTableActionBar'; import { EntityTable } from '@/ui/components/table/EntityTable'; +import { IconBuilding } from '@/ui/icons/index'; +import { IconList } from '@/ui/icons/index'; import { WithTopBarContainer } from '@/ui/layout/containers/WithTopBarContainer'; import { BoolExpType } from '@/utils/interfaces/generic.interface'; import { AppPage } from '~/AppPage'; @@ -78,7 +78,7 @@ export function Companies() { } + icon={} onAddButtonClick={handleAddButtonClick} > <> @@ -87,7 +87,7 @@ export function Companies() { data={companies} columns={companiesColumns} viewName="All Companies" - viewIcon={} + viewIcon={} availableSorts={availableSorts} availableFilters={availableFilters} onSortsUpdate={updateSorts} diff --git a/front/src/pages/companies/companies-columns.tsx b/front/src/pages/companies/companies-columns.tsx index 14a920f6df..85e61788e8 100644 --- a/front/src/pages/companies/companies-columns.tsx +++ b/front/src/pages/companies/companies-columns.tsx @@ -1,12 +1,4 @@ import { useMemo } from 'react'; -import { - TbBuilding, - TbCalendar, - TbLink, - TbMapPin, - TbSum, - TbUser, -} from 'react-icons/tb'; import { createColumnHelper } from '@tanstack/react-table'; import { CompanyEditableNameChipCell } from '@/companies/components/CompanyEditableNameCell'; @@ -22,6 +14,14 @@ import { EditableDate } from '@/ui/components/editable-cell/types/EditableDate'; import { EditableRelation } from '@/ui/components/editable-cell/types/EditableRelation'; import { EditableText } from '@/ui/components/editable-cell/types/EditableText'; import { ColumnHead } from '@/ui/components/table/ColumnHead'; +import { + IconBuilding, + IconCalendar, + IconLink, + IconMapPin, + IconSum, + IconUser, +} from '@/ui/icons/index'; import { getCheckBoxColumn } from '@/ui/tables/utils/getCheckBoxColumn'; import { mapToUser, User } from '@/users/interfaces/user.interface'; import { QueryMode } from '~/generated/graphql'; @@ -34,7 +34,7 @@ export const useCompaniesColumns = () => { getCheckBoxColumn(), columnHelper.accessor('name', { header: () => ( - } /> + } /> ), cell: (props) => ( @@ -43,7 +43,7 @@ export const useCompaniesColumns = () => { }), columnHelper.accessor('domainName', { header: () => ( - } /> + } /> ), cell: (props) => ( { }), columnHelper.accessor('employees', { header: () => ( - } /> + } /> ), cell: (props) => ( { }), columnHelper.accessor('address', { header: () => ( - } /> + } /> ), cell: (props) => ( { }), columnHelper.accessor('createdAt', { header: () => ( - } /> + } + /> ), cell: (props) => ( { header: () => ( } + viewIcon={} /> ), cell: (props) => ( diff --git a/front/src/pages/companies/companies-filters.tsx b/front/src/pages/companies/companies-filters.tsx index ba5e39e18b..ae23304d55 100644 --- a/front/src/pages/companies/companies-filters.tsx +++ b/front/src/pages/companies/companies-filters.tsx @@ -1,22 +1,21 @@ -import { - TbBuilding, - TbCalendar, - TbLink, - TbMapPin, - TbSum, - TbUser, -} from 'react-icons/tb'; - import { Company } from '@/companies/interfaces/company.interface'; import { FilterConfigType } from '@/filters-and-sorts/interfaces/filters/interface'; import { SEARCH_USER_QUERY } from '@/search/services/search'; +import { + IconBuilding, + IconCalendar, + IconLink, + IconMapPin, + IconSum, + IconUser, +} from '@/ui/icons/index'; import { mapToUser, User } from '@/users/interfaces/user.interface'; import { QueryMode } from '~/generated/graphql'; export const nameFilter = { key: 'name', label: 'Name', - icon: , + icon: , type: 'text', operands: [ { @@ -46,7 +45,7 @@ export const nameFilter = { export const employeesFilter = { key: 'employees', label: 'Employees', - icon: , + icon: , type: 'text', operands: [ { @@ -73,7 +72,7 @@ export const employeesFilter = { export const urlFilter = { key: 'domainName', label: 'Url', - icon: , + icon: , type: 'text', operands: [ { @@ -106,7 +105,7 @@ export const urlFilter = { export const addressFilter = { key: 'address', label: 'Address', - icon: , + icon: , type: 'text', operands: [ { @@ -136,7 +135,7 @@ export const addressFilter = { export const ccreatedAtFilter = { key: 'createdAt', label: 'Created At', - icon: , + icon: , type: 'date', operands: [ { @@ -163,7 +162,7 @@ export const ccreatedAtFilter = { export const accountOwnerFilter = { key: 'accountOwner', label: 'Account Owner', - icon: , + icon: , type: 'relation', searchConfig: { query: SEARCH_USER_QUERY, diff --git a/front/src/pages/companies/companies-sorts.tsx b/front/src/pages/companies/companies-sorts.tsx index 9bfb67e6e1..e61fba7695 100644 --- a/front/src/pages/companies/companies-sorts.tsx +++ b/front/src/pages/companies/companies-sorts.tsx @@ -1,43 +1,42 @@ -import { - TbBuilding, - TbCalendar, - TbLink, - TbMapPin, - TbSum, -} from 'react-icons/tb'; - import { SortType } from '@/filters-and-sorts/interfaces/sorts/interface'; +import { + IconBuilding, + IconCalendar, + IconLink, + IconMapPin, + IconSum, +} from '@/ui/icons/index'; import { CompanyOrderByWithRelationInput as Companies_Order_By } from '~/generated/graphql'; export const availableSorts = [ { key: 'name', label: 'Name', - icon: , + icon: , _type: 'default_sort', }, { key: 'employees', label: 'Employees', - icon: , + icon: , _type: 'default_sort', }, { key: 'domainName', label: 'Url', - icon: , + icon: , _type: 'default_sort', }, { key: 'address', label: 'Address', - icon: , + icon: , _type: 'default_sort', }, { key: 'createdAt', label: 'Creation', - icon: , + icon: , _type: 'default_sort', }, ] satisfies Array>; diff --git a/front/src/pages/companies/table/TableActionBarButtonDeleteCompanies.tsx b/front/src/pages/companies/table/TableActionBarButtonDeleteCompanies.tsx index 630d053033..112a1100a6 100644 --- a/front/src/pages/companies/table/TableActionBarButtonDeleteCompanies.tsx +++ b/front/src/pages/companies/table/TableActionBarButtonDeleteCompanies.tsx @@ -1,7 +1,7 @@ -import { TbTrash } from 'react-icons/tb'; import { useRecoilValue } from 'recoil'; import { EntityTableActionBarButton } from '@/ui/components/table/action-bar/EntityTableActionBarButton'; +import { IconTrash } from '@/ui/icons/index'; import { useResetTableRowSelection } from '@/ui/tables/hooks/useResetTableRowSelection'; import { selectedRowIdsState } from '@/ui/tables/states/selectedRowIdsState'; import { useDeleteCompaniesMutation } from '~/generated/graphql'; @@ -28,7 +28,7 @@ export function TableActionBarButtonDeleteCompanies() { return ( } + icon={} type="warning" onClick={handleDeleteClick} /> diff --git a/front/src/pages/opportunities/Opportunities.tsx b/front/src/pages/opportunities/Opportunities.tsx index 6a75c45965..45c238caca 100644 --- a/front/src/pages/opportunities/Opportunities.tsx +++ b/front/src/pages/opportunities/Opportunities.tsx @@ -1,5 +1,4 @@ -import { FaBullseye } from 'react-icons/fa'; - +import { IconTarget } from '@/ui/icons/index'; import { WithTopBarContainer } from '@/ui/layout/containers/WithTopBarContainer'; import { AppPage } from '~/AppPage'; @@ -12,7 +11,7 @@ import { Board } from '../../modules/opportunities/components/Board'; export function Opportunities() { return ( - }> + }> diff --git a/front/src/pages/people/People.tsx b/front/src/pages/people/People.tsx index c482a49f62..9ece1b03dc 100644 --- a/front/src/pages/people/People.tsx +++ b/front/src/pages/people/People.tsx @@ -1,6 +1,4 @@ import { useCallback, useState } from 'react'; -import { FaList } from 'react-icons/fa'; -import { TbUser } from 'react-icons/tb'; import styled from '@emotion/styled'; import { v4 as uuidv4 } from 'uuid'; @@ -18,6 +16,7 @@ import { } from '@/people/services'; import { EntityTableActionBar } from '@/ui/components/table/action-bar/EntityTableActionBar'; import { EntityTable } from '@/ui/components/table/EntityTable'; +import { IconList, IconUser } from '@/ui/icons/index'; import { WithTopBarContainer } from '@/ui/layout/containers/WithTopBarContainer'; import { BoolExpType } from '@/utils/interfaces/generic.interface'; import { AppPage } from '~/AppPage'; @@ -76,7 +75,7 @@ export function People() { } + icon={} onAddButtonClick={handleAddButtonClick} > <> @@ -85,7 +84,7 @@ export function People() { data={people} columns={peopleColumns} viewName="All People" - viewIcon={} + viewIcon={} availableSorts={availableSorts} availableFilters={availableFilters} onSortsUpdate={updateSorts} diff --git a/front/src/pages/people/people-columns.tsx b/front/src/pages/people/people-columns.tsx index d1dabfc397..39ffea0447 100644 --- a/front/src/pages/people/people-columns.tsx +++ b/front/src/pages/people/people-columns.tsx @@ -1,12 +1,4 @@ import { useMemo } from 'react'; -import { - TbBuilding, - TbCalendar, - TbMail, - TbMapPin, - TbPhone, - TbUser, -} from 'react-icons/tb'; import { createColumnHelper } from '@tanstack/react-table'; import { EditablePeopleFullName } from '@/people/components/EditablePeopleFullName'; @@ -17,6 +9,14 @@ import { EditableDate } from '@/ui/components/editable-cell/types/EditableDate'; import { EditablePhone } from '@/ui/components/editable-cell/types/EditablePhone'; import { EditableText } from '@/ui/components/editable-cell/types/EditableText'; import { ColumnHead } from '@/ui/components/table/ColumnHead'; +import { + IconBuilding, + IconCalendar, + IconMail, + IconMapPin, + IconPhone, + IconUser, +} from '@/ui/icons/index'; import { getCheckBoxColumn } from '@/ui/tables/utils/getCheckBoxColumn'; const columnHelper = createColumnHelper(); @@ -27,7 +27,7 @@ export const usePeopleColumns = () => { getCheckBoxColumn(), columnHelper.accessor('firstname', { header: () => ( - } /> + } /> ), cell: (props) => ( <> @@ -46,7 +46,7 @@ export const usePeopleColumns = () => { }), columnHelper.accessor('email', { header: () => ( - } /> + } /> ), cell: (props) => ( { }), columnHelper.accessor('company', { header: () => ( - } /> + } + /> ), cell: (props) => , size: 150, }), columnHelper.accessor('phone', { header: () => ( - } /> + } /> ), cell: (props) => ( { }), columnHelper.accessor('createdAt', { header: () => ( - } /> + } + /> ), cell: (props) => ( { }), columnHelper.accessor('city', { header: () => ( - } /> + } /> ), cell: (props) => ( , + icon: , type: 'text', operands: [ { @@ -72,7 +71,7 @@ export const fullnameFilter = { export const emailFilter = { key: 'email', label: 'Email', - icon: , + icon: , type: 'text', operands: [ { @@ -102,7 +101,7 @@ export const emailFilter = { export const companyFilter = { key: 'company_name', label: 'Company', - icon: , + icon: , type: 'relation', searchConfig: { query: SEARCH_COMPANY_QUERY, @@ -136,7 +135,7 @@ export const companyFilter = { export const phoneFilter = { key: 'phone', label: 'Phone', - icon: , + icon: , type: 'text', operands: [ { @@ -166,7 +165,7 @@ export const phoneFilter = { export const createdAtFilter = { key: 'createdAt', label: 'Created At', - icon: , + icon: , type: 'date', operands: [ { @@ -193,7 +192,7 @@ export const createdAtFilter = { export const cityFilter = { key: 'city', label: 'City', - icon: , + icon: , type: 'text', operands: [ { diff --git a/front/src/pages/people/people-sorts.tsx b/front/src/pages/people/people-sorts.tsx index e29d6a2b05..2052ebf0a7 100644 --- a/front/src/pages/people/people-sorts.tsx +++ b/front/src/pages/people/people-sorts.tsx @@ -1,13 +1,12 @@ -import { - TbBuilding, - TbCalendar, - TbMail, - TbMapPin, - TbPhone, - TbUser, -} from 'react-icons/tb'; - import { SortType } from '@/filters-and-sorts/interfaces/sorts/interface'; +import { + IconBuilding, + IconCalendar, + IconMail, + IconMapPin, + IconPhone, + IconUser, +} from '@/ui/icons/index'; import { PersonOrderByWithRelationInput as People_Order_By, SortOrder as Order_By, @@ -17,7 +16,7 @@ export const availableSorts = [ { key: 'fullname', label: 'People', - icon: , + icon: , _type: 'custom_sort', orderByTemplates: [ (order: Order_By) => ({ @@ -31,32 +30,32 @@ export const availableSorts = [ { key: 'company_name', label: 'Company', - icon: , + icon: , _type: 'custom_sort', orderByTemplates: [(order: Order_By) => ({ company: { name: order } })], }, { key: 'email', label: 'Email', - icon: , + icon: , _type: 'default_sort', }, { key: 'phone', label: 'Phone', - icon: , + icon: , _type: 'default_sort', }, { key: 'createdAt', label: 'Created at', - icon: , + icon: , _type: 'default_sort', }, { key: 'city', label: 'City', - icon: , + icon: , _type: 'default_sort', }, ] satisfies Array>; diff --git a/front/src/pages/people/table/TableActionBarButtonDeletePeople.tsx b/front/src/pages/people/table/TableActionBarButtonDeletePeople.tsx index c3036f2385..a3239cb73b 100644 --- a/front/src/pages/people/table/TableActionBarButtonDeletePeople.tsx +++ b/front/src/pages/people/table/TableActionBarButtonDeletePeople.tsx @@ -1,7 +1,7 @@ -import { TbTrash } from 'react-icons/tb'; import { useRecoilValue } from 'recoil'; import { EntityTableActionBarButton } from '@/ui/components/table/action-bar/EntityTableActionBarButton'; +import { IconTrash } from '@/ui/icons/index'; import { useResetTableRowSelection } from '@/ui/tables/hooks/useResetTableRowSelection'; import { selectedRowIdsState } from '@/ui/tables/states/selectedRowIdsState'; import { useDeletePeopleMutation } from '~/generated/graphql'; @@ -28,7 +28,7 @@ export function TableActionBarButtonDeletePeople() { return ( } + icon={} type="warning" onClick={handleDeleteClick} />