diff --git a/docs/docs/developer/frontend/best-practices.mdx b/docs/docs/developer/frontend/best-practices.mdx index c31df21dd..0f9075b79 100644 --- a/docs/docs/developer/frontend/best-practices.mdx +++ b/docs/docs/developer/frontend/best-practices.mdx @@ -22,7 +22,7 @@ export const myAtomState = atom({ default: 'default value', }); -export function MyComponent() { +export const MyComponent = () => { const [myAtom, setMyAtom] = useRecoilState(myAtomState); return ( @@ -79,7 +79,7 @@ The same can be applied for data fetching logic, with Apollo hooks. ```tsx // ❌ Bad, will cause re-renders even if data is not changing, // because useEffect needs to be re-evaluated -export function PageComponent() { +export const PageComponent = () => { const [data, setData] = useRecoilState(dataState); const [someDependency] = useRecoilState(someDependencyState); @@ -92,25 +92,23 @@ export function PageComponent() { return
{data}
; }; -export function App() { - return ( - - - - ); -} +export const App = () => ( + + + +); ``` ```tsx // ✅ Good, will not cause re-renders if data is not changing, // because useEffect is re-evaluated in another sibling component -export function PageComponent() { +export const PageComponent = () => { const [data, setData] = useRecoilState(dataState); return
{data}
; }; -export function PageData() { +export const PageData = () => { const [data, setData] = useRecoilState(dataState); const [someDependency] = useRecoilState(someDependencyState); @@ -123,14 +121,12 @@ export function PageData() { return <>; }; -export function App() { - return ( - - - - - ); -} +export const App = () => ( + + + + +); ``` ### Use recoil family states and recoil family selectors @@ -189,16 +185,16 @@ Event handler names should start with `handle`, `on` is a prefix used to name ev ```tsx // ❌ Bad -function onEmailChange(val: string) { +const onEmailChange = (val: string) => { // ... -} +}; ``` ```tsx // ✅ Good -function handleEmailChange(val: string) { +const handleEmailChange = (val: string) => { // ... -} +}; ``` ## Optional Props @@ -215,25 +211,21 @@ type OwnProps = { disabled?: boolean; }; -function EmailField({ value, disabled = false }: OwnProps) { - return ; -} +const EmailField = ({ value, disabled = false }: OwnProps) => ( + +); ``` USAGE ```tsx // ❌ Bad, passing in the same value as the default value adds no value -function Form() { - return ; -} +const Form = () => ; ``` ```tsx // ✅ Good, assumes the default value -function Form() { - return ; -} +const Form = () => ; ``` ## Component as props @@ -243,14 +235,10 @@ Try as much as possible to pass uninstanciated components as props, so chilren c The most common example for that is icon components : ```tsx -function SomeParentComponent() { - return ( - - ) -} +const SomeParentComponent = () => ; // In MyComponent -function MyComponent({ MyIcon }: { MyIcon: IconComponent }) { +const MyComponent = ({ MyIcon }: { MyIcon: IconComponent }) => { const theme = useTheme(); return ( @@ -258,7 +246,7 @@ function MyComponent({ MyIcon }: { MyIcon: IconComponent }) { ) -} +}; ``` For React to understand that the component is a component, you need to use PascalCase, to later instanciate it with `` diff --git a/docs/docs/developer/frontend/style-guide.mdx b/docs/docs/developer/frontend/style-guide.mdx index 7de2c6b5b..c8c9aeaa6 100644 --- a/docs/docs/developer/frontend/style-guide.mdx +++ b/docs/docs/developer/frontend/style-guide.mdx @@ -46,18 +46,14 @@ Use props destructuring. ```tsx // ❌ Bad, no type -export function MyComponent(props) { - return
Hello {props.name}
; -}; +export const MyComponent = (props) =>
Hello {props.name}
; // ✅ Good, type type OwnProps = { name: string; }; -export function MyComponent({ name }: OwnProps) { - return
Hello {name}
; -}; +export const MyComponent = ({ name }: OwnProps) =>
Hello {name}
; ``` #### Refrain from using `React.FC` or `React.FunctionComponent` to define prop types. @@ -84,9 +80,9 @@ type OwnProps = { value: string; }; -function EmailField({ value }: OwnProps) { - return ; -} +const EmailField = ({ value }: OwnProps) => ( + +); ``` ## JavaScript diff --git a/docs/src/pages/graphql.tsx b/docs/src/pages/graphql.tsx index 4e047ee9d..49e4081ae 100644 --- a/docs/src/pages/graphql.tsx +++ b/docs/src/pages/graphql.tsx @@ -1,34 +1,38 @@ -import { createGraphiQLFetcher } from '@graphiql/toolkit'; -import { GraphiQL } from 'graphiql'; -import React from 'react'; -import ReactDOM from 'react-dom'; -import Layout from '@theme/Layout'; -import BrowserOnly from '@docusaurus/BrowserOnly'; - -import 'graphiql/graphiql.css'; +import { createGraphiQLFetcher } from "@graphiql/toolkit"; +import { GraphiQL } from "graphiql"; +import React from "react"; +import ReactDOM from "react-dom"; +import Layout from "@theme/Layout"; +import BrowserOnly from "@docusaurus/BrowserOnly"; +import "graphiql/graphiql.css"; // Docusaurus does SSR for custom pages but we need to load GraphiQL in the browser -function GraphiQLComponent() { - if(!window.localStorage.getItem('graphiql:theme') && window.localStorage.getItem('theme') != 'dark') { - window.localStorage.setItem('graphiql:theme', 'light'); - } +const GraphiQLComponent = () => { + if ( + !window.localStorage.getItem("graphiql:theme") && + window.localStorage.getItem("theme") != "dark" + ) { + window.localStorage.setItem("graphiql:theme", "light"); + } - const fetcher = createGraphiQLFetcher({ url: 'https://api.twenty.com/graphql' }); + const fetcher = createGraphiQLFetcher({ + url: "https://api.twenty.com/graphql", + }); return ( -
- ; -
+
+ ; +
); -} +}; -export default function graphQL() { - return ( - - - - {() => } - - - ); -} \ No newline at end of file +const graphQL = () => ( + + {() => } + +); + +export default graphQL; diff --git a/docs/src/theme/DocSidebarItem/Link/index.js b/docs/src/theme/DocSidebarItem/Link/index.js index afedfb257..77edc7ef2 100644 --- a/docs/src/theme/DocSidebarItem/Link/index.js +++ b/docs/src/theme/DocSidebarItem/Link/index.js @@ -32,14 +32,14 @@ import { } from "react-icons/tb"; -export default function DocSidebarItemLink({ +const DocSidebarItemLink = ({ item, onItemClick, activePath, level, index, ...props -}) { +}) => { const {href, label, className, autoAddBaseUrl, customProps = {}} = item; const isActive = isActiveSidebarItem(item, activePath); const isInternalLink = isInternalUrl(href); @@ -104,3 +104,5 @@ export default function DocSidebarItemLink({ ); } + +export default DocSidebarItemLink; diff --git a/docs/src/theme/Icon/DarkMode/index.js b/docs/src/theme/Icon/DarkMode/index.js index 22cc5ac1e..57a210842 100644 --- a/docs/src/theme/Icon/DarkMode/index.js +++ b/docs/src/theme/Icon/DarkMode/index.js @@ -3,7 +3,9 @@ import { TbMoon } from 'react-icons/tb'; import {useColorMode} from '@docusaurus/theme-common'; -export default function IconDarkMode(props) { +const IconDarkMode = (props) => { const { colorMode } = useColorMode().colorMode; return colorMode === 'dark' ? : <>; } + +export default IconDarkMode \ No newline at end of file diff --git a/docs/src/theme/Icon/Home/index.js b/docs/src/theme/Icon/Home/index.js index c778c3d59..7221139ae 100644 --- a/docs/src/theme/Icon/Home/index.js +++ b/docs/src/theme/Icon/Home/index.js @@ -1,5 +1,5 @@ -import React from 'react'; -import { TbHome } from 'react-icons/tb'; -export default function IconHome(props) { - return ; -} +import React from "react"; +import { TbHome } from "react-icons/tb"; +const IconHome = (props) => ; + +export default IconHome; diff --git a/docs/src/theme/Icon/LightMode/index.js b/docs/src/theme/Icon/LightMode/index.js index 92bb56cc4..901da6178 100644 --- a/docs/src/theme/Icon/LightMode/index.js +++ b/docs/src/theme/Icon/LightMode/index.js @@ -3,7 +3,9 @@ import { TbSun } from 'react-icons/tb'; import {useColorMode} from '@docusaurus/theme-common'; -export default function IconLightMode(props) { +const IconLightMode = (props) => { const { colorMode } = useColorMode().colorMode; return colorMode === 'dark' ? <>: ; } + +export default IconLightMode; diff --git a/front/.eslintrc.js b/front/.eslintrc.js index ce161365c..d72767752 100644 --- a/front/.eslintrc.js +++ b/front/.eslintrc.js @@ -5,7 +5,14 @@ module.exports = { tsconfigRootDir: __dirname, sourceType: 'module', }, - plugins: ['@typescript-eslint/eslint-plugin', 'unused-imports', 'simple-import-sort', 'twenty', 'twenty-ts'], + plugins: [ + '@typescript-eslint/eslint-plugin', + 'unused-imports', + 'simple-import-sort', + 'prefer-arrow', + 'twenty', + 'twenty-ts', + ], extends: [ 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended', @@ -34,6 +41,14 @@ module.exports = { ['^.+\\.?(css)$'] ] } + ], + 'prefer-arrow/prefer-arrow-functions': [ + 'error', + { + "disallowPrototype": true, + "singleReturnOnly": false, + "classPropertiesAllowed": false + } ] } }, diff --git a/front/package.json b/front/package.json index 9eee20fef..38a403e72 100644 --- a/front/package.json +++ b/front/package.json @@ -161,6 +161,7 @@ "eslint-config-standard-with-typescript": "^23.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.5.1", + "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.31.11", diff --git a/front/src/App.tsx b/front/src/App.tsx index 2de93056a..615616bc1 100644 --- a/front/src/App.tsx +++ b/front/src/App.tsx @@ -28,7 +28,7 @@ import { getPageTitleFromPath } from './utils/title-utils'; // TEMP FEATURE FLAG FOR VIEW FIELDS export const ACTIVATE_VIEW_FIELDS = true; -export function App() { +export const App = () => { const { pathname } = useLocation(); const pageTitle = getPageTitleFromPath(pathname); @@ -82,4 +82,4 @@ export function App() { ); -} +}; diff --git a/front/src/AppNavbar.tsx b/front/src/AppNavbar.tsx index d89ffa8a6..e6d31ce6a 100644 --- a/front/src/AppNavbar.tsx +++ b/front/src/AppNavbar.tsx @@ -20,7 +20,7 @@ import NavTitle from '@/ui/navbar/components/NavTitle'; import { measureTotalFrameLoad } from './utils/measureTotalFrameLoad'; -export function AppNavbar() { +export const AppNavbar = () => { const currentPath = useLocation().pathname; const { openCommandMenu } = useCommandMenu(); @@ -94,4 +94,4 @@ export function AppNavbar() { )} ); -} +}; diff --git a/front/src/effect-components/CommandMenuEffect.tsx b/front/src/effect-components/CommandMenuEffect.tsx index 396b71570..e62427f11 100644 --- a/front/src/effect-components/CommandMenuEffect.tsx +++ b/front/src/effect-components/CommandMenuEffect.tsx @@ -4,7 +4,7 @@ import { useSetRecoilState } from 'recoil'; import { commandMenuCommands } from '@/command-menu/constants/commandMenuCommands'; import { commandMenuCommandsState } from '@/command-menu/states/commandMenuCommandsState'; -export function CommandMenuEffect() { +export const CommandMenuEffect = () => { const setCommands = useSetRecoilState(commandMenuCommandsState); const commands = commandMenuCommands; @@ -13,4 +13,4 @@ export function CommandMenuEffect() { }, [commands, setCommands]); return <>; -} +}; diff --git a/front/src/effect-components/GotoHotkeysEffect.tsx b/front/src/effect-components/GotoHotkeysEffect.tsx index 6eb65c208..4b79fc6ba 100644 --- a/front/src/effect-components/GotoHotkeysEffect.tsx +++ b/front/src/effect-components/GotoHotkeysEffect.tsx @@ -1,6 +1,6 @@ import { useGoToHotkeys } from '@/ui/utilities/hotkey/hooks/useGoToHotkeys'; -export function GotoHotkeysEffect() { +export const GotoHotkeysEffect = () => { useGoToHotkeys('p', '/people'); useGoToHotkeys('c', '/companies'); useGoToHotkeys('o', '/opportunities'); @@ -8,4 +8,4 @@ export function GotoHotkeysEffect() { useGoToHotkeys('t', '/tasks'); return <>; -} +}; diff --git a/front/src/effect-components/PageChangeEffect.tsx b/front/src/effect-components/PageChangeEffect.tsx index f04087ece..7ab2bafab 100644 --- a/front/src/effect-components/PageChangeEffect.tsx +++ b/front/src/effect-components/PageChangeEffect.tsx @@ -24,7 +24,7 @@ import { import { useIsMatchingLocation } from '../hooks/useIsMatchingLocation'; // TODO: break down into smaller functions and / or hooks -export function PageChangeEffect() { +export const PageChangeEffect = () => { const navigate = useNavigate(); const isMatchingLocation = useIsMatchingLocation(); const { enqueueSnackBar } = useSnackBar(); @@ -66,12 +66,12 @@ export function PageChangeEffect() { isMatchingLocation(AppPath.CreateWorkspace) || isMatchingLocation(AppPath.CreateProfile); - function navigateToSignUp() { + const navigateToSignUp = () => { enqueueSnackBar('workspace does not exist', { variant: 'error', }); navigate(AppPath.SignUp); - } + }; if ( onboardingStatus === OnboardingStatus.OngoingUserCreation && @@ -281,4 +281,4 @@ export function PageChangeEffect() { ]); return <>; -} +}; diff --git a/front/src/hooks/useCombinedRefs.ts b/front/src/hooks/useCombinedRefs.ts index dd2488262..1b2f715f2 100644 --- a/front/src/hooks/useCombinedRefs.ts +++ b/front/src/hooks/useCombinedRefs.ts @@ -1,9 +1,8 @@ import React, { Ref, RefCallback } from 'react'; -export function useCombinedRefs( - ...refs: (Ref | undefined)[] -): RefCallback { - return (node: T) => { +export const useCombinedRefs = + (...refs: (Ref | undefined)[]): RefCallback => + (node: T) => { for (const ref of refs) { if (typeof ref === 'function') { ref(node); @@ -12,4 +11,3 @@ export function useCombinedRefs( } } }; -} diff --git a/front/src/hooks/useFirstMountState.ts b/front/src/hooks/useFirstMountState.ts index cf210622a..2bfde14ce 100644 --- a/front/src/hooks/useFirstMountState.ts +++ b/front/src/hooks/useFirstMountState.ts @@ -1,6 +1,6 @@ import { useRef } from 'react'; -export function useFirstMountState(): boolean { +export const useFirstMountState = (): boolean => { const isFirst = useRef(true); if (isFirst.current) { @@ -10,4 +10,4 @@ export function useFirstMountState(): boolean { } return isFirst.current; -} +}; diff --git a/front/src/hooks/useIsMatchingLocation.ts b/front/src/hooks/useIsMatchingLocation.ts index 477cc69bc..6af6c2e1c 100644 --- a/front/src/hooks/useIsMatchingLocation.ts +++ b/front/src/hooks/useIsMatchingLocation.ts @@ -3,14 +3,14 @@ import { parse } from 'url'; import { AppBasePath } from '@/types/AppBasePath'; -export function useIsMatchingLocation() { +export const useIsMatchingLocation = () => { const location = useLocation(); - return function isMatchingLocation(path: string, basePath?: AppBasePath) { + return (path: string, basePath?: AppBasePath) => { const constructedPath = basePath ? parse(`${basePath}/${path}`).pathname ?? '' : path; return !!matchPath(constructedPath, location.pathname); }; -} +}; diff --git a/front/src/hooks/useUpdateEffect.ts b/front/src/hooks/useUpdateEffect.ts index c8b5b41c2..355a19084 100644 --- a/front/src/hooks/useUpdateEffect.ts +++ b/front/src/hooks/useUpdateEffect.ts @@ -2,7 +2,10 @@ import { DependencyList, EffectCallback, useEffect } from 'react'; import { useFirstMountState } from './useFirstMountState'; -export function useUpdateEffect(effect: EffectCallback, deps?: DependencyList) { +export const useUpdateEffect = ( + effect: EffectCallback, + deps?: DependencyList, +) => { const isFirst = useFirstMountState(); useEffect(() => { @@ -11,4 +14,4 @@ export function useUpdateEffect(effect: EffectCallback, deps?: DependencyList) { } // eslint-disable-next-line react-hooks/exhaustive-deps }, deps); -} +}; diff --git a/front/src/modules/activities/comment/Comment.tsx b/front/src/modules/activities/comment/Comment.tsx index db7d23022..d91852caa 100644 --- a/front/src/modules/activities/comment/Comment.tsx +++ b/front/src/modules/activities/comment/Comment.tsx @@ -30,11 +30,9 @@ const StyledCommentBody = styled.div` text-align: left; `; -export function Comment({ comment, actionBar }: OwnProps) { - return ( - - - {comment.body} - - ); -} +export const Comment = ({ comment, actionBar }: OwnProps) => ( + + + {comment.body} + +); diff --git a/front/src/modules/activities/comment/CommentHeader.tsx b/front/src/modules/activities/comment/CommentHeader.tsx index b7071ffdb..83b30a369 100644 --- a/front/src/modules/activities/comment/CommentHeader.tsx +++ b/front/src/modules/activities/comment/CommentHeader.tsx @@ -62,7 +62,7 @@ const StyledTooltip = styled(Tooltip)` padding: 8px; `; -export function CommentHeader({ comment, actionBar }: OwnProps) { +export const CommentHeader = ({ comment, actionBar }: OwnProps) => { const beautifiedCreatedAt = beautifyPastDateRelativeToNow(comment.createdAt); const exactCreatedAt = beautifyExactDateTime(comment.createdAt); const showDate = beautifiedCreatedAt !== ''; @@ -99,4 +99,4 @@ export function CommentHeader({ comment, actionBar }: OwnProps) {
{actionBar}
); -} +}; diff --git a/front/src/modules/activities/components/ActivityAssigneePicker.tsx b/front/src/modules/activities/components/ActivityAssigneePicker.tsx index d0d064cad..987c0d31f 100644 --- a/front/src/modules/activities/components/ActivityAssigneePicker.tsx +++ b/front/src/modules/activities/components/ActivityAssigneePicker.tsx @@ -30,11 +30,11 @@ type UserForSelect = EntityForSelect & { entityType: Entity.User; }; -export function ActivityAssigneePicker({ +export const ActivityAssigneePicker = ({ activity, onSubmit, onCancel, -}: OwnProps) { +}: OwnProps) => { const [relationPickerSearchFilter] = useRecoilScopedState( relationPickerSearchFilterScopedState, ); @@ -68,9 +68,9 @@ export function ActivityAssigneePicker({ fragment: ACTIVITY_UPDATE_FRAGMENT, }); - async function handleEntitySelected( + const handleEntitySelected = async ( selectedUser: UserForSelect | null | undefined, - ) { + ) => { if (selectedUser) { const workspaceMemberAssignee = ( await getWorkspaceMember({ @@ -108,7 +108,7 @@ export function ActivityAssigneePicker({ } onSubmit?.(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/activities/components/ActivityBodyEditor.tsx b/front/src/modules/activities/components/ActivityBodyEditor.tsx index 52da0cb32..3dfa29beb 100644 --- a/front/src/modules/activities/components/ActivityBodyEditor.tsx +++ b/front/src/modules/activities/components/ActivityBodyEditor.tsx @@ -19,7 +19,7 @@ type OwnProps = { onChange?: (activityBody: string) => void; }; -export function ActivityBodyEditor({ activity, onChange }: OwnProps) { +export const ActivityBodyEditor = ({ activity, onChange }: OwnProps) => { const [updateActivityMutation] = useUpdateActivityMutation(); const client = useApolloClient(); @@ -37,7 +37,7 @@ export function ActivityBodyEditor({ activity, onChange }: OwnProps) { }, [body, onChange]); const debounceOnChange = useMemo(() => { - function onInternalChange(activityBody: string) { + const onInternalChange = (activityBody: string) => { setBody(activityBody); updateActivityMutation({ variables: { @@ -56,7 +56,7 @@ export function ActivityBodyEditor({ activity, onChange }: OwnProps) { }, }, }); - } + }; return debounce(onInternalChange, 200); }, [updateActivityMutation, activity.id, cachedActivity]); @@ -74,4 +74,4 @@ export function ActivityBodyEditor({ activity, onChange }: OwnProps) { ); -} +}; diff --git a/front/src/modules/activities/components/ActivityComments.tsx b/front/src/modules/activities/components/ActivityComments.tsx index 35dec2e1f..496f16ea6 100644 --- a/front/src/modules/activities/components/ActivityComments.tsx +++ b/front/src/modules/activities/components/ActivityComments.tsx @@ -59,10 +59,10 @@ const StyledThreadCommentTitle = styled.div` text-transform: uppercase; `; -export function ActivityComments({ +export const ActivityComments = ({ activity, scrollableContainerRef, -}: OwnProps) { +}: OwnProps) => { const [createCommentMutation] = useCreateCommentMutation(); const currentUser = useRecoilValue(currentUserState); @@ -70,7 +70,7 @@ export function ActivityComments({ return <>; } - function handleSendComment(commentText: string) { + const handleSendComment = (commentText: string) => { if (!isNonEmptyString(commentText)) { return; } @@ -91,16 +91,16 @@ export function ActivityComments({ }, awaitRefetchQueries: true, }); - } + }; - function handleFocus() { + const handleFocus = () => { const scrollableContainer = scrollableContainerRef.current; scrollableContainer?.scrollTo({ top: scrollableContainer.scrollHeight, behavior: 'smooth', }); - } + }; return ( <> @@ -127,4 +127,4 @@ export function ActivityComments({ ); -} +}; diff --git a/front/src/modules/activities/components/ActivityCreateButton.tsx b/front/src/modules/activities/components/ActivityCreateButton.tsx index 09b35d1a7..ed519b8d0 100644 --- a/front/src/modules/activities/components/ActivityCreateButton.tsx +++ b/front/src/modules/activities/components/ActivityCreateButton.tsx @@ -8,21 +8,19 @@ type ActivityCreateButtonProps = { onActivityClick?: () => void; }; -export function ActivityCreateButton({ +export const ActivityCreateButton = ({ onNoteClick, onTaskClick, onActivityClick, -}: ActivityCreateButtonProps) { - return ( - - ); -} +}; diff --git a/front/src/modules/activities/tasks/components/EntityTasks.tsx b/front/src/modules/activities/tasks/components/EntityTasks.tsx index 77f3c5446..ded8569dd 100644 --- a/front/src/modules/activities/tasks/components/EntityTasks.tsx +++ b/front/src/modules/activities/tasks/components/EntityTasks.tsx @@ -13,7 +13,11 @@ const StyledContainer = styled.div` overflow: auto; `; -export function EntityTasks({ entity }: { entity: ActivityTargetableEntity }) { +export const EntityTasks = ({ + entity, +}: { + entity: ActivityTargetableEntity; +}) => { return ( @@ -21,4 +25,4 @@ export function EntityTasks({ entity }: { entity: ActivityTargetableEntity }) { ); -} +}; diff --git a/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx b/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx index 7a9a31f2b..90bac700c 100644 --- a/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx +++ b/front/src/modules/activities/tasks/components/PageAddTaskButton.tsx @@ -7,7 +7,7 @@ import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoi import { filtersScopedState } from '@/ui/view-bar/states/filtersScopedState'; import { ActivityType } from '~/generated/graphql'; -export function PageAddTaskButton() { +export const PageAddTaskButton = () => { const openCreateActivity = useOpenCreateActivityDrawer(); const filters = useRecoilScopedValue( @@ -19,16 +19,16 @@ export function PageAddTaskButton() { (filter) => filter.key === 'assigneeId', ); - function handleClick() { + const handleClick = () => { openCreateActivity({ type: ActivityType.Task, assigneeId: assigneeIdFilter?.value, }); - } + }; return ( ); -} +}; diff --git a/front/src/modules/activities/tasks/components/TaskGroups.tsx b/front/src/modules/activities/tasks/components/TaskGroups.tsx index ca010fdf5..3bf4f2d53 100644 --- a/front/src/modules/activities/tasks/components/TaskGroups.tsx +++ b/front/src/modules/activities/tasks/components/TaskGroups.tsx @@ -52,7 +52,7 @@ const StyledContainer = styled.div` flex-direction: column; `; -export function TaskGroups({ entity, showAddButton }: OwnProps) { +export const TaskGroups = ({ entity, showAddButton }: OwnProps) => { const { todayOrPreviousTasks, upcomingTasks, @@ -136,4 +136,4 @@ export function TaskGroups({ entity, showAddButton }: OwnProps) { )} ); -} +}; diff --git a/front/src/modules/activities/tasks/components/TaskList.tsx b/front/src/modules/activities/tasks/components/TaskList.tsx index 473c09201..92343be84 100644 --- a/front/src/modules/activities/tasks/components/TaskList.tsx +++ b/front/src/modules/activities/tasks/components/TaskList.tsx @@ -46,26 +46,24 @@ const StyledTaskRows = styled.div` width: 100%; `; -export function TaskList({ title, tasks, button }: OwnProps) { - return ( - <> - {tasks && tasks.length > 0 && ( - - - {title && ( - - {title} {tasks.length} - - )} - {button} - - - {tasks.map((task) => ( - - ))} - - - )} - - ); -} +export const TaskList = ({ title, tasks, button }: OwnProps) => ( + <> + {tasks && tasks.length > 0 && ( + + + {title && ( + + {title} {tasks.length} + + )} + {button} + + + {tasks.map((task) => ( + + ))} + + + )} + +); diff --git a/front/src/modules/activities/tasks/components/TaskRow.tsx b/front/src/modules/activities/tasks/components/TaskRow.tsx index e91644130..b9991606d 100644 --- a/front/src/modules/activities/tasks/components/TaskRow.tsx +++ b/front/src/modules/activities/tasks/components/TaskRow.tsx @@ -61,7 +61,7 @@ const StyledFieldsContainer = styled.div` display: flex; `; -export function TaskRow({ task }: { task: TaskForList }) { +export const TaskRow = ({ task }: { task: TaskForList }) => { const theme = useTheme(); const openActivityRightDrawer = useOpenActivityRightDrawer(); @@ -109,4 +109,4 @@ export function TaskRow({ task }: { task: TaskForList }) { ); -} +}; diff --git a/front/src/modules/activities/tasks/hooks/useCompleteTask.ts b/front/src/modules/activities/tasks/hooks/useCompleteTask.ts index df0315b01..611e4bece 100644 --- a/front/src/modules/activities/tasks/hooks/useCompleteTask.ts +++ b/front/src/modules/activities/tasks/hooks/useCompleteTask.ts @@ -9,7 +9,7 @@ import { GET_ACTIVITIES } from '../../graphql/queries/getActivities'; type Task = Pick; -export function useCompleteTask(task: Task) { +export const useCompleteTask = (task: Task) => { const [updateActivityMutation] = useUpdateActivityMutation(); const client = useApolloClient(); @@ -44,4 +44,4 @@ export function useCompleteTask(task: Task) { return { completeTask, }; -} +}; diff --git a/front/src/modules/activities/tasks/hooks/useCurrentUserDueTaskCount.ts b/front/src/modules/activities/tasks/hooks/useCurrentUserDueTaskCount.ts index d9d4dcf71..69bf4eeb9 100644 --- a/front/src/modules/activities/tasks/hooks/useCurrentUserDueTaskCount.ts +++ b/front/src/modules/activities/tasks/hooks/useCurrentUserDueTaskCount.ts @@ -7,7 +7,7 @@ import { turnFilterIntoWhereClause } from '@/ui/view-bar/utils/turnFilterIntoWhe import { ActivityType, useGetActivitiesQuery } from '~/generated/graphql'; import { parseDate } from '~/utils/date-utils'; -export function useCurrentUserTaskCount() { +export const useCurrentUserTaskCount = () => { const [currentUser] = useRecoilState(currentUserState); const { data } = useGetActivitiesQuery({ @@ -41,4 +41,4 @@ export function useCurrentUserTaskCount() { return { currentUserDueTaskCount, }; -} +}; diff --git a/front/src/modules/activities/tasks/hooks/useTasks.ts b/front/src/modules/activities/tasks/hooks/useTasks.ts index ac7b43d1b..04101fb44 100644 --- a/front/src/modules/activities/tasks/hooks/useTasks.ts +++ b/front/src/modules/activities/tasks/hooks/useTasks.ts @@ -8,7 +8,7 @@ import { turnFilterIntoWhereClause } from '@/ui/view-bar/utils/turnFilterIntoWhe import { ActivityType, useGetActivitiesQuery } from '~/generated/graphql'; import { parseDate } from '~/utils/date-utils'; -export function useTasks(entity?: ActivityTargetableEntity) { +export const useTasks = (entity?: ActivityTargetableEntity) => { const [filters] = useRecoilScopedState( filtersScopedState, TasksRecoilScopeContext, @@ -90,4 +90,4 @@ export function useTasks(entity?: ActivityTargetableEntity) { unscheduledTasks: unscheduledTasks ?? [], completedTasks: completedTasks ?? [], }; -} +}; diff --git a/front/src/modules/activities/timeline/components/Timeline.tsx b/front/src/modules/activities/timeline/components/Timeline.tsx index 159130c47..ed43b625e 100644 --- a/front/src/modules/activities/timeline/components/Timeline.tsx +++ b/front/src/modules/activities/timeline/components/Timeline.tsx @@ -51,7 +51,7 @@ const StyledEmptyTimelineSubTitle = styled.div` margin-bottom: ${({ theme }) => theme.spacing(2)}; `; -export function Timeline({ entity }: { entity: ActivityTargetableEntity }) { +export const Timeline = ({ entity }: { entity: ActivityTargetableEntity }) => { const { data: queryResult, loading } = useGetActivitiesByTargetsQuery({ variables: { activityTargetIds: [entity.id], @@ -99,4 +99,4 @@ export function Timeline({ entity }: { entity: ActivityTargetableEntity }) { ); -} +}; diff --git a/front/src/modules/activities/timeline/components/TimelineActivity.tsx b/front/src/modules/activities/timeline/components/TimelineActivity.tsx index ed3bb1dc2..55a288de1 100644 --- a/front/src/modules/activities/timeline/components/TimelineActivity.tsx +++ b/front/src/modules/activities/timeline/components/TimelineActivity.tsx @@ -125,7 +125,7 @@ type OwnProps = { }; }; -export function TimelineActivity({ activity }: OwnProps) { +export const TimelineActivity = ({ activity }: OwnProps) => { const beautifiedCreatedAt = beautifyPastDateRelativeToNow(activity.createdAt); const exactCreatedAt = beautifyExactDateTime(activity.createdAt); const body = JSON.parse(activity.body ?? '{}')[0]?.content[0]?.text; @@ -176,4 +176,4 @@ export function TimelineActivity({ activity }: OwnProps) { ); -} +}; diff --git a/front/src/modules/activities/timeline/components/TimelineActivityCardFooter.tsx b/front/src/modules/activities/timeline/components/TimelineActivityCardFooter.tsx index eec207ec9..a753a3857 100644 --- a/front/src/modules/activities/timeline/components/TimelineActivityCardFooter.tsx +++ b/front/src/modules/activities/timeline/components/TimelineActivityCardFooter.tsx @@ -26,26 +26,24 @@ const StyledVerticalSeparator = styled.div` height: 24px; `; -export function TimelineActivityCardFooter({ activity }: OwnProps) { - return ( - <> - {(activity.assignee || activity.dueAt) && ( - - {activity.assignee && ( - - )} - {activity.dueAt && ( - <> - {activity.assignee && } - {beautifyExactDate(activity.dueAt)} - - )} - - )} - - ); -} +export const TimelineActivityCardFooter = ({ activity }: OwnProps) => ( + <> + {(activity.assignee || activity.dueAt) && ( + + {activity.assignee && ( + + )} + {activity.dueAt && ( + <> + {activity.assignee && } + {beautifyExactDate(activity.dueAt)} + + )} + + )} + +); diff --git a/front/src/modules/activities/timeline/components/TimelineActivityTitle.tsx b/front/src/modules/activities/timeline/components/TimelineActivityTitle.tsx index 8a76ca1f4..c296cd4c3 100644 --- a/front/src/modules/activities/timeline/components/TimelineActivityTitle.tsx +++ b/front/src/modules/activities/timeline/components/TimelineActivityTitle.tsx @@ -37,34 +37,29 @@ type OwnProps = { onCompletionChange?: (value: boolean) => void; }; -export function TimelineActivityTitle({ +export const TimelineActivityTitle = ({ title, completed, type, onCompletionChange, -}: OwnProps) { - return ( - - {type === ActivityType.Task && ( - { - event.preventDefault(); - event.stopPropagation(); - onCompletionChange?.(!completed); - }} - > - - - )} - ( + + {type === ActivityType.Task && ( + { + event.preventDefault(); + event.stopPropagation(); + onCompletionChange?.(!completed); + }} > - - - - ); -} + + + )} + + + + +); diff --git a/front/src/modules/activities/timeline/components/TimelineItemsContainer.tsx b/front/src/modules/activities/timeline/components/TimelineItemsContainer.tsx index 00dacd527..246b33f19 100644 --- a/front/src/modules/activities/timeline/components/TimelineItemsContainer.tsx +++ b/front/src/modules/activities/timeline/components/TimelineItemsContainer.tsx @@ -35,9 +35,9 @@ export type TimelineItemsContainerProps = { activities: ActivityForDrawer[]; }; -export function TimelineItemsContainer({ +export const TimelineItemsContainer = ({ activities, -}: TimelineItemsContainerProps) { +}: TimelineItemsContainerProps) => { const theme = useTheme(); return ( @@ -51,4 +51,4 @@ export function TimelineItemsContainer({ ); -} +}; diff --git a/front/src/modules/activities/utils/flatMapAndSortEntityForSelectArrayByName.ts b/front/src/modules/activities/utils/flatMapAndSortEntityForSelectArrayByName.ts index 0c5c14f18..07a0277d8 100644 --- a/front/src/modules/activities/utils/flatMapAndSortEntityForSelectArrayByName.ts +++ b/front/src/modules/activities/utils/flatMapAndSortEntityForSelectArrayByName.ts @@ -1,9 +1,11 @@ import { EntityForSelect } from '@/ui/input/relation-picker/types/EntityForSelect'; -export function flatMapAndSortEntityForSelectArrayOfArrayByName< +export const flatMapAndSortEntityForSelectArrayOfArrayByName = < T extends EntityForSelect, ->(entityForSelectArray: T[][]) { +>( + entityForSelectArray: T[][], +) => { const sortByName = (a: T, b: T) => a.name.localeCompare(b.name); return entityForSelectArray.flatMap((entity) => entity).sort(sortByName); -} +}; diff --git a/front/src/modules/activities/utils/getRelationData.ts b/front/src/modules/activities/utils/getRelationData.ts index 6fe32ab55..a56cf8327 100644 --- a/front/src/modules/activities/utils/getRelationData.ts +++ b/front/src/modules/activities/utils/getRelationData.ts @@ -7,9 +7,9 @@ import { ActivityTargetableEntityType, } from '../types/ActivityTargetableEntity'; -export function getRelationData( +export const getRelationData = ( entities: ActivityTargetableEntity[], -): ActivityTargetCreateManyActivityInput[] { +): ActivityTargetCreateManyActivityInput[] => { const now = new Date().toISOString(); const relationData: ActivityTargetCreateManyActivityInput[] = []; @@ -40,4 +40,4 @@ export function getRelationData( } } return relationData; -} +}; diff --git a/front/src/modules/analytics/hooks/useEventTracker.ts b/front/src/modules/analytics/hooks/useEventTracker.ts index acad4ba30..6cb0fcf4d 100644 --- a/front/src/modules/analytics/hooks/useEventTracker.ts +++ b/front/src/modules/analytics/hooks/useEventTracker.ts @@ -12,7 +12,7 @@ export interface EventData { location: EventLocation; } -export function useEventTracker() { +export const useEventTracker = () => { const [telemetry] = useRecoilState(telemetryState); const [createEventMutation] = useCreateEventMutation(); @@ -29,4 +29,4 @@ export function useEventTracker() { }, [createEventMutation, telemetry], ); -} +}; diff --git a/front/src/modules/analytics/hooks/useTrackEvent.ts b/front/src/modules/analytics/hooks/useTrackEvent.ts index 3743fe50d..8b1958b59 100644 --- a/front/src/modules/analytics/hooks/useTrackEvent.ts +++ b/front/src/modules/analytics/hooks/useTrackEvent.ts @@ -1,7 +1,7 @@ import { EventData, useEventTracker } from './useEventTracker'; -export function useTrackEvent(eventType: string, eventData: EventData) { +export const useTrackEvent = (eventType: string, eventData: EventData) => { const eventTracker = useEventTracker(); return eventTracker(eventType, eventData); -} +}; diff --git a/front/src/modules/apollo/components/ApolloProvider.tsx b/front/src/modules/apollo/components/ApolloProvider.tsx index dded3a368..42ad2edb9 100644 --- a/front/src/modules/apollo/components/ApolloProvider.tsx +++ b/front/src/modules/apollo/components/ApolloProvider.tsx @@ -2,10 +2,10 @@ import { ApolloProvider as ApolloProviderBase } from '@apollo/client'; import { useApolloFactory } from '@/apollo/hooks/useApolloFactory'; -export function ApolloProvider({ children }: React.PropsWithChildren) { +export const ApolloProvider = ({ children }: React.PropsWithChildren) => { const apolloClient = useApolloFactory(); return ( {children} ); -} +}; diff --git a/front/src/modules/apollo/hooks/useApolloFactory.ts b/front/src/modules/apollo/hooks/useApolloFactory.ts index 7e996b531..5272e735d 100644 --- a/front/src/modules/apollo/hooks/useApolloFactory.ts +++ b/front/src/modules/apollo/hooks/useApolloFactory.ts @@ -12,7 +12,7 @@ import { useUpdateEffect } from '~/hooks/useUpdateEffect'; import { ApolloFactory } from '../services/apollo.factory'; -export function useApolloFactory() { +export const useApolloFactory = () => { const apolloRef = useRef | null>(null); const [isDebugMode] = useRecoilState(isDebugModeState); @@ -28,10 +28,10 @@ export function useApolloFactory() { Activity: { fields: { activityTargets: { - merge( + merge: ( _existing: ActivityTarget[] = [], incoming: ActivityTarget[], - ) { + ) => { return [...incoming]; }, }, @@ -47,10 +47,10 @@ export function useApolloFactory() { connectToDevTools: isDebugMode, // We don't want to re-create the client on token change or it will cause infinite loop initialTokenPair: tokenPair, - onTokenPairChange(tokenPair) { + onTokenPairChange: (tokenPair) => { setTokenPair(tokenPair); }, - onUnauthenticatedError() { + onUnauthenticatedError: () => { setTokenPair(null); if ( !isMatchingLocation(AppPath.Verify) && @@ -76,4 +76,4 @@ export function useApolloFactory() { }, [tokenPair]); return apolloClient; -} +}; diff --git a/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts b/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts index 95b5602f5..22a119844 100644 --- a/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts +++ b/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts @@ -13,7 +13,7 @@ import { GetCompaniesQuery, GetPeopleQuery } from '~/generated/graphql'; import { optimisticEffectState } from '../states/optimisticEffectState'; import { OptimisticEffectDefinition } from '../types/OptimisticEffectDefinition'; -export function useOptimisticEffect() { +export const useOptimisticEffect = () => { const apolloClient = useApolloClient(); const registerOptimisticEffect = useRecoilCallback( @@ -29,7 +29,7 @@ export function useOptimisticEffect() { .getLoadable(optimisticEffectState) .getValue(); - function optimisticEffectWriter({ + const optimisticEffectWriter = ({ cache, newData, query, @@ -39,7 +39,7 @@ export function useOptimisticEffect() { newData: unknown[]; variables: OperationVariables; query: DocumentNode; - }) { + }) => { const existingData = cache.readQuery({ query, variables, @@ -76,7 +76,7 @@ export function useOptimisticEffect() { }, }); } - } + }; const optimisticEffect = { key: definition.key, @@ -117,4 +117,4 @@ export function useOptimisticEffect() { registerOptimisticEffect, triggerOptimisticEffects, }; -} +}; diff --git a/front/src/modules/auth/components/Logo.tsx b/front/src/modules/auth/components/Logo.tsx index d12b997a0..0c561e90c 100644 --- a/front/src/modules/auth/components/Logo.tsx +++ b/front/src/modules/auth/components/Logo.tsx @@ -47,7 +47,7 @@ const StyledMainLogo = styled.div` width: 100%; `; -export function Logo({ workspaceLogo, ...props }: Props) { +export const Logo = ({ workspaceLogo, ...props }: Props) => { if (!workspaceLogo) { return ( @@ -64,4 +64,4 @@ export function Logo({ workspaceLogo, ...props }: Props) { ); -} +}; diff --git a/front/src/modules/auth/components/Modal.tsx b/front/src/modules/auth/components/Modal.tsx index d1de7c186..3c7aad04e 100644 --- a/front/src/modules/auth/components/Modal.tsx +++ b/front/src/modules/auth/components/Modal.tsx @@ -10,10 +10,8 @@ const StyledContent = styled(UIModal.Content)` type Props = React.ComponentProps<'div'>; -export function AuthModal({ children, ...restProps }: Props) { - return ( - - {children} - - ); -} +export const AuthModal = ({ children, ...restProps }: Props) => ( + + {children} + +); diff --git a/front/src/modules/auth/components/SubTitle.tsx b/front/src/modules/auth/components/SubTitle.tsx index 69d2e385c..07a5838d4 100644 --- a/front/src/modules/auth/components/SubTitle.tsx +++ b/front/src/modules/auth/components/SubTitle.tsx @@ -1,14 +1,14 @@ -import React from 'react'; +import { JSX, ReactNode } from 'react'; import styled from '@emotion/styled'; type OwnProps = { - children: React.ReactNode; + children: ReactNode; }; const StyledSubTitle = styled.div` color: ${({ theme }) => theme.font.color.secondary}; `; -export function SubTitle({ children }: OwnProps): JSX.Element { - return {children}; -} +export const SubTitle = ({ children }: OwnProps): JSX.Element => ( + {children} +); diff --git a/front/src/modules/auth/components/Title.tsx b/front/src/modules/auth/components/Title.tsx index 0242ce406..4bc01026f 100644 --- a/front/src/modules/auth/components/Title.tsx +++ b/front/src/modules/auth/components/Title.tsx @@ -15,7 +15,7 @@ const StyledTitle = styled.div` margin-top: ${({ theme }) => theme.spacing(4)}; `; -export function Title({ children, animate = false }: Props) { +export const Title = ({ children, animate = false }: Props) => { if (animate) { return ( @@ -25,4 +25,4 @@ export function Title({ children, animate = false }: Props) { } return {children}; -} +}; diff --git a/front/src/modules/auth/hooks/useAuth.ts b/front/src/modules/auth/hooks/useAuth.ts index 6e2ecb1ce..73ac31e72 100644 --- a/front/src/modules/auth/hooks/useAuth.ts +++ b/front/src/modules/auth/hooks/useAuth.ts @@ -12,7 +12,7 @@ import { import { currentUserState } from '../states/currentUserState'; import { tokenPairState } from '../states/tokenPairState'; -export function useAuth() { +export const useAuth = () => { const [, setTokenPair] = useRecoilState(tokenPairState); const [, setCurrentUser] = useRecoilState(currentUserState); @@ -148,4 +148,4 @@ export function useAuth() { signInWithCredentials: handleCrendentialsSignIn, signInWithGoogle: handleGoogleLogin, }; -} +}; diff --git a/front/src/modules/auth/hooks/useIsLogged.ts b/front/src/modules/auth/hooks/useIsLogged.ts index 49bb0129c..1ec60a1cc 100644 --- a/front/src/modules/auth/hooks/useIsLogged.ts +++ b/front/src/modules/auth/hooks/useIsLogged.ts @@ -2,8 +2,8 @@ import { useRecoilState } from 'recoil'; import { tokenPairState } from '../states/tokenPairState'; -export function useIsLogged(): boolean { +export const useIsLogged = (): boolean => { const [tokenPair] = useRecoilState(tokenPairState); return !!tokenPair; -} +}; diff --git a/front/src/modules/auth/hooks/useOnboardingStatus.ts b/front/src/modules/auth/hooks/useOnboardingStatus.ts index 62ce18646..37d7579eb 100644 --- a/front/src/modules/auth/hooks/useOnboardingStatus.ts +++ b/front/src/modules/auth/hooks/useOnboardingStatus.ts @@ -7,9 +7,9 @@ import { OnboardingStatus, } from '../utils/getOnboardingStatus'; -export function useOnboardingStatus(): OnboardingStatus | undefined { +export const useOnboardingStatus = (): OnboardingStatus | undefined => { const [currentUser] = useRecoilState(currentUserState); const isLoggedIn = useIsLogged(); return getOnboardingStatus(isLoggedIn, currentUser); -} +}; diff --git a/front/src/modules/auth/sign-in-up/components/FooterNote.tsx b/front/src/modules/auth/sign-in-up/components/FooterNote.tsx index 5ba151fec..8d6e6f052 100644 --- a/front/src/modules/auth/sign-in-up/components/FooterNote.tsx +++ b/front/src/modules/auth/sign-in-up/components/FooterNote.tsx @@ -11,6 +11,4 @@ const StyledContainer = styled.div` text-align: center; `; -export function FooterNote(props: Props) { - return ; -} +export const FooterNote = (props: Props) => ; diff --git a/front/src/modules/auth/sign-in-up/components/HorizontalSeparator.tsx b/front/src/modules/auth/sign-in-up/components/HorizontalSeparator.tsx index 182924a2c..415bae72d 100644 --- a/front/src/modules/auth/sign-in-up/components/HorizontalSeparator.tsx +++ b/front/src/modules/auth/sign-in-up/components/HorizontalSeparator.tsx @@ -1,3 +1,4 @@ +import { JSX } from 'react'; import styled from '@emotion/styled'; const StyledSeparator = styled.div` @@ -8,6 +9,4 @@ const StyledSeparator = styled.div` width: 100%; `; -export function HorizontalSeparator(): JSX.Element { - return ; -} +export const HorizontalSeparator = (): JSX.Element => ; diff --git a/front/src/modules/auth/sign-in-up/components/SignInUpForm.tsx b/front/src/modules/auth/sign-in-up/components/SignInUpForm.tsx index b8c3f517a..c69b615f6 100644 --- a/front/src/modules/auth/sign-in-up/components/SignInUpForm.tsx +++ b/front/src/modules/auth/sign-in-up/components/SignInUpForm.tsx @@ -41,7 +41,7 @@ const StyledInputContainer = styled.div` margin-bottom: ${({ theme }) => theme.spacing(3)}; `; -export function SignInUpForm() { +export const SignInUpForm = () => { const { authProviders, signInWithGoogle, @@ -220,4 +220,4 @@ export function SignInUpForm() { ); -} +}; diff --git a/front/src/modules/auth/sign-in-up/hooks/useSignInUp.tsx b/front/src/modules/auth/sign-in-up/hooks/useSignInUp.tsx index 945dc7398..b650a875c 100644 --- a/front/src/modules/auth/sign-in-up/hooks/useSignInUp.tsx +++ b/front/src/modules/auth/sign-in-up/hooks/useSignInUp.tsx @@ -42,7 +42,7 @@ const validationSchema = Yup.object() type Form = Yup.InferType; -export function useSignInUp() { +export const useSignInUp = () => { const navigate = useNavigate(); const { enqueueSnackBar } = useSnackBar(); const isMatchingLocation = useIsMatchingLocation(); @@ -183,4 +183,4 @@ export function useSignInUp() { form, workspace: workspace?.findWorkspaceFromInviteHash, }; -} +}; diff --git a/front/src/modules/auth/utils/getOnboardingStatus.ts b/front/src/modules/auth/utils/getOnboardingStatus.ts index a5613edda..79fbac7fb 100644 --- a/front/src/modules/auth/utils/getOnboardingStatus.ts +++ b/front/src/modules/auth/utils/getOnboardingStatus.ts @@ -7,10 +7,10 @@ export enum OnboardingStatus { Completed = 'completed', } -export function getOnboardingStatus( +export const getOnboardingStatus = ( isLoggedIn: boolean, currentUser: CurrentUser | null, -) { +) => { if (!isLoggedIn) { return OnboardingStatus.OngoingUserCreation; } @@ -28,4 +28,4 @@ export function getOnboardingStatus( } return OnboardingStatus.Completed; -} +}; diff --git a/front/src/modules/command-menu/components/CommandMenu.tsx b/front/src/modules/command-menu/components/CommandMenu.tsx index 677771e5e..66ffca3a0 100644 --- a/front/src/modules/command-menu/components/CommandMenu.tsx +++ b/front/src/modules/command-menu/components/CommandMenu.tsx @@ -28,7 +28,7 @@ import { StyledList, } from './CommandMenuStyles'; -export function CommandMenu() { +export const CommandMenu = () => { const { openCommandMenu, closeCommandMenu } = useCommandMenu(); const openActivityRightDrawer = useOpenActivityRightDrawer(); const isCommandMenuOpened = useRecoilValue(isCommandMenuOpenedState); @@ -219,4 +219,4 @@ export function CommandMenu() { ); -} +}; diff --git a/front/src/modules/command-menu/components/CommandMenuItem.tsx b/front/src/modules/command-menu/components/CommandMenuItem.tsx index 09958c98d..d994a2bfa 100644 --- a/front/src/modules/command-menu/components/CommandMenuItem.tsx +++ b/front/src/modules/command-menu/components/CommandMenuItem.tsx @@ -16,13 +16,13 @@ export type CommandMenuItemProps = { shortcuts?: Array; }; -export function CommandMenuItem({ +export const CommandMenuItem = ({ label, to, onClick, Icon, shortcuts, -}: CommandMenuItemProps) { +}: CommandMenuItemProps) => { const navigate = useNavigate(); const { closeCommandMenu } = useCommandMenu(); @@ -51,4 +51,4 @@ export function CommandMenuItem({ onClick={onItemClick} /> ); -} +}; diff --git a/front/src/modules/command-menu/hooks/useCommandMenu.ts b/front/src/modules/command-menu/hooks/useCommandMenu.ts index 95e27625b..99277e2d7 100644 --- a/front/src/modules/command-menu/hooks/useCommandMenu.ts +++ b/front/src/modules/command-menu/hooks/useCommandMenu.ts @@ -8,7 +8,7 @@ import { commandMenuCommandsState } from '../states/commandMenuCommandsState'; import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState'; import { Command } from '../types/Command'; -export function useCommandMenu() { +export const useCommandMenu = () => { const [, setIsCommandMenuOpened] = useRecoilState(isCommandMenuOpenedState); const setCommands = useSetRecoilState(commandMenuCommandsState); const { @@ -16,23 +16,23 @@ export function useCommandMenu() { goBackToPreviousHotkeyScope, } = usePreviousHotkeyScope(); - function openCommandMenu() { + const openCommandMenu = () => { setIsCommandMenuOpened(true); setHotkeyScopeAndMemorizePreviousScope(AppHotkeyScope.CommandMenu); - } + }; - function closeCommandMenu() { + const closeCommandMenu = () => { setIsCommandMenuOpened(false); goBackToPreviousHotkeyScope(); - } + }; - function addToCommandMenu(addCommand: Command[]) { + const addToCommandMenu = (addCommand: Command[]) => { setCommands((prev) => [...prev, ...addCommand]); - } + }; - function setToIntitialCommandMenu() { + const setToIntitialCommandMenu = () => { setCommands(commandMenuCommands); - } + }; return { openCommandMenu, @@ -40,4 +40,4 @@ export function useCommandMenu() { addToCommandMenu, setToIntitialCommandMenu, }; -} +}; diff --git a/front/src/modules/companies/components/AddPersonToCompany.tsx b/front/src/modules/companies/components/AddPersonToCompany.tsx index dac0ad31d..9ec7e0c40 100644 --- a/front/src/modules/companies/components/AddPersonToCompany.tsx +++ b/front/src/modules/companies/components/AddPersonToCompany.tsx @@ -38,13 +38,13 @@ const StyledInputContainer = styled.div` const defaultUsername = { firstName: '', lastName: '' }; -export function AddPersonToCompany({ +export const AddPersonToCompany = ({ companyId, peopleIds, }: { companyId: string; peopleIds?: string[]; -}) { +}) => { const [isDropdownOpen, setIsDropdownOpen] = useState(false); const [isCreationDropdownOpen, setIsCreationDropdownOpen] = useState(false); const [username, setUsername] = useState(defaultUsername); @@ -60,8 +60,8 @@ export function AddPersonToCompany({ goBackToPreviousHotkeyScope, } = usePreviousHotkeyScope(); - function handlePersonSelected(companyId: string) { - return async (newPerson: PersonForSelect | null) => { + const handlePersonSelected = + (companyId: string) => async (newPerson: PersonForSelect | null) => { if (newPerson) { await updatePerson({ variables: { @@ -77,30 +77,31 @@ export function AddPersonToCompany({ handleClosePicker(); } }; - } - function handleClosePicker() { + const handleClosePicker = () => { if (isDropdownOpen) { setIsDropdownOpen(false); goBackToPreviousHotkeyScope(); } - } + }; - function handleOpenPicker() { + const handleOpenPicker = () => { if (!isDropdownOpen) { setIsDropdownOpen(true); setHotkeyScopeAndMemorizePreviousScope( RelationPickerHotkeyScope.RelationPicker, ); } - } + }; - function handleUsernameChange(type: 'firstName' | 'lastName') { - return (name: string): void => + const handleUsernameChange = + (type: 'firstName' | 'lastName') => + (name: string): void => setUsername((prevUserName) => ({ ...prevUserName, [type]: name })); - } - async function handleInputKeyDown(e: React.KeyboardEvent) { + const handleInputKeyDown = async ( + e: React.KeyboardEvent, + ) => { if (e.key !== 'Enter' || (!username.firstName && !username.lastName)) return; const newPersonId = v4(); @@ -116,7 +117,7 @@ export function AddPersonToCompany({ }); setIsCreationDropdownOpen(false); setUsername(defaultUsername); - } + }; return ( @@ -161,4 +162,4 @@ export function AddPersonToCompany({ ); -} +}; diff --git a/front/src/modules/companies/components/CompanyBoardCard.tsx b/front/src/modules/companies/components/CompanyBoardCard.tsx index c7adce276..83b36d2da 100644 --- a/front/src/modules/companies/components/CompanyBoardCard.tsx +++ b/front/src/modules/companies/components/CompanyBoardCard.tsx @@ -100,7 +100,7 @@ const StyledFieldContainer = styled.div` width: 100%; `; -export function CompanyBoardCard() { +export const CompanyBoardCard = () => { const { BoardRecoilScopeContext } = useBoardContext(); const { currentCardSelected, setCurrentCardSelected } = @@ -122,21 +122,19 @@ export function CompanyBoardCard() { return null; } - function PreventSelectOnClickContainer({ + const PreventSelectOnClickContainer = ({ children, }: { children: ReactNode; - }) { - return ( - { - e.stopPropagation(); - }} - > - {children} - - ); - } + }) => ( + { + e.stopPropagation(); + }} + > + {children} + + ); return ( @@ -185,4 +183,4 @@ export function CompanyBoardCard() { ); -} +}; diff --git a/front/src/modules/companies/components/CompanyChip.tsx b/front/src/modules/companies/components/CompanyChip.tsx index d55489234..98248b0e2 100644 --- a/front/src/modules/companies/components/CompanyChip.tsx +++ b/front/src/modules/companies/components/CompanyChip.tsx @@ -7,20 +7,18 @@ type OwnProps = { variant?: EntityChipVariant; }; -export function CompanyChip({ +export const CompanyChip = ({ id, name, pictureUrl, variant = EntityChipVariant.Regular, -}: OwnProps) { - return ( - - ); -} +}: OwnProps) => ( + +); diff --git a/front/src/modules/companies/components/CompanyPicker.tsx b/front/src/modules/companies/components/CompanyPicker.tsx index a75fb57b3..45e915647 100644 --- a/front/src/modules/companies/components/CompanyPicker.tsx +++ b/front/src/modules/companies/components/CompanyPicker.tsx @@ -13,7 +13,7 @@ export type OwnProps = { onCancel?: () => void; }; -export function CompanyPicker({ companyId, onSubmit, onCancel }: OwnProps) { +export const CompanyPicker = ({ companyId, onSubmit, onCancel }: OwnProps) => { const [relationPickerSearchFilter, setRelationPickerSearchFilter] = useRecoilScopedState(relationPickerSearchFilterScopedState); @@ -22,11 +22,11 @@ export function CompanyPicker({ companyId, onSubmit, onCancel }: OwnProps) { selectedIds: companyId ? [companyId] : [], }); - async function handleEntitySelected( + const handleEntitySelected = async ( selectedCompany: EntityForSelect | null | undefined, - ) { + ) => { onSubmit(selectedCompany ?? null); - } + }; useEffect(() => { setRelationPickerSearchFilter(''); @@ -41,4 +41,4 @@ export function CompanyPicker({ companyId, onSubmit, onCancel }: OwnProps) { selectedEntity={companies.selectedEntities[0]} /> ); -} +}; diff --git a/front/src/modules/companies/components/CompanyPickerCell.tsx b/front/src/modules/companies/components/CompanyPickerCell.tsx index 9adf76532..2765261f7 100644 --- a/front/src/modules/companies/components/CompanyPickerCell.tsx +++ b/front/src/modules/companies/components/CompanyPickerCell.tsx @@ -23,13 +23,13 @@ export type CompanyPickerSelectedCompany = EntityForSelect & { domainName: string; }; -export function CompanyPickerCell({ +export const CompanyPickerCell = ({ companyId, onSubmit, onCancel, createModeEnabled, width, -}: OwnProps) { +}: OwnProps) => { const [isCreateMode, setIsCreateMode] = useRecoilScopedState( isCreateModeScopedState, ); @@ -47,18 +47,18 @@ export function CompanyPickerCell({ selectedIds: [companyId ?? ''], }); - async function handleCompanySelected( + const handleCompanySelected = async ( company: CompanyPickerSelectedCompany | null | undefined, - ) { + ) => { onSubmit(company ?? null); - } + }; - function handleStartCreation() { + const handleStartCreation = () => { setIsCreateMode(true); setHotkeyScope(TableHotkeyScope.CellDoubleTextInput); - } + }; - async function handleCreate(firstValue: string, secondValue: string) { + const handleCreate = async (firstValue: string, secondValue: string) => { const insertCompanyRequest = await insertCompany({ variables: { data: { @@ -77,7 +77,7 @@ export function CompanyPickerCell({ domainName: companyCreated.domainName, }); setIsCreateMode(false); - } + }; return isCreateMode ? ( ); -} +}; diff --git a/front/src/modules/companies/components/CompanyProgressPicker.tsx b/front/src/modules/companies/components/CompanyProgressPicker.tsx index 19b4706b7..f384dab36 100644 --- a/front/src/modules/companies/components/CompanyProgressPicker.tsx +++ b/front/src/modules/companies/components/CompanyProgressPicker.tsx @@ -25,11 +25,11 @@ export type OwnProps = { onCancel?: () => void; }; -export function CompanyProgressPicker({ +export const CompanyProgressPicker = ({ companyId, onSubmit, onCancel, -}: OwnProps) { +}: OwnProps) => { const containerRef = useRef(null); const { searchFilter, handleSearchFilterChange } = useEntitySelectSearch(); @@ -53,16 +53,16 @@ export function CompanyProgressPicker({ [currentPipeline], ); - function handlePipelineStageChange(newPipelineStageId: string) { + const handlePipelineStageChange = (newPipelineStageId: string) => { setSelectedPipelineStageId(newPipelineStageId); setIsProgressSelectionUnfolded(false); - } + }; - async function handleEntitySelected( + const handleEntitySelected = async ( selectedCompany: EntityForSelect | null | undefined, - ) { + ) => { onSubmit(selectedCompany ?? null, selectedPipelineStageId); - } + }; useEffect(() => { if (currentPipelineStages?.[0]?.id) { @@ -125,4 +125,4 @@ export function CompanyProgressPicker({ )} ); -} +}; diff --git a/front/src/modules/companies/components/CompanyTeam.tsx b/front/src/modules/companies/components/CompanyTeam.tsx index 877232edf..b531164a5 100644 --- a/front/src/modules/companies/components/CompanyTeam.tsx +++ b/front/src/modules/companies/components/CompanyTeam.tsx @@ -42,7 +42,7 @@ const StyledTitle = styled.div` line-height: ${({ theme }) => theme.text.lineHeight.lg}; `; -export function CompanyTeam({ company }: CompanyTeamPropsType) { +export const CompanyTeam = ({ company }: CompanyTeamPropsType) => { const { data } = useGetPeopleQuery({ variables: { orderBy: [], @@ -77,4 +77,4 @@ export function CompanyTeam({ company }: CompanyTeamPropsType) { )} ); -} +}; diff --git a/front/src/modules/companies/components/FilterDropdownCompanySearchSelect.tsx b/front/src/modules/companies/components/FilterDropdownCompanySearchSelect.tsx index a465da172..39f5e34c6 100644 --- a/front/src/modules/companies/components/FilterDropdownCompanySearchSelect.tsx +++ b/front/src/modules/companies/components/FilterDropdownCompanySearchSelect.tsx @@ -7,7 +7,7 @@ import { filterDropdownSelectedEntityIdScopedState } from '@/ui/view-bar/states/ import { useFilteredSearchCompanyQuery } from '../hooks/useFilteredSearchCompanyQuery'; -export function FilterDropdownCompanySearchSelect() { +export const FilterDropdownCompanySearchSelect = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const filterDropdownSearchInput = useRecoilScopedValue( @@ -30,4 +30,4 @@ export function FilterDropdownCompanySearchSelect() { return ( ); -} +}; diff --git a/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx b/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx index 6ee81bb21..60e388340 100644 --- a/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx +++ b/front/src/modules/companies/components/HooksCompanyBoardEffect.tsx @@ -24,7 +24,7 @@ import { useUpdateCompanyBoardCardIds } from '../hooks/useUpdateBoardCardIds'; import { useUpdateCompanyBoard } from '../hooks/useUpdateCompanyBoardColumns'; import { CompanyBoardRecoilScopeContext } from '../states/recoil-scope-contexts/CompanyBoardRecoilScopeContext'; -export function HooksCompanyBoardEffect() { +export const HooksCompanyBoardEffect = () => { const [, setAvailableFilters] = useRecoilScopedState( availableFiltersScopedState, CompanyBoardRecoilScopeContext, @@ -134,4 +134,4 @@ export function HooksCompanyBoardEffect() { ]); return <>; -} +}; diff --git a/front/src/modules/companies/components/NewCompanyProgressButton.tsx b/front/src/modules/companies/components/NewCompanyProgressButton.tsx index d0255eabe..3e5896657 100644 --- a/front/src/modules/companies/components/NewCompanyProgressButton.tsx +++ b/front/src/modules/companies/components/NewCompanyProgressButton.tsx @@ -12,7 +12,7 @@ import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoi import { useCreateCompanyProgress } from '../hooks/useCreateCompanyProgress'; import { useFilteredSearchCompanyQuery } from '../hooks/useFilteredSearchCompanyQuery'; -export function NewCompanyProgressButton() { +export const NewCompanyProgressButton = () => { const [isCreatingCard, setIsCreatingCard] = useState(false); const pipelineStageId = useContext(BoardColumnIdContext); @@ -25,7 +25,7 @@ export function NewCompanyProgressButton() { const createCompanyProgress = useCreateCompanyProgress(); - function handleEntitySelect(company: any) { + const handleEntitySelect = (company: any) => { setIsCreatingCard(false); goBackToPreviousHotkeyScope(); @@ -38,7 +38,7 @@ export function NewCompanyProgressButton() { } createCompanyProgress(company.id, pipelineStageId); - } + }; const handleNewClick = useCallback(() => { setIsCreatingCard(true); @@ -47,10 +47,10 @@ export function NewCompanyProgressButton() { ); }, [setIsCreatingCard, setHotkeyScopeAndMemorizePreviousScope]); - function handleCancel() { + const handleCancel = () => { goBackToPreviousHotkeyScope(); setIsCreatingCard(false); - } + }; const [relationPickerSearchFilter] = useRecoilScopedState( relationPickerSearchFilterScopedState, @@ -76,4 +76,4 @@ export function NewCompanyProgressButton() { )} ); -} +}; diff --git a/front/src/modules/companies/editable-field/components/CompanyNameEditableField.tsx b/front/src/modules/companies/editable-field/components/CompanyNameEditableField.tsx index 5c50f4642..9964b417e 100644 --- a/front/src/modules/companies/editable-field/components/CompanyNameEditableField.tsx +++ b/front/src/modules/companies/editable-field/components/CompanyNameEditableField.tsx @@ -33,7 +33,7 @@ const StyledEditableTitleInput = styled.input<{ width: calc(100% - ${({ theme }) => theme.spacing(2)}); `; -export function CompanyNameEditableField({ company }: OwnProps) { +export const CompanyNameEditableField = ({ company }: OwnProps) => { const [internalValue, setInternalValue] = useState(company.name); const [updateCompany] = useUpdateOneCompanyMutation(); @@ -42,11 +42,11 @@ export function CompanyNameEditableField({ company }: OwnProps) { setInternalValue(company.name); }, [company.name]); - async function handleChange(newValue: string) { + const handleChange = async (newValue: string) => { setInternalValue(newValue); - } + }; - async function handleSubmit() { + const handleSubmit = async () => { await updateCompany({ variables: { where: { @@ -57,7 +57,7 @@ export function CompanyNameEditableField({ company }: OwnProps) { }, }, }); - } + }; return ( @@ -69,4 +69,4 @@ export function CompanyNameEditableField({ company }: OwnProps) { /> ); -} +}; diff --git a/front/src/modules/companies/hooks/useCompanyQuery.ts b/front/src/modules/companies/hooks/useCompanyQuery.ts index 7deb5b08f..6f76d5975 100644 --- a/front/src/modules/companies/hooks/useCompanyQuery.ts +++ b/front/src/modules/companies/hooks/useCompanyQuery.ts @@ -3,7 +3,7 @@ import { useSetRecoilState } from 'recoil'; import { genericEntitiesFamilyState } from '@/ui/editable-field/states/genericEntitiesFamilyState'; import { useGetCompanyQuery } from '~/generated/graphql'; -export function useCompanyQuery(id: string) { +export const useCompanyQuery = (id: string) => { const updateCompanyShowPage = useSetRecoilState( genericEntitiesFamilyState(id), ); @@ -13,4 +13,4 @@ export function useCompanyQuery(id: string) { updateCompanyShowPage(data?.findUniqueCompany); }, }); -} +}; diff --git a/front/src/modules/companies/hooks/useCompanyTableActionBarEntries.tsx b/front/src/modules/companies/hooks/useCompanyTableActionBarEntries.tsx index 90b25440c..e68c58ca1 100644 --- a/front/src/modules/companies/hooks/useCompanyTableActionBarEntries.tsx +++ b/front/src/modules/companies/hooks/useCompanyTableActionBarEntries.tsx @@ -8,15 +8,15 @@ import { ActivityType } from '~/generated/graphql'; import { useDeleteSelectedComapnies } from './useDeleteCompanies'; -export function useCompanyTableActionBarEntries() { +export const useCompanyTableActionBarEntries = () => { const setActionBarEntries = useSetRecoilState(actionBarEntriesState); const openCreateActivityRightDrawer = useOpenCreateActivityDrawerForSelectedRowIds(); - async function handleActivityClick(type: ActivityType) { + const handleActivityClick = async (type: ActivityType) => { openCreateActivityRightDrawer(type, ActivityTargetableEntityType.Company); - } + }; const deleteSelectedCompanies = useDeleteSelectedComapnies(); return { @@ -40,4 +40,4 @@ export function useCompanyTableActionBarEntries() { }, ]), }; -} +}; diff --git a/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx b/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx index b25d66cab..176ad2582 100644 --- a/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx +++ b/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx @@ -8,15 +8,15 @@ import { ActivityType } from '~/generated/graphql'; import { useDeleteSelectedComapnies } from './useDeleteCompanies'; -export function useCompanyTableContextMenuEntries() { +export const useCompanyTableContextMenuEntries = () => { const setContextMenuEntries = useSetRecoilState(contextMenuEntriesState); const openCreateActivityRightDrawer = useOpenCreateActivityDrawerForSelectedRowIds(); - async function handleButtonClick(type: ActivityType) { + const handleButtonClick = async (type: ActivityType) => { openCreateActivityRightDrawer(type, ActivityTargetableEntityType.Company); - } + }; const deleteSelectedCompanies = useDeleteSelectedComapnies(); @@ -41,4 +41,4 @@ export function useCompanyTableContextMenuEntries() { }, ]), }; -} +}; diff --git a/front/src/modules/companies/hooks/useCreateCompanyProgress.ts b/front/src/modules/companies/hooks/useCreateCompanyProgress.ts index 134c0f70b..b06240922 100644 --- a/front/src/modules/companies/hooks/useCreateCompanyProgress.ts +++ b/front/src/modules/companies/hooks/useCreateCompanyProgress.ts @@ -8,7 +8,7 @@ import { currentPipelineState } from '@/pipeline/states/currentPipelineState'; import { boardCardIdsByColumnIdFamilyState } from '@/ui/board/states/boardCardIdsByColumnIdFamilyState'; import { useCreateOneCompanyPipelineProgressMutation } from '~/generated/graphql'; -export function useCreateCompanyProgress() { +export const useCreateCompanyProgress = () => { const [createOneCompanyPipelineProgress] = useCreateOneCompanyPipelineProgressMutation({ refetchQueries: [ @@ -44,4 +44,4 @@ export function useCreateCompanyProgress() { }, [createOneCompanyPipelineProgress, currentPipeline], ); -} +}; diff --git a/front/src/modules/companies/hooks/useDeleteCompanies.ts b/front/src/modules/companies/hooks/useDeleteCompanies.ts index 87f741ee9..201b28e8b 100644 --- a/front/src/modules/companies/hooks/useDeleteCompanies.ts +++ b/front/src/modules/companies/hooks/useDeleteCompanies.ts @@ -7,7 +7,7 @@ import { selectedRowIdsSelector } from '@/ui/table/states/selectors/selectedRowI import { tableRowIdsState } from '@/ui/table/states/tableRowIdsState'; import { useDeleteManyCompaniesMutation } from '~/generated/graphql'; -export function useDeleteSelectedComapnies() { +export const useDeleteSelectedComapnies = () => { const selectedRowIds = useRecoilValue(selectedRowIdsSelector); const resetRowSelection = useResetTableRowSelection(); @@ -18,7 +18,7 @@ export function useDeleteSelectedComapnies() { const [tableRowIds, setTableRowIds] = useRecoilState(tableRowIdsState); - async function deleteSelectedCompanies() { + const deleteSelectedCompanies = async () => { const rowIdsToDelete = selectedRowIds; resetRowSelection(); @@ -46,7 +46,7 @@ export function useDeleteSelectedComapnies() { }); }, }); - } + }; return deleteSelectedCompanies; -} +}; diff --git a/front/src/modules/companies/hooks/useFilteredSearchCompanyQuery.ts b/front/src/modules/companies/hooks/useFilteredSearchCompanyQuery.ts index fcae76595..76ee3efdd 100644 --- a/front/src/modules/companies/hooks/useFilteredSearchCompanyQuery.ts +++ b/front/src/modules/companies/hooks/useFilteredSearchCompanyQuery.ts @@ -3,7 +3,7 @@ import { useFilteredSearchEntityQuery } from '@/search/hooks/useFilteredSearchEn import { useSearchCompanyQuery } from '~/generated/graphql'; import { getLogoUrlFromDomainName } from '~/utils'; -export function useFilteredSearchCompanyQuery({ +export const useFilteredSearchCompanyQuery = ({ searchFilter, selectedIds = [], limit, @@ -11,7 +11,7 @@ export function useFilteredSearchCompanyQuery({ searchFilter: string; selectedIds?: string[]; limit?: number; -}) { +}) => { return useFilteredSearchEntityQuery({ queryHook: useSearchCompanyQuery, filters: [ @@ -32,4 +32,4 @@ export function useFilteredSearchCompanyQuery({ selectedIds: selectedIds, limit, }); -} +}; diff --git a/front/src/modules/companies/hooks/useSpreadsheetCompanyImport.ts b/front/src/modules/companies/hooks/useSpreadsheetCompanyImport.ts index f32f1af3d..221f66285 100644 --- a/front/src/modules/companies/hooks/useSpreadsheetCompanyImport.ts +++ b/front/src/modules/companies/hooks/useSpreadsheetCompanyImport.ts @@ -9,7 +9,7 @@ import { fieldsForCompany } from '../utils/fieldsForCompany'; export type FieldCompanyMapping = (typeof fieldsForCompany)[number]['key']; -export function useSpreadsheetCompanyImport() { +export const useSpreadsheetCompanyImport = () => { const { openSpreadsheetImport } = useSpreadsheetImport(); const { enqueueSnackBar } = useSnackBar(); @@ -23,7 +23,7 @@ export function useSpreadsheetCompanyImport() { ) => { openSpreadsheetImport({ ...options, - async onSubmit(data) { + onSubmit: async (data) => { // TODO: Add better type checking in spreadsheet import later const createInputs = data.validData.map((company) => ({ id: uuidv4(), @@ -56,4 +56,4 @@ export function useSpreadsheetCompanyImport() { }; return { openCompanySpreadsheetImport }; -} +}; diff --git a/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts b/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts index 921eecb2c..4756b533e 100644 --- a/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts +++ b/front/src/modules/companies/hooks/useUpdateBoardCardIds.ts @@ -4,8 +4,8 @@ import { boardCardIdsByColumnIdFamilyState } from '@/ui/board/states/boardCardId import { boardColumnsState } from '@/ui/board/states/boardColumnsState'; import { GetPipelineProgressQuery } from '~/generated/graphql'; -export function useUpdateCompanyBoardCardIds() { - return useRecoilCallback( +export const useUpdateCompanyBoardCardIds = () => + useRecoilCallback( ({ snapshot, set }) => ( pipelineProgresses: GetPipelineProgressQuery['findManyPipelineProgress'], @@ -27,4 +27,3 @@ export function useUpdateCompanyBoardCardIds() { }, [], ); -} diff --git a/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts b/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts index 85002c8fb..67f282418 100644 --- a/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts +++ b/front/src/modules/companies/hooks/useUpdateCompanyBoardColumns.ts @@ -16,8 +16,8 @@ import { PipelineProgressForBoard, } from '../types/CompanyProgress'; -export function useUpdateCompanyBoard() { - return useRecoilCallback( +export const useUpdateCompanyBoard = () => + useRecoilCallback( ({ set, snapshot }) => ( pipeline: Pipeline, @@ -141,4 +141,3 @@ export function useUpdateCompanyBoard() { }, [], ); -} diff --git a/front/src/modules/companies/table/components/CompanyTable.tsx b/front/src/modules/companies/table/components/CompanyTable.tsx index ac95e9dfa..623922bdb 100644 --- a/front/src/modules/companies/table/components/CompanyTable.tsx +++ b/front/src/modules/companies/table/components/CompanyTable.tsx @@ -21,7 +21,7 @@ import { import { companiesFilters } from '~/pages/companies/companies-filters'; import { companyAvailableSorts } from '~/pages/companies/companies-sorts'; -export function CompanyTable() { +export const CompanyTable = () => { const sortsOrderBy = useRecoilScopedValue( sortsOrderByScopedSelector, TableRecoilScopeContext, @@ -46,7 +46,9 @@ export function CompanyTable() { const { setContextMenuEntries } = useCompanyTableContextMenuEntries(); const { setActionBarEntries } = useCompanyTableActionBarEntries(); - async function updateCompany(variables: UpdateOneCompanyMutationVariables) { + const updateCompany = async ( + variables: UpdateOneCompanyMutationVariables, + ) => { const workspaceMemberAccountOwner = variables.data.accountOwner ? ( await getWorkspaceMember({ @@ -78,7 +80,7 @@ export function CompanyTable() { upsertEntityTableItem(data.updateOneCompany); }, }); - } + }; return ( <> @@ -116,4 +118,4 @@ export function CompanyTable() { ); -} +}; diff --git a/front/src/modules/companies/table/components/CompanyTableMockDataEffect.tsx b/front/src/modules/companies/table/components/CompanyTableMockDataEffect.tsx index 9feb440a5..afdd8f1d5 100644 --- a/front/src/modules/companies/table/components/CompanyTableMockDataEffect.tsx +++ b/front/src/modules/companies/table/components/CompanyTableMockDataEffect.tsx @@ -9,7 +9,7 @@ import { companiesAvailableColumnDefinitions } from '../../constants/companiesAv import { mockedCompaniesData } from './companies-mock-data'; -export function CompanyTableMockDataEffect() { +export const CompanyTableMockDataEffect = () => { const [, setTableColumns] = useRecoilScopedState( tableColumnsScopedState, TableRecoilScopeContext, @@ -23,4 +23,4 @@ export function CompanyTableMockDataEffect() { }, [setEntityTableData, setTableColumns]); return <>; -} +}; diff --git a/front/src/modules/companies/table/components/CompanyTableMockMode.tsx b/front/src/modules/companies/table/components/CompanyTableMockMode.tsx index 68ce0cdd1..c26f7551e 100644 --- a/front/src/modules/companies/table/components/CompanyTableMockMode.tsx +++ b/front/src/modules/companies/table/components/CompanyTableMockMode.tsx @@ -5,7 +5,7 @@ import { useUpdateOneCompanyMutation } from '~/generated/graphql'; import { CompanyTableMockDataEffect } from './CompanyTableMockDataEffect'; -export function CompanyTableMockMode() { +export const CompanyTableMockMode = () => { return ( <> @@ -19,4 +19,4 @@ export function CompanyTableMockMode() { ); -} +}; diff --git a/front/src/modules/debug/components/RecoilDebugObserver.tsx b/front/src/modules/debug/components/RecoilDebugObserver.tsx index d16c76359..e9d69f206 100644 --- a/front/src/modules/debug/components/RecoilDebugObserver.tsx +++ b/front/src/modules/debug/components/RecoilDebugObserver.tsx @@ -14,7 +14,7 @@ const formatTitle = (stateName: string) => { return [parts.join(' '), ...headerCss]; }; -export function RecoilDebugObserverEffect() { +export const RecoilDebugObserverEffect = () => { const snapshot = useRecoilSnapshot(); const isDebugMode = useRecoilValue(isDebugModeState); @@ -42,4 +42,4 @@ export function RecoilDebugObserverEffect() { }, [isDebugMode, snapshot]); return null; -} +}; diff --git a/front/src/modules/favorites/components/Favorites.tsx b/front/src/modules/favorites/components/Favorites.tsx index b5ea9d257..ab7b96054 100644 --- a/front/src/modules/favorites/components/Favorites.tsx +++ b/front/src/modules/favorites/components/Favorites.tsx @@ -13,7 +13,7 @@ const StyledContainer = styled.div` width: 100%; `; -export function Favorites() { +export const Favorites = () => { const { data } = useGetFavoritesQuery(); const favorites = data?.findFavorites; @@ -56,4 +56,4 @@ export function Favorites() { )} ); -} +}; diff --git a/front/src/modules/favorites/hooks/useFavorites.ts b/front/src/modules/favorites/hooks/useFavorites.ts index 0eb0db9bb..a57ef2785 100644 --- a/front/src/modules/favorites/hooks/useFavorites.ts +++ b/front/src/modules/favorites/hooks/useFavorites.ts @@ -10,12 +10,12 @@ import { import { GET_FAVORITES } from '../graphql/queries/getFavorites'; -export function useFavorites() { +export const useFavorites = () => { const [insertCompanyFavoriteMutation] = useInsertCompanyFavoriteMutation(); const [insertPersonFavoriteMutation] = useInsertPersonFavoriteMutation(); const [deleteFavoriteMutation] = useDeleteFavoriteMutation(); - function insertCompanyFavorite(companyId: string) { + const insertCompanyFavorite = (companyId: string) => { insertCompanyFavoriteMutation({ variables: { data: { @@ -27,9 +27,9 @@ export function useFavorites() { getOperationName(GET_COMPANY) ?? '', ], }); - } + }; - function insertPersonFavorite(personId: string) { + const insertPersonFavorite = (personId: string) => { insertPersonFavoriteMutation({ variables: { data: { @@ -41,9 +41,9 @@ export function useFavorites() { getOperationName(GET_PERSON) ?? '', ], }); - } + }; - function deleteCompanyFavorite(companyId: string) { + const deleteCompanyFavorite = (companyId: string) => { deleteFavoriteMutation({ variables: { where: { @@ -57,9 +57,9 @@ export function useFavorites() { getOperationName(GET_COMPANY) ?? '', ], }); - } + }; - function deletePersonFavorite(personId: string) { + const deletePersonFavorite = (personId: string) => { deleteFavoriteMutation({ variables: { where: { @@ -73,7 +73,7 @@ export function useFavorites() { getOperationName(GET_PERSON) ?? '', ], }); - } + }; return { insertCompanyFavorite, @@ -81,4 +81,4 @@ export function useFavorites() { deleteCompanyFavorite, deletePersonFavorite, }; -} +}; diff --git a/front/src/modules/people/components/FilterDropdownPeopleSearchSelect.tsx b/front/src/modules/people/components/FilterDropdownPeopleSearchSelect.tsx index 4a27f662c..c647042b2 100644 --- a/front/src/modules/people/components/FilterDropdownPeopleSearchSelect.tsx +++ b/front/src/modules/people/components/FilterDropdownPeopleSearchSelect.tsx @@ -6,7 +6,7 @@ import { useViewBarContext } from '@/ui/view-bar/hooks/useViewBarContext'; import { filterDropdownSearchInputScopedState } from '@/ui/view-bar/states/filterDropdownSearchInputScopedState'; import { filterDropdownSelectedEntityIdScopedState } from '@/ui/view-bar/states/filterDropdownSelectedEntityIdScopedState'; -export function FilterDropdownPeopleSearchSelect() { +export const FilterDropdownPeopleSearchSelect = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const filterDropdownSearchInput = useRecoilScopedValue( @@ -29,4 +29,4 @@ export function FilterDropdownPeopleSearchSelect() { return ( ); -} +}; diff --git a/front/src/modules/people/components/PeopleCard.tsx b/front/src/modules/people/components/PeopleCard.tsx index 5ecfee447..dbe225f4e 100644 --- a/front/src/modules/people/components/PeopleCard.tsx +++ b/front/src/modules/people/components/PeopleCard.tsx @@ -71,10 +71,10 @@ const StyledJobTitle = styled.div` } `; -export function PeopleCard({ +export const PeopleCard = ({ person, hasBottomBorder = true, -}: PeopleCardProps) { +}: PeopleCardProps) => { const navigate = useNavigate(); const [isHovered, setIsHovered] = useState(false); const [isOptionsOpen, setIsOptionsOpen] = useState(false); @@ -98,22 +98,22 @@ export function PeopleCard({ }, }); - function handleMouseEnter() { + const handleMouseEnter = () => { setIsHovered(true); - } + }; - function handleMouseLeave() { + const handleMouseLeave = () => { if (!isOptionsOpen) { setIsHovered(false); } - } + }; - function handleToggleOptions(e: React.MouseEvent) { + const handleToggleOptions = (e: React.MouseEvent) => { e.stopPropagation(); setIsOptionsOpen(!isOptionsOpen); - } + }; - function handleDetachPerson() { + const handleDetachPerson = () => { updatePerson({ variables: { where: { @@ -127,16 +127,16 @@ export function PeopleCard({ }, refetchQueries: [getOperationName(GET_PEOPLE) ?? ''], }); - } + }; - function handleDeletePerson() { + const handleDeletePerson = () => { deletePerson({ variables: { ids: person.id, }, refetchQueries: [getOperationName(GET_PEOPLE) ?? ''], }); - } + }; return ( ); -} +}; diff --git a/front/src/modules/people/components/PeopleEntityTableDataEffect.tsx b/front/src/modules/people/components/PeopleEntityTableDataEffect.tsx index 7c9e05d61..853056d7d 100644 --- a/front/src/modules/people/components/PeopleEntityTableDataEffect.tsx +++ b/front/src/modules/people/components/PeopleEntityTableDataEffect.tsx @@ -6,7 +6,7 @@ import { import { useSetPeopleEntityTable } from '../hooks/useSetPeopleEntityTable'; -export function PeopleEntityTableDataEffect({ +export const PeopleEntityTableData = ({ orderBy = [ { createdAt: SortOrder.Desc, @@ -16,7 +16,7 @@ export function PeopleEntityTableDataEffect({ }: { orderBy?: PersonOrderByWithRelationInput[]; whereFilters?: any; -}) { +}) => { const setPeopleEntityTable = useSetPeopleEntityTable(); useGetPeopleQuery({ @@ -29,4 +29,4 @@ export function PeopleEntityTableDataEffect({ }); return <>; -} +}; diff --git a/front/src/modules/people/components/PeoplePicker.tsx b/front/src/modules/people/components/PeoplePicker.tsx index c6871f854..14d654507 100644 --- a/front/src/modules/people/components/PeoplePicker.tsx +++ b/front/src/modules/people/components/PeoplePicker.tsx @@ -19,14 +19,14 @@ export type PersonForSelect = EntityForSelect & { entityType: Entity.Person; }; -export function PeoplePicker({ +export const PeoplePicker = ({ personId, companyId, onSubmit, onCancel, onCreate, excludePersonIds, -}: OwnProps) { +}: OwnProps) => { const [relationPickerSearchFilter] = useRecoilScopedState( relationPickerSearchFilterScopedState, ); @@ -60,11 +60,11 @@ export function PeoplePicker({ excludeEntityIds: excludePersonIds, }); - async function handleEntitySelected( + const handleEntitySelected = async ( selectedPerson: PersonForSelect | null | undefined, - ) { + ) => { onSubmit(selectedPerson ?? null); - } + }; return ( ); -} +}; diff --git a/front/src/modules/people/components/PersonChip.tsx b/front/src/modules/people/components/PersonChip.tsx index 6e84cb13c..7fe37c0b7 100644 --- a/front/src/modules/people/components/PersonChip.tsx +++ b/front/src/modules/people/components/PersonChip.tsx @@ -7,20 +7,18 @@ export type PersonChipPropsType = { variant?: EntityChipVariant; }; -export function PersonChip({ +export const PersonChip = ({ id, name, pictureUrl, variant, -}: PersonChipPropsType) { - return ( - - ); -} +}: PersonChipPropsType) => ( + +); diff --git a/front/src/modules/people/editable-field/components/PeopleFullNameEditableField.tsx b/front/src/modules/people/editable-field/components/PeopleFullNameEditableField.tsx index 03afe5092..5bb71451d 100644 --- a/front/src/modules/people/editable-field/components/PeopleFullNameEditableField.tsx +++ b/front/src/modules/people/editable-field/components/PeopleFullNameEditableField.tsx @@ -9,7 +9,7 @@ type OwnProps = { people: Pick; }; -export function PeopleFullNameEditableField({ people }: OwnProps) { +export const PeopleFullNameEditableField = ({ people }: OwnProps) => { const [internalValueFirstName, setInternalValueFirstName] = useState( people.firstName, ); @@ -19,19 +19,19 @@ export function PeopleFullNameEditableField({ people }: OwnProps) { const [updatePeople] = useUpdateOnePersonMutation(); - async function handleChange( + const handleChange = async ( newValueFirstName: string, newValueLastName: string, - ) { + ) => { setInternalValueFirstName(newValueFirstName); setInternalValueLastName(newValueLastName); handleSubmit(newValueFirstName, newValueLastName); - } + }; - async function handleSubmit( + const handleSubmit = async ( newValueFirstName: string, newValueLastName: string, - ) { + ) => { await updatePeople({ variables: { where: { @@ -43,7 +43,7 @@ export function PeopleFullNameEditableField({ people }: OwnProps) { }, }, }); - } + }; return ( @@ -56,4 +56,4 @@ export function PeopleFullNameEditableField({ people }: OwnProps) { /> ); -} +}; diff --git a/front/src/modules/people/hooks/useFilteredSearchPeopleQuery.ts b/front/src/modules/people/hooks/useFilteredSearchPeopleQuery.ts index 72b4a83a8..8781c815c 100644 --- a/front/src/modules/people/hooks/useFilteredSearchPeopleQuery.ts +++ b/front/src/modules/people/hooks/useFilteredSearchPeopleQuery.ts @@ -3,7 +3,7 @@ import { ActivityTargetableEntityForSelect } from '@/activities/types/ActivityTa import { useFilteredSearchEntityQuery } from '@/search/hooks/useFilteredSearchEntityQuery'; import { useSearchPeopleQuery } from '~/generated/graphql'; -export function useFilteredSearchPeopleQuery({ +export const useFilteredSearchPeopleQuery = ({ searchFilter, selectedIds = [], limit, @@ -11,8 +11,8 @@ export function useFilteredSearchPeopleQuery({ searchFilter: string; selectedIds?: string[]; limit?: number; -}) { - return useFilteredSearchEntityQuery({ +}) => + useFilteredSearchEntityQuery({ queryHook: useSearchPeopleQuery, filters: [ { @@ -32,4 +32,3 @@ export function useFilteredSearchPeopleQuery({ } as ActivityTargetableEntityForSelect), limit, }); -} diff --git a/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx b/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx index 348cbd94e..6b2e6ba5b 100644 --- a/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx +++ b/front/src/modules/people/hooks/usePeopleTableContextMenuEntries.tsx @@ -12,15 +12,15 @@ import { ActivityType, useDeleteManyPersonMutation } from '~/generated/graphql'; import { GET_PEOPLE } from '../graphql/queries/getPeople'; -export function usePersonTableContextMenuEntries() { +export const usePersonTableContextMenuEntries = () => { const setContextMenuEntries = useSetRecoilState(contextMenuEntriesState); const openCreateActivityRightDrawer = useOpenCreateActivityDrawerForSelectedRowIds(); - async function handleActivityClick(type: ActivityType) { + const handleActivityClick = async (type: ActivityType) => { openCreateActivityRightDrawer(type, ActivityTargetableEntityType.Person); - } + }; const selectedRowIds = useRecoilValue(selectedRowIdsSelector); const [tableRowIds, setTableRowIds] = useRecoilState(tableRowIdsState); @@ -31,7 +31,7 @@ export function usePersonTableContextMenuEntries() { refetchQueries: [getOperationName(GET_PEOPLE) ?? ''], }); - async function handleDeleteClick() { + const handleDeleteClick = async () => { const rowIdsToDelete = selectedRowIds; resetRowSelection(); @@ -52,7 +52,7 @@ export function usePersonTableContextMenuEntries() { ); }, }); - } + }; return { setContextMenuEntries: () => @@ -75,4 +75,4 @@ export function usePersonTableContextMenuEntries() { }, ]), }; -} +}; diff --git a/front/src/modules/people/hooks/usePersonQuery.ts b/front/src/modules/people/hooks/usePersonQuery.ts index 928ec3a6f..2c7ad4b9e 100644 --- a/front/src/modules/people/hooks/usePersonQuery.ts +++ b/front/src/modules/people/hooks/usePersonQuery.ts @@ -3,7 +3,7 @@ import { useSetRecoilState } from 'recoil'; import { genericEntitiesFamilyState } from '@/ui/editable-field/states/genericEntitiesFamilyState'; import { useGetPersonQuery } from '~/generated/graphql'; -export function usePersonQuery(id: string) { +export const usePersonQuery = (id: string) => { const updatePersonShowPage = useSetRecoilState( genericEntitiesFamilyState(id), ); @@ -13,4 +13,4 @@ export function usePersonQuery(id: string) { updatePersonShowPage(data?.findUniquePerson); }, }); -} +}; diff --git a/front/src/modules/people/hooks/usePersonTableActionBarEntries.tsx b/front/src/modules/people/hooks/usePersonTableActionBarEntries.tsx index 1fc08ed8d..ab1044b07 100644 --- a/front/src/modules/people/hooks/usePersonTableActionBarEntries.tsx +++ b/front/src/modules/people/hooks/usePersonTableActionBarEntries.tsx @@ -12,15 +12,15 @@ import { ActivityType, useDeleteManyPersonMutation } from '~/generated/graphql'; import { GET_PEOPLE } from '../graphql/queries/getPeople'; -export function usePersonTableActionBarEntries() { +export const usePersonTableActionBarEntries = () => { const setActionBarEntries = useSetRecoilState(actionBarEntriesState); const openCreateActivityRightDrawer = useOpenCreateActivityDrawerForSelectedRowIds(); - async function handleActivityClick(type: ActivityType) { + const handleActivityClick = async (type: ActivityType) => { openCreateActivityRightDrawer(type, ActivityTargetableEntityType.Person); - } + }; const selectedRowIds = useRecoilValue(selectedRowIdsSelector); const [tableRowIds, setTableRowIds] = useRecoilState(tableRowIdsState); @@ -31,7 +31,7 @@ export function usePersonTableActionBarEntries() { refetchQueries: [getOperationName(GET_PEOPLE) ?? ''], }); - async function handleDeleteClick() { + const handleDeleteClick = async () => { const rowIdsToDelete = selectedRowIds; resetRowSelection(); @@ -56,7 +56,7 @@ export function usePersonTableActionBarEntries() { }); }, }); - } + }; return { setActionBarEntries: () => @@ -79,4 +79,4 @@ export function usePersonTableActionBarEntries() { }, ]), }; -} +}; diff --git a/front/src/modules/people/hooks/useSetPeopleEntityTable.ts b/front/src/modules/people/hooks/useSetPeopleEntityTable.ts index 6c03ffd5c..54c44d42f 100644 --- a/front/src/modules/people/hooks/useSetPeopleEntityTable.ts +++ b/front/src/modules/people/hooks/useSetPeopleEntityTable.ts @@ -21,7 +21,7 @@ import { peopleLinkedinUrlFamilyState } from '../states/peopleLinkedinUrlFamilyS import { peopleNameCellFamilyState } from '../states/peopleNamesFamilyState'; import { peoplePhoneFamilyState } from '../states/peoplePhoneFamilyState'; -export function useSetPeopleEntityTable() { +export const useSetPeopleEntityTable = () => { const resetTableRowSelection = useResetTableRowSelection(); const tableContextScopeId = useRecoilScopeId(TableRecoilScopeContext); @@ -134,4 +134,4 @@ export function useSetPeopleEntityTable() { }, [currentLocation, resetTableRowSelection, tableContextScopeId], ); -} +}; diff --git a/front/src/modules/people/hooks/useSpreadsheetPersonImport.ts b/front/src/modules/people/hooks/useSpreadsheetPersonImport.ts index ccee9edaf..4ba3c74a7 100644 --- a/front/src/modules/people/hooks/useSpreadsheetPersonImport.ts +++ b/front/src/modules/people/hooks/useSpreadsheetPersonImport.ts @@ -9,7 +9,7 @@ import { fieldsForPerson } from '../utils/fieldsForPerson'; export type FieldPersonMapping = (typeof fieldsForPerson)[number]['key']; -export function useSpreadsheetPersonImport() { +export const useSpreadsheetPersonImport = () => { const { openSpreadsheetImport } = useSpreadsheetImport(); const { enqueueSnackBar } = useSnackBar(); @@ -23,7 +23,7 @@ export function useSpreadsheetPersonImport() { ) => { openSpreadsheetImport({ ...options, - async onSubmit(data) { + onSubmit: async (data) => { // TODO: Add better type checking in spreadsheet import later const createInputs = data.validData.map((person) => ({ id: uuidv4(), @@ -59,4 +59,4 @@ export function useSpreadsheetPersonImport() { }; return { openPersonSpreadsheetImport }; -} +}; diff --git a/front/src/modules/people/table/components/PeopleTable.tsx b/front/src/modules/people/table/components/PeopleTable.tsx index 809cc216c..67bbc2d26 100644 --- a/front/src/modules/people/table/components/PeopleTable.tsx +++ b/front/src/modules/people/table/components/PeopleTable.tsx @@ -20,7 +20,7 @@ import { import { peopleFilters } from '~/pages/people/people-filters'; import { peopleAvailableSorts } from '~/pages/people/people-sorts'; -export function PeopleTable() { +export const PeopleTable = () => { const sortsOrderBy = useRecoilScopedValue( sortsOrderByScopedSelector, TableRecoilScopeContext, @@ -43,9 +43,9 @@ export function PeopleTable() { const { setContextMenuEntries } = usePersonTableContextMenuEntries(); const { setActionBarEntries } = usePersonTableActionBarEntries(); - function handleImport() { + const handleImport = () => { openPersonSpreadsheetImport(); - } + }; return ( <> @@ -93,4 +93,4 @@ export function PeopleTable() { ); -} +}; diff --git a/front/src/modules/pipeline/components/PipelineAddButton.tsx b/front/src/modules/pipeline/components/PipelineAddButton.tsx index fc46f7870..4b1a529cd 100644 --- a/front/src/modules/pipeline/components/PipelineAddButton.tsx +++ b/front/src/modules/pipeline/components/PipelineAddButton.tsx @@ -9,7 +9,7 @@ import { EntityForSelect } from '@/ui/input/relation-picker/types/EntityForSelec import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope'; import { useSnackBar } from '@/ui/snack-bar/hooks/useSnackBar'; -export function PipelineAddButton() { +export const PipelineAddButton = () => { const { enqueueSnackBar } = useSnackBar(); const { closeDropdownButton, toggleDropdownButton } = useDropdownButton({ @@ -18,10 +18,10 @@ export function PipelineAddButton() { const createCompanyProgress = useCreateCompanyProgress(); - function handleCompanySelected( + const handleCompanySelected = ( selectedCompany: EntityForSelect | null, selectedPipelineStageId: string | null, - ) { + ) => { if (!selectedCompany?.id) { enqueueSnackBar( 'There was a problem with the company selection, please retry.', @@ -49,7 +49,7 @@ export function PipelineAddButton() { } closeDropdownButton(); createCompanyProgress(selectedCompany.id, selectedPipelineStageId); - } + }; return ( ); -} +}; diff --git a/front/src/modules/search/hooks/useFilteredSearchEntityQuery.ts b/front/src/modules/search/hooks/useFilteredSearchEntityQuery.ts index 90a1d87d6..443a2f9df 100644 --- a/front/src/modules/search/hooks/useFilteredSearchEntityQuery.ts +++ b/front/src/modules/search/hooks/useFilteredSearchEntityQuery.ts @@ -32,7 +32,7 @@ const DEFAULT_SEARCH_REQUEST_LIMIT = 10; // TODO: use this for all search queries, because we need selectedEntities and entitiesToSelect each time we want to search // Filtered entities to select are -export function useFilteredSearchEntityQuery< +export const useFilteredSearchEntityQuery = < EntityType extends ExtractEntityTypeFromQueryResponse & { id: string; }, @@ -72,7 +72,7 @@ export function useFilteredSearchEntityQuery< mappingFunction: (entity: EntityType) => CustomEntityForSelect; limit?: number; excludeEntityIds?: string[]; -}): EntitiesForMultipleEntitySelect { +}): EntitiesForMultipleEntitySelect => { const { loading: selectedEntitiesLoading, data: selectedEntitiesData } = queryHook({ variables: { @@ -158,4 +158,4 @@ export function useFilteredSearchEntityQuery< filteredSelectedEntitiesLoading || selectedEntitiesLoading, }; -} +}; diff --git a/front/src/modules/settings/components/SettingsNavbar.tsx b/front/src/modules/settings/components/SettingsNavbar.tsx index d78c7e173..2ce93ff90 100644 --- a/front/src/modules/settings/components/SettingsNavbar.tsx +++ b/front/src/modules/settings/components/SettingsNavbar.tsx @@ -14,7 +14,7 @@ import NavItem from '@/ui/navbar/components/NavItem'; import NavTitle from '@/ui/navbar/components/NavTitle'; import SubMenuNavbar from '@/ui/navbar/components/SubMenuNavbar'; -export function SettingsNavbar() { +export const SettingsNavbar = () => { const navigate = useNavigate(); const { signOut } = useAuth(); @@ -76,4 +76,4 @@ export function SettingsNavbar() { ); -} +}; diff --git a/front/src/modules/settings/profile/components/DeleteAccount.tsx b/front/src/modules/settings/profile/components/DeleteAccount.tsx index 14e72d942..85563f40e 100644 --- a/front/src/modules/settings/profile/components/DeleteAccount.tsx +++ b/front/src/modules/settings/profile/components/DeleteAccount.tsx @@ -10,7 +10,7 @@ import { ConfirmationModal } from '@/ui/modal/components/ConfirmationModal'; import { H2Title } from '@/ui/typography/components/H2Title'; import { useDeleteUserAccountMutation } from '~/generated/graphql'; -export function DeleteAccount() { +export const DeleteAccount = () => { const [isDeleteAccountModalOpen, setIsDeleteAccountModalOpen] = useState(false); @@ -61,4 +61,4 @@ export function DeleteAccount() { /> ); -} +}; diff --git a/front/src/modules/settings/profile/components/DeleteWorkspace.tsx b/front/src/modules/settings/profile/components/DeleteWorkspace.tsx index ac1ad9482..f8289bdb2 100644 --- a/front/src/modules/settings/profile/components/DeleteWorkspace.tsx +++ b/front/src/modules/settings/profile/components/DeleteWorkspace.tsx @@ -12,7 +12,7 @@ import { import { H2Title } from '@/ui/typography/components/H2Title'; import { useDeleteCurrentWorkspaceMutation } from '~/generated/graphql'; -export function DeleteWorkspace() { +export const DeleteWorkspace = () => { const [isDeleteWorkSpaceModalOpen, setIsDeleteWorkSpaceModalOpen] = useState(false); @@ -58,4 +58,4 @@ export function DeleteWorkspace() { /> ); -} +}; diff --git a/front/src/modules/settings/profile/components/EmailField.tsx b/front/src/modules/settings/profile/components/EmailField.tsx index ae145142b..482a87284 100644 --- a/front/src/modules/settings/profile/components/EmailField.tsx +++ b/front/src/modules/settings/profile/components/EmailField.tsx @@ -3,7 +3,7 @@ import { useRecoilValue } from 'recoil'; import { currentUserState } from '@/auth/states/currentUserState'; import { TextInputSettings } from '@/ui/input/text/components/TextInputSettings'; -export function EmailField() { +export const EmailField = () => { const currentUser = useRecoilValue(currentUserState); return ( @@ -14,4 +14,4 @@ export function EmailField() { key={'email-' + currentUser?.id} /> ); -} +}; diff --git a/front/src/modules/settings/profile/components/NameFields.tsx b/front/src/modules/settings/profile/components/NameFields.tsx index 59ff09a49..20b1cb517 100644 --- a/front/src/modules/settings/profile/components/NameFields.tsx +++ b/front/src/modules/settings/profile/components/NameFields.tsx @@ -23,11 +23,11 @@ type OwnProps = { onLastNameUpdate?: (lastName: string) => void; }; -export function NameFields({ +export const NameFields = ({ autoSave = true, onFirstNameUpdate, onLastNameUpdate, -}: OwnProps) { +}: OwnProps) => { const currentUser = useRecoilValue(currentUserState); const [firstName, setFirstName] = useState(currentUser?.firstName ?? ''); @@ -102,4 +102,4 @@ export function NameFields({ /> ); -} +}; diff --git a/front/src/modules/settings/profile/components/ProfilePictureUploader.tsx b/front/src/modules/settings/profile/components/ProfilePictureUploader.tsx index b68f4d095..58ed70dcf 100644 --- a/front/src/modules/settings/profile/components/ProfilePictureUploader.tsx +++ b/front/src/modules/settings/profile/components/ProfilePictureUploader.tsx @@ -11,7 +11,7 @@ import { useUploadProfilePictureMutation, } from '~/generated/graphql'; -export function ProfilePictureUploader() { +export const ProfilePictureUploader = () => { const [uploadPicture, { loading: isUploading }] = useUploadProfilePictureMutation(); const [removePicture] = useRemoveProfilePictureMutation(); @@ -20,7 +20,7 @@ export function ProfilePictureUploader() { useState(null); const [errorMessage, setErrorMessage] = useState(null); - async function handleUpload(file: File) { + const handleUpload = async (file: File) => { if (!file) { return; } @@ -47,16 +47,16 @@ export function ProfilePictureUploader() { } catch (error) { setErrorMessage('An error occured while uploading the picture.'); } - } + }; - async function handleAbort() { + const handleAbort = async () => { if (uploadController) { uploadController.abort(); setUploadController(null); } - } + }; - async function handleRemove() { + const handleRemove = async () => { await removePicture({ variables: { where: { @@ -65,7 +65,7 @@ export function ProfilePictureUploader() { }, refetchQueries: [getOperationName(GET_CURRENT_USER) ?? ''], }); - } + }; return ( ); -} +}; diff --git a/front/src/modules/settings/profile/components/ToggleField.tsx b/front/src/modules/settings/profile/components/ToggleField.tsx index d041460bc..3cd20fdb3 100644 --- a/front/src/modules/settings/profile/components/ToggleField.tsx +++ b/front/src/modules/settings/profile/components/ToggleField.tsx @@ -5,14 +5,14 @@ import { Toggle } from '@/ui/input/components/Toggle'; import { useSnackBar } from '@/ui/snack-bar/hooks/useSnackBar'; import { useUpdateAllowImpersonationMutation } from '~/generated/graphql'; -export function ToggleField() { +export const ToggleField = () => { const { enqueueSnackBar } = useSnackBar(); const currentUser = useRecoilValue(currentUserState); const [updateAllowImpersonation] = useUpdateAllowImpersonationMutation(); - async function handleChange(value: boolean) { + const handleChange = async (value: boolean) => { try { const { data, errors } = await updateAllowImpersonation({ variables: { @@ -28,7 +28,7 @@ export function ToggleField() { variant: 'error', }); } - } + }; return ( ); -} +}; diff --git a/front/src/modules/settings/workspace/components/NameField.tsx b/front/src/modules/settings/workspace/components/NameField.tsx index 89a088133..57b444113 100644 --- a/front/src/modules/settings/workspace/components/NameField.tsx +++ b/front/src/modules/settings/workspace/components/NameField.tsx @@ -22,7 +22,7 @@ type OwnProps = { onNameUpdate?: (name: string) => void; }; -export function NameField({ autoSave = true, onNameUpdate }: OwnProps) { +export const NameField = ({ autoSave = true, onNameUpdate }: OwnProps) => { const [currentUser] = useRecoilState(currentUserState); const workspace = currentUser?.workspaceMember?.workspace; @@ -77,4 +77,4 @@ export function NameField({ autoSave = true, onNameUpdate }: OwnProps) { /> ); -} +}; diff --git a/front/src/modules/settings/workspace/components/WorkspaceLogoUploader.tsx b/front/src/modules/settings/workspace/components/WorkspaceLogoUploader.tsx index d26eb839f..4ef54582c 100644 --- a/front/src/modules/settings/workspace/components/WorkspaceLogoUploader.tsx +++ b/front/src/modules/settings/workspace/components/WorkspaceLogoUploader.tsx @@ -10,11 +10,11 @@ import { useUploadWorkspaceLogoMutation, } from '~/generated/graphql'; -export function WorkspaceLogoUploader() { +export const WorkspaceLogoUploader = () => { const [uploadLogo] = useUploadWorkspaceLogoMutation(); const [removeLogo] = useRemoveWorkspaceLogoMutation(); const [currentUser] = useRecoilState(currentUserState); - async function onUpload(file: File) { + const onUpload = async (file: File) => { if (!file) { return; } @@ -24,13 +24,13 @@ export function WorkspaceLogoUploader() { }, refetchQueries: [getOperationName(GET_CURRENT_USER) ?? ''], }); - } + }; - async function onRemove() { + const onRemove = async () => { await removeLogo({ refetchQueries: [getOperationName(GET_CURRENT_USER) ?? ''], }); - } + }; return ( ); -} +}; diff --git a/front/src/modules/spreadsheet-import/components/Heading.tsx b/front/src/modules/spreadsheet-import/components/Heading.tsx index e523162c6..04c6873da 100644 --- a/front/src/modules/spreadsheet-import/components/Heading.tsx +++ b/front/src/modules/spreadsheet-import/components/Heading.tsx @@ -27,11 +27,9 @@ const StyledDescription = styled.span` text-align: center; `; -export function Heading({ title, description, ...props }: Props) { - return ( - - {title} - {description && {description}} - - ); -} +export const Heading = ({ title, description, ...props }: Props) => ( + + {title} + {description && {description}} + +); diff --git a/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx b/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx index 2d5365f76..2cc54f3bc 100644 --- a/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx +++ b/front/src/modules/spreadsheet-import/components/MatchColumnSelect.tsx @@ -76,21 +76,21 @@ export const MatchColumnSelect = ({ leading: true, }); - function handleFilterChange(event: React.ChangeEvent) { + const handleFilterChange = (event: React.ChangeEvent) => { const value = event.currentTarget.value; setSearchFilter(value); debouncedHandleSearchFilter(value); - } + }; - function handleDropdownItemClick() { + const handleDropdownItemClick = () => { setIsOpen(true); - } + }; - function handleChange(option: ReadonlyDeep) { + const handleChange = (option: ReadonlyDeep) => { onChange(option); setIsOpen(false); - } + }; useListenClickOutside({ refs: [dropdownContainerRef], diff --git a/front/src/modules/spreadsheet-import/components/ModalCloseButton.tsx b/front/src/modules/spreadsheet-import/components/ModalCloseButton.tsx index 0361390f9..a95bcb05f 100644 --- a/front/src/modules/spreadsheet-import/components/ModalCloseButton.tsx +++ b/front/src/modules/spreadsheet-import/components/ModalCloseButton.tsx @@ -35,7 +35,7 @@ export const ModalCloseButton = ({ onClose }: ModalCloseButtonProps) => { const { enqueueDialog } = useDialog(); - function handleClose() { + const handleClose = () => { if (activeStep === -1) { onClose(); return; @@ -48,7 +48,7 @@ export const ModalCloseButton = ({ onClose }: ModalCloseButtonProps) => { { title: 'Exit', onClick: onClose, accent: 'danger', role: 'confirm' }, ], }); - } + }; return ( diff --git a/front/src/modules/spreadsheet-import/hooks/useSpreadsheetImport.tsx b/front/src/modules/spreadsheet-import/hooks/useSpreadsheetImport.tsx index a9628f574..0259faad6 100644 --- a/front/src/modules/spreadsheet-import/hooks/useSpreadsheetImport.tsx +++ b/front/src/modules/spreadsheet-import/hooks/useSpreadsheetImport.tsx @@ -3,7 +3,7 @@ import { useSetRecoilState } from 'recoil'; import { spreadsheetImportState } from '@/spreadsheet-import/states/spreadsheetImportState'; import { SpreadsheetOptions } from '@/spreadsheet-import/types'; -export function useSpreadsheetImport() { +export const useSpreadsheetImport = () => { const setSpreadSheetImport = useSetRecoilState(spreadsheetImportState); const openSpreadsheetImport = ( @@ -16,4 +16,4 @@ export function useSpreadsheetImport() { }; return { openSpreadsheetImport }; -} +}; diff --git a/front/src/modules/spreadsheet-import/provider/components/SpreadsheetImportProvider.tsx b/front/src/modules/spreadsheet-import/provider/components/SpreadsheetImportProvider.tsx index 27a01fd12..ccfa3e3bc 100644 --- a/front/src/modules/spreadsheet-import/provider/components/SpreadsheetImportProvider.tsx +++ b/front/src/modules/spreadsheet-import/provider/components/SpreadsheetImportProvider.tsx @@ -14,12 +14,12 @@ export const SpreadsheetImportProvider = ( spreadsheetImportState, ); - function handleClose() { + const handleClose = () => { setSpreadsheetImport({ isOpen: false, options: null, }); - } + }; return ( <> diff --git a/front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx b/front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx index 43a0c72b7..37f98d38b 100644 --- a/front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx +++ b/front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx @@ -5,7 +5,7 @@ import { Radio } from '@/ui/input/components/Radio'; const SELECT_COLUMN_KEY = 'select-row'; -function SelectFormatter(props: FormatterProps) { +const SelectFormatter = (props: FormatterProps) => { const [isRowSelected, onRowSelectionChange] = useRowSelection(); return ( @@ -21,7 +21,7 @@ function SelectFormatter(props: FormatterProps) { }} /> ); -} +}; export const SelectColumn: Column = { key: SELECT_COLUMN_KEY, diff --git a/front/src/modules/spreadsheet-import/steps/components/__stories__/MatchColumns.stories.tsx b/front/src/modules/spreadsheet-import/steps/components/__stories__/MatchColumns.stories.tsx index 5af288cf0..a0ee07056 100644 --- a/front/src/modules/spreadsheet-import/steps/components/__stories__/MatchColumns.stories.tsx +++ b/front/src/modules/spreadsheet-import/steps/components/__stories__/MatchColumns.stories.tsx @@ -56,16 +56,14 @@ const mockData = [ ['10', 'Jere', 'Shier', 'jshier8@comcast.net', 'Agender', '10.143.62.161'], ]; -export function Default() { - return ( - - null}> - null} - /> - - - ); -} +export const Default = () => ( + + null}> + null} + /> + + +); diff --git a/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectHeader.stories.tsx b/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectHeader.stories.tsx index 5be1b7cb5..8a28599df 100644 --- a/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectHeader.stories.tsx +++ b/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectHeader.stories.tsx @@ -18,15 +18,13 @@ const meta: Meta = { export default meta; -export function Default() { - return ( - - null}> - Promise.resolve()} - /> - - - ); -} +export const Default = () => ( + + null}> + Promise.resolve()} + /> + + +); diff --git a/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectSheet.stories.tsx b/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectSheet.stories.tsx index 342121f97..4ec059c66 100644 --- a/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectSheet.stories.tsx +++ b/front/src/modules/spreadsheet-import/steps/components/__stories__/SelectSheet.stories.tsx @@ -17,15 +17,13 @@ export default meta; const sheetNames = ['Sheet1', 'Sheet2', 'Sheet3']; -export function Default() { - return ( - - null}> - Promise.resolve()} - /> - - - ); -} +export const Default = () => ( + + null}> + Promise.resolve()} + /> + + +); diff --git a/front/src/modules/spreadsheet-import/steps/components/__stories__/Upload.stories.tsx b/front/src/modules/spreadsheet-import/steps/components/__stories__/Upload.stories.tsx index 5502bd1ca..8ff0b5808 100644 --- a/front/src/modules/spreadsheet-import/steps/components/__stories__/Upload.stories.tsx +++ b/front/src/modules/spreadsheet-import/steps/components/__stories__/Upload.stories.tsx @@ -15,12 +15,10 @@ const meta: Meta = { export default meta; -export function Default() { - return ( - - null}> - Promise.resolve()} /> - - - ); -} +export const Default = () => ( + + null}> + Promise.resolve()} /> + + +); diff --git a/front/src/modules/spreadsheet-import/steps/components/__stories__/Validation.stories.tsx b/front/src/modules/spreadsheet-import/steps/components/__stories__/Validation.stories.tsx index 748c3105e..32fc9547b 100644 --- a/front/src/modules/spreadsheet-import/steps/components/__stories__/Validation.stories.tsx +++ b/front/src/modules/spreadsheet-import/steps/components/__stories__/Validation.stories.tsx @@ -20,12 +20,10 @@ export default meta; const file = new File([''], 'file.csv'); -export function Default() { - return ( - - null}> - - - - ); -} +export const Default = () => ( + + null}> + + + +); diff --git a/front/src/modules/ui/action-bar/components/ActionBar.tsx b/front/src/modules/ui/action-bar/components/ActionBar.tsx index 3257bc954..21f9101e1 100644 --- a/front/src/modules/ui/action-bar/components/ActionBar.tsx +++ b/front/src/modules/ui/action-bar/components/ActionBar.tsx @@ -33,7 +33,7 @@ const StyledContainerActionBar = styled.div` z-index: 1; `; -export function ActionBar({ selectedIds }: OwnProps) { +export const ActionBar = ({ selectedIds }: OwnProps) => { const actionBarOpen = useRecoilValue(actionBarOpenState); const contextMenuIsOpen = useRecoilValue(contextMenuIsOpenState); const actionBarEntries = useRecoilValue(actionBarEntriesState); @@ -55,4 +55,4 @@ export function ActionBar({ selectedIds }: OwnProps) { ))} ); -} +}; diff --git a/front/src/modules/ui/action-bar/components/ActionBarItem.tsx b/front/src/modules/ui/action-bar/components/ActionBarItem.tsx index 568f30cda..bf012bdcd 100644 --- a/front/src/modules/ui/action-bar/components/ActionBarItem.tsx +++ b/front/src/modules/ui/action-bar/components/ActionBarItem.tsx @@ -39,12 +39,12 @@ const StyledButtonLabel = styled.div` margin-left: ${({ theme }) => theme.spacing(2)}; `; -export function ActionBarItem({ +export const ActionBarItem = ({ label, Icon, accent = 'standard', onClick, -}: OwnProps) { +}: OwnProps) => { const theme = useTheme(); return ( @@ -52,4 +52,4 @@ export function ActionBarItem({ {label} ); -} +}; diff --git a/front/src/modules/ui/action-bar/components/__stories__/ActionBar.stories.tsx b/front/src/modules/ui/action-bar/components/__stories__/ActionBar.stories.tsx index 28ece6a49..04934e580 100644 --- a/front/src/modules/ui/action-bar/components/__stories__/ActionBar.stories.tsx +++ b/front/src/modules/ui/action-bar/components/__stories__/ActionBar.stories.tsx @@ -11,13 +11,13 @@ import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator'; import { actionBarOpenState } from '../../states/actionBarIsOpenState'; import { ActionBar } from '../ActionBar'; -function FilledActionBar(props: { selectedIds: string[] }) { +const FilledActionBar = (props: { selectedIds: string[] }) => { const { setActionBarEntries } = useCompanyTableActionBarEntries(); setActionBarEntries(); const setActionBarOpenState = useSetRecoilState(actionBarOpenState); setActionBarOpenState(true); return ; -} +}; const meta: Meta = { title: 'UI/ActionBar/ActionBar', diff --git a/front/src/modules/ui/board/components/BoardColumn.tsx b/front/src/modules/ui/board/components/BoardColumn.tsx index bedf04b65..c15deab73 100644 --- a/front/src/modules/ui/board/components/BoardColumn.tsx +++ b/front/src/modules/ui/board/components/BoardColumn.tsx @@ -64,7 +64,7 @@ export type BoardColumnProps = { stageId: string; }; -export function BoardColumn({ +export const BoardColumn = ({ color, title, onDelete, @@ -74,7 +74,7 @@ export function BoardColumn({ isFirstColumn, numChildren, stageId, -}: BoardColumnProps) { +}: BoardColumnProps) => { const [isBoardColumnMenuOpen, setIsBoardColumnMenuOpen] = React.useState(false); @@ -83,17 +83,17 @@ export function BoardColumn({ goBackToPreviousHotkeyScope, } = usePreviousHotkeyScope(); - function handleTitleClick() { + const handleTitleClick = () => { setIsBoardColumnMenuOpen(true); setHotkeyScopeAndMemorizePreviousScope(BoardColumnHotkeyScope.BoardColumn, { goto: false, }); - } + }; - function handleClose() { + const handleClose = () => { goBackToPreviousHotkeyScope(); setIsBoardColumnMenuOpen(false); - } + }; return ( @@ -115,4 +115,4 @@ export function BoardColumn({ {children} ); -} +}; diff --git a/front/src/modules/ui/board/components/BoardColumnEditTitleMenu.tsx b/front/src/modules/ui/board/components/BoardColumnEditTitleMenu.tsx index 860234d90..eb589ba8c 100644 --- a/front/src/modules/ui/board/components/BoardColumnEditTitleMenu.tsx +++ b/front/src/modules/ui/board/components/BoardColumnEditTitleMenu.tsx @@ -54,12 +54,12 @@ export const COLUMN_COLOR_OPTIONS: ColumnColorOption[] = [ { name: 'Gray', id: 'gray' }, ]; -export function BoardColumnEditTitleMenu({ +export const BoardColumnEditTitleMenu = ({ onClose, onTitleEdit, title, color, -}: BoardColumnEditTitleMenuProps) { +}: BoardColumnEditTitleMenuProps) => { const [internalValue, setInternalValue] = useState(title); const debouncedOnUpdateTitle = debounce( (newTitle) => onTitleEdit(newTitle, color), @@ -94,4 +94,4 @@ export function BoardColumnEditTitleMenu({ ))} ); -} +}; diff --git a/front/src/modules/ui/board/components/BoardColumnMenu.tsx b/front/src/modules/ui/board/components/BoardColumnMenu.tsx index c92c8562d..6b7a3871d 100644 --- a/front/src/modules/ui/board/components/BoardColumnMenu.tsx +++ b/front/src/modules/ui/board/components/BoardColumnMenu.tsx @@ -42,14 +42,14 @@ type OwnProps = { type Menu = 'actions' | 'add' | 'title'; -export function BoardColumnMenu({ +export const BoardColumnMenu = ({ color, onClose, onDelete, onTitleEdit, stageId, title, -}: OwnProps) { +}: OwnProps) => { const [currentMenu, setCurrentMenu] = useState('actions'); const [, setBoardColumns] = useRecoilState(boardColumnsState); @@ -59,9 +59,9 @@ export function BoardColumnMenu({ const { enqueueSnackBar } = useSnackBar(); const createCompanyProgress = useCreateCompanyProgress(); - function handleCompanySelected( + const handleCompanySelected = ( selectedCompany: EntityForSelect | null | undefined, - ) { + ) => { if (!selectedCompany?.id) { enqueueSnackBar( 'There was a problem with the company selection, please retry.', @@ -78,7 +78,7 @@ export function BoardColumnMenu({ createCompanyProgress(selectedCompany.id, stageId); closeMenu(); - } + }; const { setHotkeyScopeAndMemorizePreviousScope, @@ -98,14 +98,14 @@ export function BoardColumnMenu({ closeMenu(); }, [closeMenu, onDelete, setBoardColumns, stageId]); - function setMenu(menu: Menu) { + const setMenu = (menu: Menu) => { if (menu === 'add') { setHotkeyScopeAndMemorizePreviousScope( RelationPickerHotkeyScope.RelationPicker, ); } setCurrentMenu(menu); - } + }; const [relationPickerSearchFilter] = useRecoilScopedState( relationPickerSearchFilterScopedState, ); @@ -168,4 +168,4 @@ export function BoardColumnMenu({ ); -} +}; diff --git a/front/src/modules/ui/board/components/BoardHeader.tsx b/front/src/modules/ui/board/components/BoardHeader.tsx index d3923187c..dd558a12b 100644 --- a/front/src/modules/ui/board/components/BoardHeader.tsx +++ b/front/src/modules/ui/board/components/BoardHeader.tsx @@ -25,7 +25,7 @@ export type BoardHeaderProps = { onStageAdd?: (boardColumn: BoardColumnDefinition) => void; }; -export function BoardHeader({ className, onStageAdd }: BoardHeaderProps) { +export const BoardHeader = ({ className, onStageAdd }: BoardHeaderProps) => { const { onCurrentViewSubmit, ...viewBarContextProps } = useContext(ViewBarContext); @@ -103,4 +103,4 @@ export function BoardHeader({ className, onStageAdd }: BoardHeaderProps) { ); -} +}; diff --git a/front/src/modules/ui/board/components/BoardOptionsDropdown.tsx b/front/src/modules/ui/board/components/BoardOptionsDropdown.tsx index d8a84cac0..c081dcf05 100644 --- a/front/src/modules/ui/board/components/BoardOptionsDropdown.tsx +++ b/front/src/modules/ui/board/components/BoardOptionsDropdown.tsx @@ -13,10 +13,10 @@ type BoardOptionsDropdownProps = Pick< 'customHotkeyScope' | 'onStageAdd' >; -export function BoardOptionsDropdown({ +export const BoardOptionsDropdown = ({ customHotkeyScope, onStageAdd, -}: BoardOptionsDropdownProps) { +}: BoardOptionsDropdownProps) => { return ( } @@ -30,4 +30,4 @@ export function BoardOptionsDropdown({ dropdownId={BoardOptionsDropdownKey} /> ); -} +}; diff --git a/front/src/modules/ui/board/components/BoardOptionsDropdownButton.tsx b/front/src/modules/ui/board/components/BoardOptionsDropdownButton.tsx index f1f14eca1..0aea750bb 100644 --- a/front/src/modules/ui/board/components/BoardOptionsDropdownButton.tsx +++ b/front/src/modules/ui/board/components/BoardOptionsDropdownButton.tsx @@ -3,14 +3,14 @@ import { useDropdownButton } from '@/ui/dropdown/hooks/useDropdownButton'; import { BoardOptionsDropdownKey } from '../types/BoardOptionsDropdownKey'; -export function BoardOptionsDropdownButton() { +export const BoardOptionsDropdownButton = () => { const { isDropdownButtonOpen, toggleDropdownButton } = useDropdownButton({ dropdownId: BoardOptionsDropdownKey, }); - function handleClick() { + const handleClick = () => { toggleDropdownButton(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/board/components/BoardOptionsDropdownContent.tsx b/front/src/modules/ui/board/components/BoardOptionsDropdownContent.tsx index d137d9926..be739fa4c 100644 --- a/front/src/modules/ui/board/components/BoardOptionsDropdownContent.tsx +++ b/front/src/modules/ui/board/components/BoardOptionsDropdownContent.tsx @@ -58,10 +58,10 @@ type ColumnForCreate = { title: string; }; -export function BoardOptionsDropdownContent({ +export const BoardOptionsDropdownContent = ({ customHotkeyScope, onStageAdd, -}: BoardOptionsDropdownContentProps) { +}: BoardOptionsDropdownContentProps) => { const theme = useTheme(); const BoardRecoilScopeContext = @@ -250,4 +250,4 @@ export function BoardOptionsDropdownContent({ )} ); -} +}; diff --git a/front/src/modules/ui/board/components/EntityBoard.tsx b/front/src/modules/ui/board/components/EntityBoard.tsx index d59d8a453..6d81cc218 100644 --- a/front/src/modules/ui/board/components/EntityBoard.tsx +++ b/front/src/modules/ui/board/components/EntityBoard.tsx @@ -48,12 +48,12 @@ const StyledBoardHeader = styled(BoardHeader)` z-index: 1; ` as typeof BoardHeader; -export function EntityBoard({ +export const EntityBoard = ({ boardOptions, onColumnAdd, onColumnDelete, onEditColumnTitle, -}: EntityBoardProps) { +}: EntityBoardProps) => { const [boardColumns] = useRecoilState(boardColumnsState); const setCardSelected = useSetCardSelected(); @@ -158,4 +158,4 @@ export function EntityBoard({ ) : ( <> ); -} +}; diff --git a/front/src/modules/ui/board/components/EntityBoardActionBar.tsx b/front/src/modules/ui/board/components/EntityBoardActionBar.tsx index 1a5430193..2173c45e0 100644 --- a/front/src/modules/ui/board/components/EntityBoardActionBar.tsx +++ b/front/src/modules/ui/board/components/EntityBoardActionBar.tsx @@ -5,7 +5,7 @@ import { ActionBar } from '@/ui/action-bar/components/ActionBar'; import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSelector'; -export function EntityBoardActionBar() { +export const EntityBoardActionBar = () => { const selectedCardIds = useRecoilValue(selectedCardIdsSelector); return ; -} +}; diff --git a/front/src/modules/ui/board/components/EntityBoardCard.tsx b/front/src/modules/ui/board/components/EntityBoardCard.tsx index 2a509070c..92a671bca 100644 --- a/front/src/modules/ui/board/components/EntityBoardCard.tsx +++ b/front/src/modules/ui/board/components/EntityBoardCard.tsx @@ -7,7 +7,7 @@ import { contextMenuPositionState } from '@/ui/context-menu/states/contextMenuPo import { useCurrentCardSelected } from '../hooks/useCurrentCardSelected'; import { BoardOptions } from '../types/BoardOptions'; -export function EntityBoardCard({ +export const EntityBoardCard = ({ boardOptions, cardId, index, @@ -15,13 +15,13 @@ export function EntityBoardCard({ boardOptions: BoardOptions; cardId: string; index: number; -}) { +}) => { const setContextMenuPosition = useSetRecoilState(contextMenuPositionState); const setContextMenuOpenState = useSetRecoilState(contextMenuIsOpenState); const { setCurrentCardSelected } = useCurrentCardSelected(); - function handleContextMenu(event: React.MouseEvent) { + const handleContextMenu = (event: React.MouseEvent) => { event.preventDefault(); setCurrentCardSelected(true); setContextMenuPosition({ @@ -29,7 +29,7 @@ export function EntityBoardCard({ y: event.clientY, }); setContextMenuOpenState(true); - } + }; return ( @@ -48,4 +48,4 @@ export function EntityBoardCard({ )} ); -} +}; diff --git a/front/src/modules/ui/board/components/EntityBoardColumn.tsx b/front/src/modules/ui/board/components/EntityBoardColumn.tsx index 433418ab4..66203ab00 100644 --- a/front/src/modules/ui/board/components/EntityBoardColumn.tsx +++ b/front/src/modules/ui/board/components/EntityBoardColumn.tsx @@ -47,7 +47,7 @@ const BoardColumnCardsContainer = ({ ); }; -export function EntityBoardColumn({ +export const EntityBoardColumn = ({ boardOptions, column, onDelete, @@ -57,7 +57,7 @@ export function EntityBoardColumn({ column: BoardColumnDefinition; onDelete?: (columnId: string) => void; onTitleEdit: (columnId: string, title: string, color: string) => void; -}) { +}) => { const boardColumnId = useContext(BoardColumnIdContext) ?? ''; const boardColumnTotal = useRecoilValue( @@ -68,9 +68,9 @@ export function EntityBoardColumn({ boardCardIdsByColumnIdFamilyState(boardColumnId ?? ''), ); - function handleTitleEdit(title: string, color: string) { + const handleTitleEdit = (title: string, color: string) => { onTitleEdit(boardColumnId, title, color); - } + }; return ( @@ -116,4 +116,4 @@ export function EntityBoardColumn({ )} ); -} +}; diff --git a/front/src/modules/ui/board/components/EntityBoardContextMenu.tsx b/front/src/modules/ui/board/components/EntityBoardContextMenu.tsx index 2ff9a61f3..0efbd9346 100644 --- a/front/src/modules/ui/board/components/EntityBoardContextMenu.tsx +++ b/front/src/modules/ui/board/components/EntityBoardContextMenu.tsx @@ -5,7 +5,7 @@ import { ContextMenu } from '@/ui/context-menu/components/ContextMenu'; import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSelector'; -export function EntityBoardContextMenu() { +export const EntityBoardContextMenu = () => { const selectedCardIds = useRecoilValue(selectedCardIdsSelector); return ; -} +}; diff --git a/front/src/modules/ui/board/components/NewButton.tsx b/front/src/modules/ui/board/components/NewButton.tsx index 6a96b5484..dcb588806 100644 --- a/front/src/modules/ui/board/components/NewButton.tsx +++ b/front/src/modules/ui/board/components/NewButton.tsx @@ -24,7 +24,7 @@ type OwnProps = { onClick: () => void; }; -export function NewButton({ onClick }: OwnProps) { +export const NewButton = ({ onClick }: OwnProps) => { const theme = useTheme(); return ( @@ -33,4 +33,4 @@ export function NewButton({ onClick }: OwnProps) { New ); -} +}; diff --git a/front/src/modules/ui/board/hooks/useBoardActionBarEntries.tsx b/front/src/modules/ui/board/hooks/useBoardActionBarEntries.tsx index 1103a919b..46796d0ea 100644 --- a/front/src/modules/ui/board/hooks/useBoardActionBarEntries.tsx +++ b/front/src/modules/ui/board/hooks/useBoardActionBarEntries.tsx @@ -5,7 +5,7 @@ import { IconTrash } from '@/ui/icon'; import { useDeleteSelectedBoardCards } from './useDeleteSelectedBoardCards'; -export function useBoardActionBarEntries() { +export const useBoardActionBarEntries = () => { const setActionBarEntries = useSetRecoilState(actionBarEntriesState); const deleteSelectedBoardCards = useDeleteSelectedBoardCards(); @@ -21,4 +21,4 @@ export function useBoardActionBarEntries() { }, ]), }; -} +}; diff --git a/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx b/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx index 0bdb9d7e1..11b419473 100644 --- a/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx +++ b/front/src/modules/ui/board/hooks/useBoardContextMenuEntries.tsx @@ -5,7 +5,7 @@ import { IconTrash } from '@/ui/icon'; import { useDeleteSelectedBoardCards } from './useDeleteSelectedBoardCards'; -export function useBoardContextMenuEntries() { +export const useBoardContextMenuEntries = () => { const setContextMenuEntries = useSetRecoilState(contextMenuEntriesState); const deleteSelectedBoardCards = useDeleteSelectedBoardCards(); @@ -21,4 +21,4 @@ export function useBoardContextMenuEntries() { }, ]), }; -} +}; diff --git a/front/src/modules/ui/board/hooks/useCurrentCardSelected.ts b/front/src/modules/ui/board/hooks/useCurrentCardSelected.ts index fe01040c4..18e266860 100644 --- a/front/src/modules/ui/board/hooks/useCurrentCardSelected.ts +++ b/front/src/modules/ui/board/hooks/useCurrentCardSelected.ts @@ -7,7 +7,7 @@ import { BoardCardIdContext } from '../contexts/BoardCardIdContext'; import { activeCardIdsState } from '../states/activeCardIdsState'; import { isCardSelectedFamilyState } from '../states/isCardSelectedFamilyState'; -export function useCurrentCardSelected() { +export const useCurrentCardSelected = () => { const currentCardId = useContext(BoardCardIdContext); const isCardSelected = useRecoilValue( @@ -58,4 +58,4 @@ export function useCurrentCardSelected() { setCurrentCardSelected, unselectAllActiveCards, }; -} +}; diff --git a/front/src/modules/ui/board/hooks/useDeleteSelectedBoardCards.ts b/front/src/modules/ui/board/hooks/useDeleteSelectedBoardCards.ts index e1a82ca1b..31c2121aa 100644 --- a/front/src/modules/ui/board/hooks/useDeleteSelectedBoardCards.ts +++ b/front/src/modules/ui/board/hooks/useDeleteSelectedBoardCards.ts @@ -8,7 +8,7 @@ import { selectedCardIdsSelector } from '../states/selectors/selectedCardIdsSele import { useRemoveCardIds } from './useRemoveCardIds'; -export function useDeleteSelectedBoardCards() { +export const useDeleteSelectedBoardCards = () => { const selectedCardIds = useRecoilValue(selectedCardIdsSelector); const removeCardIds = useRemoveCardIds(); @@ -16,7 +16,7 @@ export function useDeleteSelectedBoardCards() { refetchQueries: [getOperationName(GET_PIPELINES) ?? ''], }); - async function deleteSelectedBoardCards() { + const deleteSelectedBoardCards = async () => { await deletePipelineProgress({ variables: { ids: selectedCardIds, @@ -34,7 +34,7 @@ export function useDeleteSelectedBoardCards() { }); }, }); - } + }; return deleteSelectedBoardCards; -} +}; diff --git a/front/src/modules/ui/board/hooks/useRemoveCardIds.ts b/front/src/modules/ui/board/hooks/useRemoveCardIds.ts index 871cc887f..739b5ab4e 100644 --- a/front/src/modules/ui/board/hooks/useRemoveCardIds.ts +++ b/front/src/modules/ui/board/hooks/useRemoveCardIds.ts @@ -4,8 +4,8 @@ import { useRecoilCallback } from 'recoil'; import { boardCardIdsByColumnIdFamilyState } from '../states/boardCardIdsByColumnIdFamilyState'; import { boardColumnsState } from '../states/boardColumnsState'; -export function useRemoveCardIds() { - return useRecoilCallback( +export const useRemoveCardIds = () => + useRecoilCallback( ({ snapshot, set }) => (cardIdToRemove: string[]) => { const boardColumns = snapshot @@ -24,4 +24,3 @@ export function useRemoveCardIds() { }, [], ); -} diff --git a/front/src/modules/ui/board/hooks/useSetCardSelected.ts b/front/src/modules/ui/board/hooks/useSetCardSelected.ts index e279cc35a..1bd5482b2 100644 --- a/front/src/modules/ui/board/hooks/useSetCardSelected.ts +++ b/front/src/modules/ui/board/hooks/useSetCardSelected.ts @@ -5,7 +5,7 @@ import { actionBarOpenState } from '@/ui/action-bar/states/actionBarIsOpenState' import { activeCardIdsState } from '../states/activeCardIdsState'; import { isCardSelectedFamilyState } from '../states/isCardSelectedFamilyState'; -export function useSetCardSelected() { +export const useSetCardSelected = () => { const setActionBarOpenState = useSetRecoilState(actionBarOpenState); return useRecoilCallback( @@ -26,4 +26,4 @@ export function useSetCardSelected() { } }, ); -} +}; diff --git a/front/src/modules/ui/board/hooks/useUpdateBoardCardIds.ts b/front/src/modules/ui/board/hooks/useUpdateBoardCardIds.ts index fd32c243b..3051f2715 100644 --- a/front/src/modules/ui/board/hooks/useUpdateBoardCardIds.ts +++ b/front/src/modules/ui/board/hooks/useUpdateBoardCardIds.ts @@ -5,8 +5,8 @@ import { boardCardIdsByColumnIdFamilyState } from '../states/boardCardIdsByColum import { boardColumnsState } from '../states/boardColumnsState'; import { BoardColumnDefinition } from '../types/BoardColumnDefinition'; -export function useUpdateBoardCardIds() { - return useRecoilCallback( +export const useUpdateBoardCardIds = () => + useRecoilCallback( ({ snapshot, set }) => (result: DropResult) => { const currentBoardColumns = snapshot @@ -83,4 +83,3 @@ export function useUpdateBoardCardIds() { }, [], ); -} diff --git a/front/src/modules/ui/button/components/Button.tsx b/front/src/modules/ui/button/components/Button.tsx index 3dc0b498c..b43b7fa5a 100644 --- a/front/src/modules/ui/button/components/Button.tsx +++ b/front/src/modules/ui/button/components/Button.tsx @@ -277,7 +277,7 @@ const StyledButton = styled.button< } `; -export function Button({ +export const Button = ({ className, Icon, title, @@ -290,7 +290,7 @@ export function Button({ disabled = false, focus = false, onClick, -}: ButtonProps) { +}: ButtonProps) => { const theme = useTheme(); return ( @@ -310,4 +310,4 @@ export function Button({ {soon && } ); -} +}; diff --git a/front/src/modules/ui/button/components/ButtonGroup.tsx b/front/src/modules/ui/button/components/ButtonGroup.tsx index a4e73e6de..2be5c3aa1 100644 --- a/front/src/modules/ui/button/components/ButtonGroup.tsx +++ b/front/src/modules/ui/button/components/ButtonGroup.tsx @@ -16,44 +16,42 @@ export type ButtonGroupProps = Pick< children: ReactNode[]; }; -export function ButtonGroup({ +export const ButtonGroup = ({ className, children, variant, size, accent, -}: ButtonGroupProps) { - return ( - - {React.Children.map(children, (child, index) => { - if (!React.isValidElement(child)) return null; +}: ButtonGroupProps) => ( + + {React.Children.map(children, (child, index) => { + if (!React.isValidElement(child)) return null; - let position: ButtonPosition; + let position: ButtonPosition; - if (index === 0) { - position = 'left'; - } else if (index === children.length - 1) { - position = 'right'; - } else { - position = 'middle'; - } + if (index === 0) { + position = 'left'; + } else if (index === children.length - 1) { + position = 'right'; + } else { + position = 'middle'; + } - const additionalProps: any = { position, variant, accent, size }; + const additionalProps: any = { position, variant, accent, size }; - if (variant) { - additionalProps.variant = variant; - } + if (variant) { + additionalProps.variant = variant; + } - if (accent) { - additionalProps.variant = variant; - } + if (accent) { + additionalProps.variant = variant; + } - if (size) { - additionalProps.size = size; - } + if (size) { + additionalProps.size = size; + } - return React.cloneElement(child, additionalProps); - })} - - ); -} + return React.cloneElement(child, additionalProps); + })} + +); diff --git a/front/src/modules/ui/button/components/FloatingButton.tsx b/front/src/modules/ui/button/components/FloatingButton.tsx index f93ee9565..17f1d8ef1 100644 --- a/front/src/modules/ui/button/components/FloatingButton.tsx +++ b/front/src/modules/ui/button/components/FloatingButton.tsx @@ -79,7 +79,7 @@ const StyledButton = styled.button< } `; -export function FloatingButton({ +export const FloatingButton = ({ className, Icon, title, @@ -88,7 +88,7 @@ export function FloatingButton({ applyShadow = true, disabled = false, focus = false, -}: FloatingButtonProps) { +}: FloatingButtonProps) => { const theme = useTheme(); return ( ); -} +}; diff --git a/front/src/modules/ui/button/components/FloatingButtonGroup.tsx b/front/src/modules/ui/button/components/FloatingButtonGroup.tsx index 0cb34cc6a..efe8b6211 100644 --- a/front/src/modules/ui/button/components/FloatingButtonGroup.tsx +++ b/front/src/modules/ui/button/components/FloatingButtonGroup.tsx @@ -15,36 +15,34 @@ export type FloatingButtonGroupProps = Pick & { children: React.ReactElement[]; }; -export function FloatingButtonGroup({ +export const FloatingButtonGroup = ({ children, size, -}: FloatingButtonGroupProps) { - return ( - - {React.Children.map(children, (child, index) => { - let position: FloatingButtonPosition; +}: FloatingButtonGroupProps) => ( + + {React.Children.map(children, (child, index) => { + let position: FloatingButtonPosition; - if (index === 0) { - position = 'left'; - } else if (index === children.length - 1) { - position = 'right'; - } else { - position = 'middle'; - } + if (index === 0) { + position = 'left'; + } else if (index === children.length - 1) { + position = 'right'; + } else { + position = 'middle'; + } - const additionalProps: any = { - position, - size, - applyShadow: false, - applyBlur: false, - }; + const additionalProps: any = { + position, + size, + applyShadow: false, + applyBlur: false, + }; - if (size) { - additionalProps.size = size; - } + if (size) { + additionalProps.size = size; + } - return React.cloneElement(child, additionalProps); - })} - - ); -} + return React.cloneElement(child, additionalProps); + })} + +); diff --git a/front/src/modules/ui/button/components/FloatingIconButton.tsx b/front/src/modules/ui/button/components/FloatingIconButton.tsx index 6307cf56d..e0f76edf7 100644 --- a/front/src/modules/ui/button/components/FloatingIconButton.tsx +++ b/front/src/modules/ui/button/components/FloatingIconButton.tsx @@ -99,7 +99,7 @@ const StyledButton = styled.button< } `; -export function FloatingIconButton({ +export const FloatingIconButton = ({ className, Icon, size = 'small', @@ -109,7 +109,7 @@ export function FloatingIconButton({ disabled = false, focus = false, onClick, -}: FloatingIconButtonProps) { +}: FloatingIconButtonProps) => { const theme = useTheme(); return ( } ); -} +}; diff --git a/front/src/modules/ui/button/components/FloatingIconButtonGroup.tsx b/front/src/modules/ui/button/components/FloatingIconButtonGroup.tsx index 9a0d08656..95edb5446 100644 --- a/front/src/modules/ui/button/components/FloatingIconButtonGroup.tsx +++ b/front/src/modules/ui/button/components/FloatingIconButtonGroup.tsx @@ -29,32 +29,30 @@ export type FloatingIconButtonGroupProps = Pick< }[]; }; -export function FloatingIconButtonGroup({ +export const FloatingIconButtonGroup = ({ iconButtons, size, -}: FloatingIconButtonGroupProps) { - return ( - - {iconButtons.map(({ Icon, onClick }, index) => { - const position: FloatingIconButtonPosition = - index === 0 - ? 'left' - : index === iconButtons.length - 1 - ? 'right' - : 'middle'; +}: FloatingIconButtonGroupProps) => ( + + {iconButtons.map(({ Icon, onClick }, index) => { + const position: FloatingIconButtonPosition = + index === 0 + ? 'left' + : index === iconButtons.length - 1 + ? 'right' + : 'middle'; - return ( - - ); - })} - - ); -} + return ( + + ); + })} + +); diff --git a/front/src/modules/ui/button/components/IconButton.tsx b/front/src/modules/ui/button/components/IconButton.tsx index b266a7e6d..234187c6a 100644 --- a/front/src/modules/ui/button/components/IconButton.tsx +++ b/front/src/modules/ui/button/components/IconButton.tsx @@ -269,7 +269,7 @@ const StyledButton = styled.button< } `; -export function IconButton({ +export const IconButton = ({ className, Icon, variant = 'primary', @@ -280,7 +280,7 @@ export function IconButton({ focus = false, dataTestId, onClick, -}: IconButtonProps) { +}: IconButtonProps) => { const theme = useTheme(); return ( } ); -} +}; diff --git a/front/src/modules/ui/button/components/IconButtonGroup.tsx b/front/src/modules/ui/button/components/IconButtonGroup.tsx index 32f6ad415..c6c0495bb 100644 --- a/front/src/modules/ui/button/components/IconButtonGroup.tsx +++ b/front/src/modules/ui/button/components/IconButtonGroup.tsx @@ -24,33 +24,31 @@ export type IconButtonGroupProps = Pick< }[]; }; -export function IconButtonGroup({ +export const IconButtonGroup = ({ accent, iconButtons, size, variant, -}: IconButtonGroupProps) { - return ( - - {iconButtons.map(({ Icon, onClick }, index) => { - const position: IconButtonPosition = - index === 0 - ? 'left' - : index === iconButtons.length - 1 - ? 'right' - : 'middle'; +}: IconButtonGroupProps) => ( + + {iconButtons.map(({ Icon, onClick }, index) => { + const position: IconButtonPosition = + index === 0 + ? 'left' + : index === iconButtons.length - 1 + ? 'right' + : 'middle'; - return ( - - ); - })} - - ); -} + return ( + + ); + })} + +); diff --git a/front/src/modules/ui/button/components/LightButton.tsx b/front/src/modules/ui/button/components/LightButton.tsx index 2ae8e6e5e..609f266e5 100644 --- a/front/src/modules/ui/button/components/LightButton.tsx +++ b/front/src/modules/ui/button/components/LightButton.tsx @@ -74,7 +74,7 @@ const StyledButton = styled.button< } `; -export function LightButton({ +export const LightButton = ({ className, icon: initialIcon, title, @@ -83,7 +83,7 @@ export function LightButton({ disabled = false, focus = false, onClick, -}: LightButtonProps) { +}: LightButtonProps) => { const icon = useMemo(() => { if (!initialIcon || !React.isValidElement(initialIcon)) { return null; @@ -107,4 +107,4 @@ export function LightButton({ {title} ); -} +}; diff --git a/front/src/modules/ui/button/components/LightIconButton.tsx b/front/src/modules/ui/button/components/LightIconButton.tsx index 88195b247..e8d8aea14 100644 --- a/front/src/modules/ui/button/components/LightIconButton.tsx +++ b/front/src/modules/ui/button/components/LightIconButton.tsx @@ -78,7 +78,7 @@ const StyledButton = styled.button< } `; -export function LightIconButton({ +export const LightIconButton = ({ className, Icon, active = false, @@ -87,7 +87,7 @@ export function LightIconButton({ disabled = false, focus = false, onClick, -}: LightIconButtonProps) { +}: LightIconButtonProps) => { const theme = useTheme(); return ( } ); -} +}; diff --git a/front/src/modules/ui/button/components/MainButton.tsx b/front/src/modules/ui/button/components/MainButton.tsx index 063d1c9a8..1861ca7ad 100644 --- a/front/src/modules/ui/button/components/MainButton.tsx +++ b/front/src/modules/ui/button/components/MainButton.tsx @@ -91,13 +91,13 @@ type MainButtonProps = Props & { Icon?: IconComponent; }; -export function MainButton({ +export const MainButton = ({ Icon, title, fullWidth = false, variant = 'primary', ...props -}: MainButtonProps) { +}: MainButtonProps) => { const theme = useTheme(); return ( @@ -105,4 +105,4 @@ export function MainButton({ {title} ); -} +}; diff --git a/front/src/modules/ui/button/components/RoundedIconButton.tsx b/front/src/modules/ui/button/components/RoundedIconButton.tsx index afd5546f2..bf8092581 100644 --- a/front/src/modules/ui/button/components/RoundedIconButton.tsx +++ b/front/src/modules/ui/button/components/RoundedIconButton.tsx @@ -33,7 +33,10 @@ type RoundedIconButtonProps = { Icon: IconComponent; } & React.ButtonHTMLAttributes; -export function RoundedIconButton({ Icon, ...props }: RoundedIconButtonProps) { +export const RoundedIconButton = ({ + Icon, + ...props +}: RoundedIconButtonProps) => { const theme = useTheme(); return ( @@ -41,4 +44,4 @@ export function RoundedIconButton({ Icon, ...props }: RoundedIconButtonProps) { {} ); -} +}; diff --git a/front/src/modules/ui/checkmark/components/AnimatedCheckmark.tsx b/front/src/modules/ui/checkmark/components/AnimatedCheckmark.tsx index 3f2d94e6a..2940e1fcf 100644 --- a/front/src/modules/ui/checkmark/components/AnimatedCheckmark.tsx +++ b/front/src/modules/ui/checkmark/components/AnimatedCheckmark.tsx @@ -7,32 +7,30 @@ export type CheckmarkProps = React.ComponentProps & { size?: number; }; -export function AnimatedCheckmark({ +export const AnimatedCheckmark = ({ isAnimating = false, color = '#FFF', duration = 0.5, size = 28, ...restProps -}: CheckmarkProps) { - return ( - - - - ); -} +}: CheckmarkProps) => ( + + + +); diff --git a/front/src/modules/ui/checkmark/components/Checkmark.tsx b/front/src/modules/ui/checkmark/components/Checkmark.tsx index f41e1e62f..4fee1c44b 100644 --- a/front/src/modules/ui/checkmark/components/Checkmark.tsx +++ b/front/src/modules/ui/checkmark/components/Checkmark.tsx @@ -16,7 +16,7 @@ const StyledContainer = styled.div` export type CheckmarkProps = React.ComponentPropsWithoutRef<'div'>; -export function Checkmark(props: CheckmarkProps) { +export const Checkmark = (props: CheckmarkProps) => { const theme = useTheme(); return ( @@ -24,4 +24,4 @@ export function Checkmark(props: CheckmarkProps) { ); -} +}; diff --git a/front/src/modules/ui/chip/components/Chip.tsx b/front/src/modules/ui/chip/components/Chip.tsx index bcea96033..c152c9918 100644 --- a/front/src/modules/ui/chip/components/Chip.tsx +++ b/front/src/modules/ui/chip/components/Chip.tsx @@ -114,7 +114,7 @@ const StyledLabel = styled.span` white-space: nowrap; `; -export function Chip({ +export const Chip = ({ size = ChipSize.Small, label, disabled = false, @@ -125,23 +125,21 @@ export function Chip({ accent = ChipAccent.TextPrimary, maxWidth, className, -}: OwnProps) { - return ( - - {leftComponent} - - - - {rightComponent} - - ); -} +}: OwnProps) => ( + + {leftComponent} + + + + {rightComponent} + +); diff --git a/front/src/modules/ui/chip/components/EntityChip.tsx b/front/src/modules/ui/chip/components/EntityChip.tsx index 08dc134c3..25d7c49a2 100644 --- a/front/src/modules/ui/chip/components/EntityChip.tsx +++ b/front/src/modules/ui/chip/components/EntityChip.tsx @@ -20,23 +20,23 @@ export enum EntityChipVariant { Transparent = 'transparent', } -export function EntityChip({ +export const EntityChip = ({ linkToEntity, entityId, name, pictureUrl, avatarType = 'rounded', variant = EntityChipVariant.Regular, -}: OwnProps) { +}: OwnProps) => { const navigate = useNavigate(); - function handleLinkClick(event: React.MouseEvent) { + const handleLinkClick = (event: React.MouseEvent) => { if (linkToEntity) { event.preventDefault(); event.stopPropagation(); navigate(linkToEntity); } - } + }; return isNonEmptyString(name) ? (
@@ -63,4 +63,4 @@ export function EntityChip({ ) : ( <> ); -} +}; diff --git a/front/src/modules/ui/color-scheme/components/ColorSchemeCard.tsx b/front/src/modules/ui/color-scheme/components/ColorSchemeCard.tsx index fca855a16..f9f265b9a 100644 --- a/front/src/modules/ui/color-scheme/components/ColorSchemeCard.tsx +++ b/front/src/modules/ui/color-scheme/components/ColorSchemeCard.tsx @@ -100,19 +100,17 @@ export type ColorSchemeSegmentProps = { controls: AnimationControls; } & React.ComponentPropsWithoutRef<'div'>; -function ColorSchemeSegment({ +const ColorSchemeSegment = ({ variant, controls, ...rest -}: ColorSchemeSegmentProps) { - return ( - - - Aa - - - ); -} +}: ColorSchemeSegmentProps) => ( + + + Aa + + +); const StyledContainer = styled.div` position: relative; @@ -146,28 +144,28 @@ const checkmarkAnimationVariants = { exit: { opacity: 0 }, }; -export function ColorSchemeCard({ +export const ColorSchemeCard = ({ variant, selected, ...rest -}: ColorSchemeCardProps) { +}: ColorSchemeCardProps) => { const controls = useAnimation(); - function handleMouseEnter() { + const handleMouseEnter = () => { controls.start({ height: 61, fontSize: '22px', transition: { duration: 0.1 }, }); - } + }; - function handleMouseLeave() { + const handleMouseLeave = () => { controls.start({ height: 56, fontSize: '20px', transition: { duration: 0.1 }, }); - } + }; if (variant === 'system') { return ( @@ -231,4 +229,4 @@ export function ColorSchemeCard({ ); -} +}; diff --git a/front/src/modules/ui/color-scheme/components/ColorSchemePicker.tsx b/front/src/modules/ui/color-scheme/components/ColorSchemePicker.tsx index 15168121d..4cbff9679 100644 --- a/front/src/modules/ui/color-scheme/components/ColorSchemePicker.tsx +++ b/front/src/modules/ui/color-scheme/components/ColorSchemePicker.tsx @@ -30,33 +30,34 @@ export type ColorSchemePickerProps = { onChange: (value: ColorScheme) => void; }; -export function ColorSchemePicker({ value, onChange }: ColorSchemePickerProps) { - return ( - - - onChange(ColorScheme.Light)} - variant="light" - selected={value === ColorScheme.Light} - /> - Light - - - onChange(ColorScheme.Dark)} - variant="dark" - selected={value === ColorScheme.Dark} - /> - Dark - - - onChange(ColorScheme.System)} - variant="system" - selected={value === ColorScheme.System} - /> - System settings - - - ); -} +export const ColorSchemePicker = ({ + value, + onChange, +}: ColorSchemePickerProps) => ( + + + onChange(ColorScheme.Light)} + variant="light" + selected={value === ColorScheme.Light} + /> + Light + + + onChange(ColorScheme.Dark)} + variant="dark" + selected={value === ColorScheme.Dark} + /> + Dark + + + onChange(ColorScheme.System)} + variant="system" + selected={value === ColorScheme.System} + /> + System settings + + +); diff --git a/front/src/modules/ui/content-display/components/DateDisplay.tsx b/front/src/modules/ui/content-display/components/DateDisplay.tsx index fb83ccdf2..d6aab3c06 100644 --- a/front/src/modules/ui/content-display/components/DateDisplay.tsx +++ b/front/src/modules/ui/content-display/components/DateDisplay.tsx @@ -4,6 +4,6 @@ type OwnProps = { value: Date | string | null | undefined; }; -export function DateDisplay({ value }: OwnProps) { - return
{value && formatToHumanReadableDate(value)}
; -} +export const DateDisplay = ({ value }: OwnProps) => ( +
{value && formatToHumanReadableDate(value)}
+); diff --git a/front/src/modules/ui/content-display/components/EmailDisplay.tsx b/front/src/modules/ui/content-display/components/EmailDisplay.tsx index dbf7b455a..9582c3330 100644 --- a/front/src/modules/ui/content-display/components/EmailDisplay.tsx +++ b/front/src/modules/ui/content-display/components/EmailDisplay.tsx @@ -2,17 +2,17 @@ import { MouseEvent } from 'react'; import { ContactLink } from '@/ui/link/components/ContactLink'; -function validateEmail(email: string) { +const validateEmail = (email: string) => { const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailPattern.test(email.trim()); -} +}; type OwnProps = { value: string | null; }; -export function EmailDisplay({ value }: OwnProps) { - return value && validateEmail(value) ? ( +export const EmailDisplay = ({ value }: OwnProps) => + value && validateEmail(value) ? ( ) => { @@ -24,4 +24,3 @@ export function EmailDisplay({ value }: OwnProps) { ) : ( {value} ); -} diff --git a/front/src/modules/ui/content-display/components/MoneyDisplay.tsx b/front/src/modules/ui/content-display/components/MoneyDisplay.tsx index c8b522462..c6b051154 100644 --- a/front/src/modules/ui/content-display/components/MoneyDisplay.tsx +++ b/front/src/modules/ui/content-display/components/MoneyDisplay.tsx @@ -13,10 +13,8 @@ type OwnProps = { value: number | null; }; -export function MoneyDisplay({ value }: OwnProps) { - return ( - - {value ? `$${formatNumber(value)}` : ''} - - ); -} +export const MoneyDisplay = ({ value }: OwnProps) => ( + + {value ? `$${formatNumber(value)}` : ''} + +); diff --git a/front/src/modules/ui/content-display/components/NumberDisplay.tsx b/front/src/modules/ui/content-display/components/NumberDisplay.tsx index c09665899..3a57531af 100644 --- a/front/src/modules/ui/content-display/components/NumberDisplay.tsx +++ b/front/src/modules/ui/content-display/components/NumberDisplay.tsx @@ -13,10 +13,8 @@ type OwnProps = { value: string; }; -export function NumberDisplay({ value }: OwnProps) { - return ( - - {value && formatNumber(Number(value))} - - ); -} +export const NumberDisplay = ({ value }: OwnProps) => ( + + {value && formatNumber(Number(value))} + +); diff --git a/front/src/modules/ui/content-display/components/PhoneDisplay.tsx b/front/src/modules/ui/content-display/components/PhoneDisplay.tsx index 8a9488068..d7bc966c6 100644 --- a/front/src/modules/ui/content-display/components/PhoneDisplay.tsx +++ b/front/src/modules/ui/content-display/components/PhoneDisplay.tsx @@ -7,8 +7,8 @@ type OwnProps = { value: string | null; }; -export function PhoneDisplay({ value }: OwnProps) { - return value && isValidPhoneNumber(value) ? ( +export const PhoneDisplay = ({ value }: OwnProps) => + value && isValidPhoneNumber(value) ? ( ) => { @@ -20,4 +20,3 @@ export function PhoneDisplay({ value }: OwnProps) { ) : ( {value} ); -} diff --git a/front/src/modules/ui/content-display/components/TextDisplay.tsx b/front/src/modules/ui/content-display/components/TextDisplay.tsx index e0afad492..cccceff95 100644 --- a/front/src/modules/ui/content-display/components/TextDisplay.tsx +++ b/front/src/modules/ui/content-display/components/TextDisplay.tsx @@ -11,6 +11,6 @@ type OwnProps = { text: string; }; -export function TextDisplay({ text }: OwnProps) { - return {text}; -} +export const TextDisplay = ({ text }: OwnProps) => ( + {text} +); diff --git a/front/src/modules/ui/content-display/components/URLDisplay.tsx b/front/src/modules/ui/content-display/components/URLDisplay.tsx index ea5d1825f..f77261696 100644 --- a/front/src/modules/ui/content-display/components/URLDisplay.tsx +++ b/front/src/modules/ui/content-display/components/URLDisplay.tsx @@ -33,10 +33,10 @@ const checkUrlType = (url: string) => { return LinkType.Url; }; -export function URLDisplay({ value }: OwnProps) { - function handleClick(event: MouseEvent) { +export const URLDisplay = ({ value }: OwnProps) => { + const handleClick = (event: MouseEvent) => { event.stopPropagation(); - } + }; const absoluteUrl = value ? value.startsWith('http') ? value @@ -57,4 +57,4 @@ export function URLDisplay({ value }: OwnProps) { {value} ); -} +}; diff --git a/front/src/modules/ui/context-menu/components/ContextMenu.tsx b/front/src/modules/ui/context-menu/components/ContextMenu.tsx index 40ef7a05f..5a0dd57ab 100644 --- a/front/src/modules/ui/context-menu/components/ContextMenu.tsx +++ b/front/src/modules/ui/context-menu/components/ContextMenu.tsx @@ -41,7 +41,7 @@ const StyledContainerContextMenu = styled.div` z-index: 1; `; -export function ContextMenu({ selectedIds }: OwnProps) { +export const ContextMenu = ({ selectedIds }: OwnProps) => { const contextMenuPosition = useRecoilValue(contextMenuPositionState); const contextMenuIsOpen = useRecoilValue(contextMenuIsOpenState); const contextMenuEntries = useRecoilValue(contextMenuEntriesState); @@ -81,4 +81,4 @@ export function ContextMenu({ selectedIds }: OwnProps) { ); -} +}; diff --git a/front/src/modules/ui/context-menu/components/ContextMenuItem.tsx b/front/src/modules/ui/context-menu/components/ContextMenuItem.tsx index 40625a5cb..cff5c7d37 100644 --- a/front/src/modules/ui/context-menu/components/ContextMenuItem.tsx +++ b/front/src/modules/ui/context-menu/components/ContextMenuItem.tsx @@ -10,13 +10,11 @@ type OwnProps = { onClick: () => void; }; -export function ContextMenuItem({ +export const ContextMenuItem = ({ label, Icon, accent = 'default', onClick, -}: OwnProps) { - return ( - - ); -} +}: OwnProps) => ( + +); diff --git a/front/src/modules/ui/context-menu/components/__stories__/ContextMenu.stories.tsx b/front/src/modules/ui/context-menu/components/__stories__/ContextMenu.stories.tsx index b92f684e4..6d5c26489 100644 --- a/front/src/modules/ui/context-menu/components/__stories__/ContextMenu.stories.tsx +++ b/front/src/modules/ui/context-menu/components/__stories__/ContextMenu.stories.tsx @@ -12,7 +12,7 @@ import { contextMenuIsOpenState } from '../../states/contextMenuIsOpenState'; import { contextMenuPositionState } from '../../states/contextMenuPositionState'; import { ContextMenu } from '../ContextMenu'; -function FilledContextMenu(props: { selectedIds: string[] }) { +const FilledContextMenu = (props: { selectedIds: string[] }) => { const { setContextMenuEntries } = useCompanyTableContextMenuEntries(); setContextMenuEntries(); const setContextMenuPosition = useSetRecoilState(contextMenuPositionState); @@ -23,7 +23,7 @@ function FilledContextMenu(props: { selectedIds: string[] }) { const setContextMenuOpenState = useSetRecoilState(contextMenuIsOpenState); setContextMenuOpenState(true); return ; -} +}; const meta: Meta = { title: 'UI/ContextMenu/ContextMenu', diff --git a/front/src/modules/ui/dialog/components/Dialog.tsx b/front/src/modules/ui/dialog/components/Dialog.tsx index d78d7da73..2c5dc0c7b 100644 --- a/front/src/modules/ui/dialog/components/Dialog.tsx +++ b/front/src/modules/ui/dialog/components/Dialog.tsx @@ -72,7 +72,7 @@ export type DialogProps = React.ComponentPropsWithoutRef & { onClose?: () => void; }; -export function Dialog({ +export const Dialog = ({ title, message, buttons = [], @@ -80,7 +80,7 @@ export function Dialog({ children, onClose, ...rootProps -}: DialogProps) { +}: DialogProps) => { const closeSnackbar = useCallback(() => { onClose && onClose(); }, [onClose]); @@ -157,4 +157,4 @@ export function Dialog({ ); -} +}; diff --git a/front/src/modules/ui/dialog/components/DialogProvider.tsx b/front/src/modules/ui/dialog/components/DialogProvider.tsx index 7126f462d..7f0c5e7cf 100644 --- a/front/src/modules/ui/dialog/components/DialogProvider.tsx +++ b/front/src/modules/ui/dialog/components/DialogProvider.tsx @@ -8,7 +8,7 @@ import { DialogHotkeyScope } from '../types/DialogHotkeyScope'; import { Dialog } from './Dialog'; -export function DialogProvider({ children }: React.PropsWithChildren) { +export const DialogProvider = ({ children }: React.PropsWithChildren) => { const [dialogInternal, setDialogInternal] = useRecoilState(dialogInternalState); @@ -46,4 +46,4 @@ export function DialogProvider({ children }: React.PropsWithChildren) { ))} ); -} +}; diff --git a/front/src/modules/ui/dialog/hooks/useDialog.ts b/front/src/modules/ui/dialog/hooks/useDialog.ts index 75137203f..2827a97ca 100644 --- a/front/src/modules/ui/dialog/hooks/useDialog.ts +++ b/front/src/modules/ui/dialog/hooks/useDialog.ts @@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid'; import { DialogOptions, dialogSetQueueState } from '../states/dialogState'; -export function useDialog() { +export const useDialog = () => { const setDialogQueue = useSetRecoilState(dialogSetQueueState); const enqueueDialog = (options?: Omit) => { @@ -14,4 +14,4 @@ export function useDialog() { }; return { enqueueDialog }; -} +}; diff --git a/front/src/modules/ui/dropdown/components/DropdownButton.tsx b/front/src/modules/ui/dropdown/components/DropdownButton.tsx index d2acfeb6f..3dfc8b80b 100644 --- a/front/src/modules/ui/dropdown/components/DropdownButton.tsx +++ b/front/src/modules/ui/dropdown/components/DropdownButton.tsx @@ -22,7 +22,7 @@ type OwnProps = { onClickOutside?: () => void; }; -export function DropdownButton({ +export const DropdownButton = ({ buttonComponents, dropdownComponents, dropdownId, @@ -30,7 +30,7 @@ export function DropdownButton({ dropdownHotkeyScope, dropdownPlacement = 'bottom-end', onClickOutside, -}: OwnProps) { +}: OwnProps) => { const containerRef = useRef(null); const { isDropdownButtonOpen, toggleDropdownButton, closeDropdownButton } = @@ -43,9 +43,9 @@ export function DropdownButton({ middleware: [flip(), offset()], }); - function handleHotkeyTriggered() { + const handleHotkeyTriggered = () => { toggleDropdownButton(); - } + }; useListenClickOutside({ refs: [containerRef], @@ -79,4 +79,4 @@ export function DropdownButton({ )}
); -} +}; diff --git a/front/src/modules/ui/dropdown/components/DropdownMenuContainer.tsx b/front/src/modules/ui/dropdown/components/DropdownMenuContainer.tsx index b0fa535d3..ea4b90efa 100644 --- a/front/src/modules/ui/dropdown/components/DropdownMenuContainer.tsx +++ b/front/src/modules/ui/dropdown/components/DropdownMenuContainer.tsx @@ -22,13 +22,13 @@ export type DropdownMenuContainerProps = { width?: `${string}px` | 'auto' | number; } & HTMLAttributes; -export function DropdownMenuContainer({ +export const DropdownMenuContainer = ({ anchor = 'right', children, onClose, width, ...props -}: DropdownMenuContainerProps) { +}: DropdownMenuContainerProps) => { const dropdownRef = useRef(null); useListenClickOutside({ @@ -45,4 +45,4 @@ export function DropdownMenuContainer({ ); -} +}; diff --git a/front/src/modules/ui/dropdown/components/DropdownMenuHeader.tsx b/front/src/modules/ui/dropdown/components/DropdownMenuHeader.tsx index 96725a501..e43e426c4 100644 --- a/front/src/modules/ui/dropdown/components/DropdownMenuHeader.tsx +++ b/front/src/modules/ui/dropdown/components/DropdownMenuHeader.tsx @@ -46,12 +46,12 @@ type DropdownMenuHeaderProps = ComponentProps<'li'> & { EndIcon?: IconComponent; }; -export function DropdownMenuHeader({ +export const DropdownMenuHeader = ({ children, StartIcon, EndIcon, ...props -}: DropdownMenuHeaderProps) { +}: DropdownMenuHeaderProps) => { const theme = useTheme(); return ( @@ -69,4 +69,4 @@ export function DropdownMenuHeader({ )} ); -} +}; diff --git a/front/src/modules/ui/dropdown/hooks/useDropdownButton.ts b/front/src/modules/ui/dropdown/hooks/useDropdownButton.ts index 939959534..a1e373401 100644 --- a/front/src/modules/ui/dropdown/hooks/useDropdownButton.ts +++ b/front/src/modules/ui/dropdown/hooks/useDropdownButton.ts @@ -5,7 +5,7 @@ import { dropdownButtonHotkeyScopeScopedFamilyState } from '../states/dropdownBu import { isDropdownButtonOpenScopedFamilyState } from '../states/isDropdownButtonOpenScopedFamilyState'; import { DropdownRecoilScopeContext } from '../states/recoil-scope-contexts/DropdownRecoilScopeContext'; -export function useDropdownButton({ dropdownId }: { dropdownId: string }) { +export const useDropdownButton = ({ dropdownId }: { dropdownId: string }) => { const { setHotkeyScopeAndMemorizePreviousScope, goBackToPreviousHotkeyScope, @@ -24,12 +24,12 @@ export function useDropdownButton({ dropdownId }: { dropdownId: string }) { DropdownRecoilScopeContext, ); - function closeDropdownButton() { + const closeDropdownButton = () => { goBackToPreviousHotkeyScope(); setIsDropdownButtonOpen(false); - } + }; - function openDropdownButton() { + const openDropdownButton = () => { setIsDropdownButtonOpen(true); if (dropdownButtonHotkeyScope) { @@ -38,15 +38,15 @@ export function useDropdownButton({ dropdownId }: { dropdownId: string }) { dropdownButtonHotkeyScope.customScopes, ); } - } + }; - function toggleDropdownButton() { + const toggleDropdownButton = () => { if (isDropdownButtonOpen) { closeDropdownButton(); } else { openDropdownButton(); } - } + }; return { isDropdownButtonOpen, @@ -54,4 +54,4 @@ export function useDropdownButton({ dropdownId }: { dropdownId: string }) { toggleDropdownButton, openDropdownButton, }; -} +}; diff --git a/front/src/modules/ui/editable-field/components/EditableField.tsx b/front/src/modules/ui/editable-field/components/EditableField.tsx index 9b520b7ca..412a7ca48 100644 --- a/front/src/modules/ui/editable-field/components/EditableField.tsx +++ b/front/src/modules/ui/editable-field/components/EditableField.tsx @@ -85,7 +85,7 @@ type OwnProps = { disableHoverEffect?: boolean; }; -export function EditableField({ +export const EditableField = ({ IconLabel, label, labelFixedWidth, @@ -97,24 +97,24 @@ export function EditableField({ displayModeContentOnly, isDisplayModeFixHeight, disableHoverEffect, -}: OwnProps) { +}: OwnProps) => { const [isHovered, setIsHovered] = useState(false); - function handleContainerMouseEnter() { + const handleContainerMouseEnter = () => { setIsHovered(true); - } + }; - function handleContainerMouseLeave() { + const handleContainerMouseLeave = () => { setIsHovered(false); - } + }; const { isFieldInEditMode, openEditableField } = useEditableField(); - function handleDisplayModeClick() { + const handleDisplayModeClick = () => { if (!displayModeContentOnly) { openEditableField(customEditHotkeyScope); } - } + }; const showEditButton = !isFieldInEditMode && isHovered && useEditButton && !displayModeContentOnly; @@ -163,4 +163,4 @@ export function EditableField({ ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/EditableFieldDisplayMode.tsx b/front/src/modules/ui/editable-field/components/EditableFieldDisplayMode.tsx index e6befbb5b..ea0277c66 100644 --- a/front/src/modules/ui/editable-field/components/EditableFieldDisplayMode.tsx +++ b/front/src/modules/ui/editable-field/components/EditableFieldDisplayMode.tsx @@ -57,27 +57,25 @@ type OwnProps = { isHovered?: boolean; }; -export function EditableFieldDisplayMode({ +export const EditableFieldDisplayMode = ({ children, isDisplayModeContentEmpty, disableHoverEffect, isDisplayModeFixHeight, isHovered, -}: React.PropsWithChildren) { - return ( - - - {isDisplayModeContentEmpty || !children ? ( - {'Empty'} - ) : ( - children - )} - - - ); -} +}: React.PropsWithChildren) => ( + + + {isDisplayModeContentEmpty || !children ? ( + {'Empty'} + ) : ( + children + )} + + +); diff --git a/front/src/modules/ui/editable-field/components/EditableFieldEditButton.tsx b/front/src/modules/ui/editable-field/components/EditableFieldEditButton.tsx index 8a63a2faa..fc84e7af2 100644 --- a/front/src/modules/ui/editable-field/components/EditableFieldEditButton.tsx +++ b/front/src/modules/ui/editable-field/components/EditableFieldEditButton.tsx @@ -3,12 +3,12 @@ import { IconPencil } from '@/ui/icon'; import { useEditableField } from '../hooks/useEditableField'; -export function EditableFieldEditButton() { +export const EditableFieldEditButton = () => { const { openEditableField } = useEditableField(); - function handleClick() { + const handleClick = () => { openEditableField(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/EditableFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/EditableFieldEditMode.tsx index 361bc3819..b493228b4 100644 --- a/front/src/modules/ui/editable-field/components/EditableFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/EditableFieldEditMode.tsx @@ -30,10 +30,8 @@ type OwnProps = { children: React.ReactNode; }; -export function EditableFieldEditMode({ children }: OwnProps) { - return ( - - {children} - - ); -} +export const EditableFieldEditMode = ({ children }: OwnProps) => ( + + {children} + +); diff --git a/front/src/modules/ui/editable-field/components/GenericEditableBooleanField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableBooleanField.tsx index 98104e56a..fdf044af7 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableBooleanField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableBooleanField.tsx @@ -10,7 +10,7 @@ import { FieldBooleanMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditableBooleanFieldDisplayMode } from './GenericEditableBooleanFieldDisplayMode'; -export function GenericEditableBooleanField() { +export const GenericEditableBooleanField = () => { const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, ) as FieldDefinition; @@ -24,4 +24,4 @@ export function GenericEditableBooleanField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableBooleanFieldDisplayMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableBooleanFieldDisplayMode.tsx index 6286d6f1b..231a55fe7 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableBooleanFieldDisplayMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableBooleanFieldDisplayMode.tsx @@ -10,7 +10,7 @@ import { genericEntityFieldFamilySelector } from '../states/selectors/genericEnt import { FieldDefinition } from '../types/FieldDefinition'; import { FieldBooleanMetadata } from '../types/FieldMetadata'; -export function GenericEditableBooleanFieldDisplayMode() { +export const GenericEditableBooleanFieldDisplayMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -27,7 +27,7 @@ export function GenericEditableBooleanFieldDisplayMode() { const updateField = useUpdateGenericEntityField(); - function handleSubmit(newValue: boolean) { + const handleSubmit = (newValue: boolean) => { if (currentEditableFieldEntityId && updateField) { updateField( currentEditableFieldEntityId, @@ -38,7 +38,7 @@ export function GenericEditableBooleanFieldDisplayMode() { // TODO: use optimistic effect instead, but needs generic refactor setFieldValue(newValue); } - } + }; return ; -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableDateField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableDateField.tsx index 830bd5285..4c700c93f 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableDateField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableDateField.tsx @@ -14,7 +14,7 @@ import { FieldDateMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditableDateFieldEditMode } from './GenericEditableDateFieldEditMode'; -export function GenericEditableDateField() { +export const GenericEditableDateField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -39,4 +39,4 @@ export function GenericEditableDateField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableDateFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableDateFieldEditMode.tsx index 886d05892..b00e4194f 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableDateFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableDateFieldEditMode.tsx @@ -13,7 +13,7 @@ import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope'; import { FieldDefinition } from '../types/FieldDefinition'; import { FieldDateMetadata } from '../types/FieldMetadata'; -export function GenericEditableDateFieldEditMode() { +export const GenericEditableDateFieldEditMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -31,7 +31,7 @@ export function GenericEditableDateFieldEditMode() { const updateField = useUpdateGenericEntityField(); - function handleSubmit(newDate: Nullable) { + const handleSubmit = (newDate: Nullable) => { if (!newDate) { setFieldValue(''); @@ -57,7 +57,7 @@ export function GenericEditableDateFieldEditMode() { newDateISO, ); } - } + }; const { handleEnter, handleEscape, handleClickOutside } = useFieldInputEventHandlers({ @@ -73,4 +73,4 @@ export function GenericEditableDateFieldEditMode() { value={fieldValue ? new Date(fieldValue) : null} /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableField.tsx index 4ac484d12..fd4fa4da8 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableField.tsx @@ -19,7 +19,7 @@ import { GenericEditableTextField } from './GenericEditableTextField'; import { GenericEditableURLField } from './GenericEditableURLField'; import { ProbabilityEditableField } from './ProbabilityEditableField'; -export function GenericEditableField() { +export const GenericEditableField = () => { const fieldDefinition = useContext(EditableFieldDefinitionContext); if (isFieldRelation(fieldDefinition)) { @@ -44,4 +44,4 @@ export function GenericEditableField() { ); return <>; } -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableNumberField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableNumberField.tsx index c0d12be64..abdcb7c1e 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableNumberField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableNumberField.tsx @@ -14,7 +14,7 @@ import { FieldNumberMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditableNumberFieldEditMode } from './GenericEditableNumberFieldEditMode'; -export function GenericEditableNumberField() { +export const GenericEditableNumberField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -39,4 +39,4 @@ export function GenericEditableNumberField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableNumberFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableNumberFieldEditMode.tsx index fd97324f3..ba7404ca9 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableNumberFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableNumberFieldEditMode.tsx @@ -16,7 +16,7 @@ import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope'; import { FieldDefinition } from '../types/FieldDefinition'; import { FieldNumberMetadata } from '../types/FieldMetadata'; -export function GenericEditableNumberFieldEditMode() { +export const GenericEditableNumberFieldEditMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -34,7 +34,7 @@ export function GenericEditableNumberFieldEditMode() { const updateField = useUpdateGenericEntityField(); - function handleSubmit(newValue: string) { + const handleSubmit = (newValue: string) => { if (!canBeCastAsIntegerOrNull(newValue)) { return; } @@ -52,7 +52,7 @@ export function GenericEditableNumberFieldEditMode() { castedValue, ); } - } + }; const { handleEnter, handleEscape, handleClickOutside } = useFieldInputEventHandlers({ @@ -70,4 +70,4 @@ export function GenericEditableNumberFieldEditMode() { onEscape={handleEscape} /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditablePhoneField.tsx b/front/src/modules/ui/editable-field/components/GenericEditablePhoneField.tsx index 86147decd..65b7f2e8d 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditablePhoneField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditablePhoneField.tsx @@ -14,7 +14,7 @@ import { FieldPhoneMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditablePhoneFieldEditMode } from './GenericEditablePhoneFieldEditMode'; -export function GenericEditablePhoneField() { +export const GenericEditablePhoneField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -40,4 +40,4 @@ export function GenericEditablePhoneField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditablePhoneFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditablePhoneFieldEditMode.tsx index b8cd216a4..102eddad1 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditablePhoneFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditablePhoneFieldEditMode.tsx @@ -13,7 +13,7 @@ import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope'; import { FieldDefinition } from '../types/FieldDefinition'; import { FieldPhoneMetadata } from '../types/FieldMetadata'; -export function GenericEditablePhoneFieldEditMode() { +export const GenericEditablePhoneFieldEditMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -31,7 +31,7 @@ export function GenericEditablePhoneFieldEditMode() { const updateField = useUpdateGenericEntityField(); - function handleSubmit(newValue: string) { + const handleSubmit = (newValue: string) => { if (!isPossiblePhoneNumber(newValue)) return; setFieldValue(newValue); @@ -43,7 +43,7 @@ export function GenericEditablePhoneFieldEditMode() { newValue, ); } - } + }; const { handleEnter, handleEscape, handleClickOutside } = useFieldInputEventHandlers({ @@ -59,4 +59,4 @@ export function GenericEditablePhoneFieldEditMode() { hotkeyScope={EditableFieldHotkeyScope.EditableField} /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableRelationField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableRelationField.tsx index c7cc53286..5101db4b1 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableRelationField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableRelationField.tsx @@ -15,7 +15,7 @@ import { EditableField } from './EditableField'; import { GenericEditableRelationFieldDisplayMode } from './GenericEditableRelationFieldDisplayMode'; import { GenericEditableRelationFieldEditMode } from './GenericEditableRelationFieldEditMode'; -export function GenericEditableRelationField() { +export const GenericEditableRelationField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -47,4 +47,4 @@ export function GenericEditableRelationField() { ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldDisplayMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldDisplayMode.tsx index fa21532d0..f217f6fa9 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldDisplayMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldDisplayMode.tsx @@ -13,7 +13,7 @@ import { genericEntityFieldFamilySelector } from '../states/selectors/genericEnt import { FieldDefinition } from '../types/FieldDefinition'; import { FieldRelationMetadata } from '../types/FieldMetadata'; -export function GenericEditableRelationFieldDisplayMode() { +export const GenericEditableRelationFieldDisplayMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -67,4 +67,4 @@ export function GenericEditableRelationFieldDisplayMode() { ); return <> ; } -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldEditMode.tsx index 4fb276234..c8592556d 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableRelationFieldEditMode.tsx @@ -26,7 +26,7 @@ const StyledRelationPickerContainer = styled.div` top: -8px; `; -function RelationPicker({ +const RelationPicker = ({ fieldDefinition, fieldValue, handleEntitySubmit, @@ -36,7 +36,7 @@ function RelationPicker({ fieldValue: FieldRelationValue & { companyId?: string }; handleEntitySubmit: (newRelationId: EntityForSelect | null) => void; handleCancel: () => void; -}) { +}) => { switch (fieldDefinition.metadata.relationType) { case Entity.Person: { return ( @@ -72,9 +72,9 @@ function RelationPicker({ ); return <>; } -} +}; -export function GenericEditableRelationFieldEditMode() { +export const GenericEditableRelationFieldEditMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -98,7 +98,7 @@ export function GenericEditableRelationFieldEditMode() { const updateField = useUpdateGenericEntityField(); const { closeEditableField } = useEditableField(); - function handleSubmit(newRelation: EntityForSelect | null) { + const handleSubmit = (newRelation: EntityForSelect | null) => { if (newRelation?.id === fieldValue?.id) return; setFieldValue({ @@ -116,11 +116,11 @@ export function GenericEditableRelationFieldEditMode() { } closeEditableField(); - } + }; - function handleCancel() { + const handleCancel = () => { closeEditableField(); - } + }; return ( @@ -132,4 +132,4 @@ export function GenericEditableRelationFieldEditMode() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableTextField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableTextField.tsx index 7044e4f5f..04639c221 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableTextField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableTextField.tsx @@ -14,7 +14,7 @@ import { FieldNumberMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditableTextFieldEditMode } from './GenericEditableTextFieldEditMode'; -export function GenericEditableTextField() { +export const GenericEditableTextField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -39,4 +39,4 @@ export function GenericEditableTextField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableTextFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableTextFieldEditMode.tsx index f3ee487d4..14dde0be1 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableTextFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableTextFieldEditMode.tsx @@ -12,7 +12,7 @@ import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope'; import { FieldDefinition } from '../types/FieldDefinition'; import { FieldTextMetadata } from '../types/FieldMetadata'; -export function GenericEditableTextFieldEditMode() { +export const GenericEditableTextFieldEditMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -30,7 +30,7 @@ export function GenericEditableTextFieldEditMode() { const updateField = useUpdateGenericEntityField(); - function handleSubmit(newValue: string) { + const handleSubmit = (newValue: string) => { if (currentEditableFieldEntityId && updateField) { updateField( currentEditableFieldEntityId, @@ -41,7 +41,7 @@ export function GenericEditableTextFieldEditMode() { // TODO: use optimistic effect instead, but needs generic refactor setFieldValue(newValue); } - } + }; const { handleEnter, handleEscape, handleClickOutside } = useFieldInputEventHandlers({ @@ -59,4 +59,4 @@ export function GenericEditableTextFieldEditMode() { hotkeyScope={EditableFieldHotkeyScope.EditableField} /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableURLField.tsx b/front/src/modules/ui/editable-field/components/GenericEditableURLField.tsx index 0caf23787..81036af46 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableURLField.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableURLField.tsx @@ -14,7 +14,7 @@ import { FieldNumberMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditableURLFieldEditMode } from './GenericEditableURLFieldEditMode'; -export function GenericEditableURLField() { +export const GenericEditableURLField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -41,4 +41,4 @@ export function GenericEditableURLField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/GenericEditableURLFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/GenericEditableURLFieldEditMode.tsx index 77c97a97b..d91c43966 100644 --- a/front/src/modules/ui/editable-field/components/GenericEditableURLFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/GenericEditableURLFieldEditMode.tsx @@ -14,7 +14,7 @@ import { FieldURLMetadata } from '../types/FieldMetadata'; // This one is very similar to GenericEditableTextFieldEditMode // We could probably merge them since FieldURLMetadata is basically a FieldTextMetadata -export function GenericEditableURLFieldEditMode() { +export const GenericEditableURLFieldEditMode = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, @@ -32,7 +32,7 @@ export function GenericEditableURLFieldEditMode() { const updateField = useUpdateGenericEntityField(); - function handleSubmit(newValue: string) { + const handleSubmit = (newValue: string) => { setFieldValue(newValue); if (currentEditableFieldEntityId && updateField) { @@ -42,7 +42,7 @@ export function GenericEditableURLFieldEditMode() { newValue, ); } - } + }; const { handleEnter, handleEscape, handleClickOutside } = useFieldInputEventHandlers({ @@ -60,4 +60,4 @@ export function GenericEditableURLFieldEditMode() { hotkeyScope={EditableFieldHotkeyScope.EditableField} /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/ProbabilityEditableField.tsx b/front/src/modules/ui/editable-field/components/ProbabilityEditableField.tsx index a99ec28fc..e6e805527 100644 --- a/front/src/modules/ui/editable-field/components/ProbabilityEditableField.tsx +++ b/front/src/modules/ui/editable-field/components/ProbabilityEditableField.tsx @@ -10,7 +10,7 @@ import { FieldProbabilityMetadata } from '../types/FieldMetadata'; import { ProbabilityEditableFieldEditMode } from './ProbabilityEditableFieldEditMode'; -export function ProbabilityEditableField() { +export const ProbabilityEditableField = () => { const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, ) as FieldDefinition; @@ -25,4 +25,4 @@ export function ProbabilityEditableField() { /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/components/ProbabilityEditableFieldEditMode.tsx b/front/src/modules/ui/editable-field/components/ProbabilityEditableFieldEditMode.tsx index e0ce8c7de..745aecca5 100644 --- a/front/src/modules/ui/editable-field/components/ProbabilityEditableFieldEditMode.tsx +++ b/front/src/modules/ui/editable-field/components/ProbabilityEditableFieldEditMode.tsx @@ -67,7 +67,7 @@ const PROBABILITY_VALUES = [ { label: '100%', value: 100 }, ]; -export function ProbabilityEditableFieldEditMode() { +export const ProbabilityEditableFieldEditMode = () => { const [nextProbabilityIndex, setNextProbabilityIndex] = useState< number | null >(null); @@ -91,7 +91,7 @@ export function ProbabilityEditableFieldEditMode() { const probabilityIndex = Math.ceil(fieldValue / 25); - function handleChange(newValue: number) { + const handleChange = (newValue: number) => { setFieldValue(newValue); if (currentEditableFieldEntityId && updateField) { updateField( @@ -101,7 +101,7 @@ export function ProbabilityEditableFieldEditMode() { ); } closeEditableField(); - } + }; return ( @@ -137,4 +137,4 @@ export function ProbabilityEditableFieldEditMode() { ); -} +}; diff --git a/front/src/modules/ui/editable-field/hooks/useEditableField.ts b/front/src/modules/ui/editable-field/hooks/useEditableField.ts index 7cffb74a9..38c043e18 100644 --- a/front/src/modules/ui/editable-field/hooks/useEditableField.ts +++ b/front/src/modules/ui/editable-field/hooks/useEditableField.ts @@ -6,7 +6,7 @@ import { isFieldInEditModeScopedState } from '../states/isFieldInEditModeScopedS import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext'; import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope'; -export function useEditableField() { +export const useEditableField = () => { const [isFieldInEditMode, setIsFieldInEditMode] = useRecoilScopedState( isFieldInEditModeScopedState, FieldRecoilScopeContext, @@ -17,13 +17,13 @@ export function useEditableField() { goBackToPreviousHotkeyScope, } = usePreviousHotkeyScope(); - function closeEditableField() { + const closeEditableField = () => { setIsFieldInEditMode(false); goBackToPreviousHotkeyScope(); - } + }; - function openEditableField(customEditHotkeyScopeForField?: HotkeyScope) { + const openEditableField = (customEditHotkeyScopeForField?: HotkeyScope) => { setIsFieldInEditMode(true); if (customEditHotkeyScopeForField) { @@ -36,11 +36,11 @@ export function useEditableField() { EditableFieldHotkeyScope.EditableField, ); } - } + }; return { isFieldInEditMode, closeEditableField, openEditableField, }; -} +}; diff --git a/front/src/modules/ui/editable-field/hooks/useFieldInputEventHandlers.ts b/front/src/modules/ui/editable-field/hooks/useFieldInputEventHandlers.ts index cd3e19424..32b9484b4 100644 --- a/front/src/modules/ui/editable-field/hooks/useFieldInputEventHandlers.ts +++ b/front/src/modules/ui/editable-field/hooks/useFieldInputEventHandlers.ts @@ -1,12 +1,12 @@ import { useEditableField } from './useEditableField'; -export function useFieldInputEventHandlers({ +export const useFieldInputEventHandlers = ({ onSubmit, onCancel, }: { onSubmit?: (newValue: T) => void; onCancel?: () => void; -}) { +}) => { const { closeEditableField, isFieldInEditMode } = useEditableField(); return { @@ -25,4 +25,4 @@ export function useFieldInputEventHandlers({ closeEditableField(); }, }; -} +}; diff --git a/front/src/modules/ui/editable-field/hooks/useRegisterCloseFieldHandlers.ts b/front/src/modules/ui/editable-field/hooks/useRegisterCloseFieldHandlers.ts index f5f9351a2..b1edbbdd0 100644 --- a/front/src/modules/ui/editable-field/hooks/useRegisterCloseFieldHandlers.ts +++ b/front/src/modules/ui/editable-field/hooks/useRegisterCloseFieldHandlers.ts @@ -5,11 +5,11 @@ import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope'; import { useEditableField } from './useEditableField'; -export function useRegisterCloseFieldHandlers( +export const useRegisterCloseFieldHandlers = ( wrapperRef: React.RefObject, onSubmit?: () => void, onCancel?: () => void, -) { +) => { const { closeEditableField, isFieldInEditMode } = useEditableField(); useListenClickOutside({ @@ -41,4 +41,4 @@ export function useRegisterCloseFieldHandlers( EditableFieldHotkeyScope.EditableField, [closeEditableField, onCancel], ); -} +}; diff --git a/front/src/modules/ui/editable-field/hooks/useUpdateGenericEntityField.ts b/front/src/modules/ui/editable-field/hooks/useUpdateGenericEntityField.ts index 1e8c6a078..1763e5e72 100644 --- a/front/src/modules/ui/editable-field/hooks/useUpdateGenericEntityField.ts +++ b/front/src/modules/ui/editable-field/hooks/useUpdateGenericEntityField.ts @@ -50,12 +50,12 @@ import { isFieldTextValue } from '../types/guards/isFieldTextValue'; import { isFieldURL } from '../types/guards/isFieldURL'; import { isFieldURLValue } from '../types/guards/isFieldURLValue'; -export function useUpdateGenericEntityField() { +export const useUpdateGenericEntityField = () => { const useUpdateEntityMutation = useContext(EditableFieldMutationContext); const [updateEntity] = useUpdateEntityMutation(); - return function updateEntityField< + const updateEntityField = < ValueType extends FieldMetadata extends FieldDoubleTextMetadata ? FieldDoubleTextValue : FieldMetadata extends FieldTextMetadata @@ -83,7 +83,7 @@ export function useUpdateGenericEntityField() { currentEntityId: string, field: FieldDefinition, newFieldValue: ValueType | null, - ) { + ) => { // TODO: improve type guards organization, maybe with a common typeguard for all fields // taking an object of options as parameter ? // @@ -165,4 +165,6 @@ export function useUpdateGenericEntityField() { }); } }; -} + + return updateEntityField; +}; diff --git a/front/src/modules/ui/editable-field/property-box/components/PropertyBox.tsx b/front/src/modules/ui/editable-field/property-box/components/PropertyBox.tsx index 44fdd1b8e..28614c014 100644 --- a/front/src/modules/ui/editable-field/property-box/components/PropertyBox.tsx +++ b/front/src/modules/ui/editable-field/property-box/components/PropertyBox.tsx @@ -16,6 +16,6 @@ interface PropertyBoxProps { extraPadding?: boolean; } -export function PropertyBox({ children }: PropertyBoxProps) { - return {children}; -} +export const PropertyBox = ({ children }: PropertyBoxProps) => ( + {children} +); diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldBoolean.ts b/front/src/modules/ui/editable-field/types/guards/isFieldBoolean.ts index 997c81888..0adcc3128 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldBoolean.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldBoolean.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldBooleanMetadata, FieldMetadata } from '../FieldMetadata'; -export function isFieldBoolean( +export const isFieldBoolean = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'boolean'; -} +): field is FieldDefinition => field.type === 'boolean'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldBooleanValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldBooleanValue.ts index f34b727b7..f604c97f4 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldBooleanValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldBooleanValue.ts @@ -1,12 +1,9 @@ import { FieldBooleanValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldBooleanValue( +export const isFieldBooleanValue = ( fieldValue: unknown, -): fieldValue is FieldBooleanValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'boolean' - ); -} +): fieldValue is FieldBooleanValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'boolean'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldChip.ts b/front/src/modules/ui/editable-field/types/guards/isFieldChip.ts index b7e2eac37..3d92e070b 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldChip.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldChip.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldChipMetadata, FieldMetadata } from '../FieldMetadata'; -export function isFieldChip( +export const isFieldChip = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'chip'; -} +): field is FieldDefinition => field.type === 'chip'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldChipValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldChipValue.ts index 649a08fa4..f62b98ed9 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldChipValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldChipValue.ts @@ -1,12 +1,9 @@ import { FieldChipValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldChipValue( +export const isFieldChipValue = ( fieldValue: unknown, -): fieldValue is FieldChipValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is FieldChipValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldDate.ts b/front/src/modules/ui/editable-field/types/guards/isFieldDate.ts index e6258847e..08ebd89da 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldDate.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldDate.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldDateMetadata, FieldMetadata } from '../FieldMetadata'; -export function isFieldDate( +export const isFieldDate = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'date'; -} +): field is FieldDefinition => field.type === 'date'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldDateValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldDateValue.ts index 0d6a86676..50400b022 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldDateValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldDateValue.ts @@ -1,11 +1,8 @@ import { FieldDateValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldDateValue( +export const isFieldDateValue = ( fieldValue: unknown, -): fieldValue is FieldDateValue { - return ( - fieldValue === null || - (fieldValue !== undefined && typeof fieldValue === 'string') - ); -} +): fieldValue is FieldDateValue => + fieldValue === null || + (fieldValue !== undefined && typeof fieldValue === 'string'); diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleText.ts b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleText.ts index b30c0c6a0..e47363cfe 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleText.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleText.ts @@ -1,8 +1,7 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldDoubleTextMetadata, FieldMetadata } from '../FieldMetadata'; -export function isFieldDoubleText( +export const isFieldDoubleText = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'double-text'; -} +): field is FieldDefinition => + field.type === 'double-text'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChip.ts b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChip.ts index 73bc0c545..c529f066d 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChip.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChip.ts @@ -1,8 +1,7 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldDoubleTextChipMetadata, FieldMetadata } from '../FieldMetadata'; -export function isFieldDoubleTextChip( +export const isFieldDoubleTextChip = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'double-text-chip'; -} +): field is FieldDefinition => + field.type === 'double-text-chip'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChipValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChipValue.ts index b5d7812a3..64a711f99 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChipValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextChipValue.ts @@ -1,12 +1,9 @@ import { FieldDoubleTextChipValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldDoubleTextChipValue( +export const isFieldDoubleTextChipValue = ( fieldValue: unknown, -): fieldValue is FieldDoubleTextChipValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'object' - ); -} +): fieldValue is FieldDoubleTextChipValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'object'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextValue.ts index 9e5047676..ad9eb3cb0 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldDoubleTextValue.ts @@ -1,12 +1,9 @@ import { FieldDoubleTextValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldDoubleTextValue( +export const isFieldDoubleTextValue = ( fieldValue: unknown, -): fieldValue is FieldDoubleTextValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'object' - ); -} +): fieldValue is FieldDoubleTextValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'object'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldNumber.ts b/front/src/modules/ui/editable-field/types/guards/isFieldNumber.ts index 7c23d6167..851acf1e6 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldNumber.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldNumber.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldMetadata, FieldNumberMetadata } from '../FieldMetadata'; -export function isFieldNumber( +export const isFieldNumber = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'number'; -} +): field is FieldDefinition => field.type === 'number'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldNumberValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldNumberValue.ts index a592554ee..65ae00aa7 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldNumberValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldNumberValue.ts @@ -1,11 +1,8 @@ import { FieldNumberValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldNumberValue( +export const isFieldNumberValue = ( fieldValue: unknown, -): fieldValue is FieldNumberValue { - return ( - fieldValue === null || - (fieldValue !== undefined && typeof fieldValue === 'number') - ); -} +): fieldValue is FieldNumberValue => + fieldValue === null || + (fieldValue !== undefined && typeof fieldValue === 'number'); diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldPhone.ts b/front/src/modules/ui/editable-field/types/guards/isFieldPhone.ts index e886b9bbc..d5762bf2c 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldPhone.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldPhone.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldMetadata, FieldPhoneMetadata } from '../FieldMetadata'; -export function isFieldPhone( +export const isFieldPhone = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'phone'; -} +): field is FieldDefinition => field.type === 'phone'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldPhoneValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldPhoneValue.ts index 1337385a7..e9975573c 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldPhoneValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldPhoneValue.ts @@ -1,12 +1,9 @@ import { FieldPhoneValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldPhoneValue( +export const isFieldPhoneValue = ( fieldValue: unknown, -): fieldValue is FieldPhoneValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is FieldPhoneValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldProbability.ts b/front/src/modules/ui/editable-field/types/guards/isFieldProbability.ts index 97c12661e..9b605f20f 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldProbability.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldProbability.ts @@ -1,8 +1,7 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldMetadata, FieldProbabilityMetadata } from '../FieldMetadata'; -export function isFieldProbability( +export const isFieldProbability = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'probability'; -} +): field is FieldDefinition => + field.type === 'probability'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldProbabilityValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldProbabilityValue.ts index d4dad6eb3..c1e06a319 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldProbabilityValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldProbabilityValue.ts @@ -1,12 +1,9 @@ import { FieldProbabilityValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldProbabilityValue( +export const isFieldProbabilityValue = ( fieldValue: unknown, -): fieldValue is FieldProbabilityValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'number' - ); -} +): fieldValue is FieldProbabilityValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'number'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldRelation.ts b/front/src/modules/ui/editable-field/types/guards/isFieldRelation.ts index bb24ecac2..4ea65e76d 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldRelation.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldRelation.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldMetadata, FieldRelationMetadata } from '../FieldMetadata'; -export function isFieldRelation( +export const isFieldRelation = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'relation'; -} +): field is FieldDefinition => field.type === 'relation'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldRelationValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldRelationValue.ts index c96be88e0..6a21a855f 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldRelationValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldRelationValue.ts @@ -1,8 +1,7 @@ import { FieldRelationValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldRelationValue( +export const isFieldRelationValue = ( fieldValue: unknown, -): fieldValue is FieldRelationValue { - return fieldValue !== undefined && typeof fieldValue === 'object'; -} +): fieldValue is FieldRelationValue => + fieldValue !== undefined && typeof fieldValue === 'object'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldText.ts b/front/src/modules/ui/editable-field/types/guards/isFieldText.ts index d616dd595..c37927773 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldText.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldText.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldMetadata, FieldTextMetadata } from '../FieldMetadata'; -export function isFieldText( +export const isFieldText = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'text'; -} +): field is FieldDefinition => field.type === 'text'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldTextValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldTextValue.ts index 19f958249..2d5d382db 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldTextValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldTextValue.ts @@ -1,12 +1,9 @@ import { FieldTextValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldTextValue( +export const isFieldTextValue = ( fieldValue: unknown, -): fieldValue is FieldTextValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is FieldTextValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldURL.ts b/front/src/modules/ui/editable-field/types/guards/isFieldURL.ts index 5092c760a..83feec5dd 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldURL.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldURL.ts @@ -1,8 +1,6 @@ import { FieldDefinition } from '../FieldDefinition'; import { FieldMetadata, FieldURLMetadata } from '../FieldMetadata'; -export function isFieldURL( +export const isFieldURL = ( field: FieldDefinition, -): field is FieldDefinition { - return field.type === 'url'; -} +): field is FieldDefinition => field.type === 'url'; diff --git a/front/src/modules/ui/editable-field/types/guards/isFieldURLValue.ts b/front/src/modules/ui/editable-field/types/guards/isFieldURLValue.ts index 96afe4154..4ad6f0036 100644 --- a/front/src/modules/ui/editable-field/types/guards/isFieldURLValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isFieldURLValue.ts @@ -1,12 +1,9 @@ import { FieldURLValue } from '../FieldMetadata'; // TODO: add yup -export function isFieldURLValue( +export const isFieldURLValue = ( fieldValue: unknown, -): fieldValue is FieldURLValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is FieldURLValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldBoolean.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldBoolean.ts index 244b7691e..aee09c11b 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldBoolean.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldBoolean.ts @@ -4,8 +4,7 @@ import { ViewFieldMetadata, } from '../ViewField'; -export function isViewFieldBoolean( +export const isViewFieldBoolean = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'boolean'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'boolean'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldBooleanValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldBooleanValue.ts index bf1516ee0..1c0d56f33 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldBooleanValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldBooleanValue.ts @@ -1,7 +1,5 @@ import { ViewFieldBooleanValue } from '../ViewField'; -export function isViewFieldBooleanValue( +export const isViewFieldBooleanValue = ( fieldValue: unknown, -): fieldValue is ViewFieldBooleanValue { - return typeof fieldValue === 'boolean'; -} +): fieldValue is ViewFieldBooleanValue => typeof fieldValue === 'boolean'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldChip.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldChip.ts index 2faf40dde..f5471cc72 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldChip.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldChip.ts @@ -4,8 +4,7 @@ import { ViewFieldMetadata, } from '../ViewField'; -export function isViewFieldChip( +export const isViewFieldChip = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'chip'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'chip'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldChipValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldChipValue.ts index 95b9c2950..8f36078cb 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldChipValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldChipValue.ts @@ -1,12 +1,9 @@ import { ViewFieldChipValue } from '../ViewField'; // TODO: add yup -export function isViewFieldChipValue( +export const isViewFieldChipValue = ( fieldValue: unknown, -): fieldValue is ViewFieldChipValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is ViewFieldChipValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldDate.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldDate.ts index 87d5e00b8..70ba05d5f 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldDate.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldDate.ts @@ -4,8 +4,7 @@ import { ViewFieldMetadata, } from '../ViewField'; -export function isViewFieldDate( +export const isViewFieldDate = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'date'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'date'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldDateValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldDateValue.ts index 2e47964e3..f4591cb87 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldDateValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldDateValue.ts @@ -1,12 +1,9 @@ import { ViewFieldDateValue } from '../ViewField'; // TODO: add yup -export function isViewFieldDateValue( +export const isViewFieldDateValue = ( fieldValue: unknown, -): fieldValue is ViewFieldDateValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is ViewFieldDateValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleText.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleText.ts index c37826b92..4305534f4 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleText.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleText.ts @@ -4,8 +4,7 @@ import { ViewFieldMetadata, } from '../ViewField'; -export function isViewFieldDoubleText( +export const isViewFieldDoubleText = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'double-text'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'double-text'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChip.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChip.ts index 45b59c668..a36fafd0c 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChip.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChip.ts @@ -4,8 +4,7 @@ import { ViewFieldMetadata, } from '../ViewField'; -export function isViewFieldDoubleTextChip( +export const isViewFieldDoubleTextChip = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'double-text-chip'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'double-text-chip'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChipValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChipValue.ts index 4161d2d9f..7cc5a0841 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChipValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextChipValue.ts @@ -1,12 +1,9 @@ import { ViewFieldDoubleTextChipValue } from '../ViewField'; // TODO: add yup -export function isViewFieldDoubleTextChipValue( +export const isViewFieldDoubleTextChipValue = ( fieldValue: unknown, -): fieldValue is ViewFieldDoubleTextChipValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'object' - ); -} +): fieldValue is ViewFieldDoubleTextChipValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'object'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextValue.ts index 3af8083e9..45cdd33fa 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldDoubleTextValue.ts @@ -1,12 +1,9 @@ import { ViewFieldDoubleTextValue } from '../ViewField'; // TODO: add yup -export function isViewFieldDoubleTextValue( +export const isViewFieldDoubleTextValue = ( fieldValue: unknown, -): fieldValue is ViewFieldDoubleTextValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'object' - ); -} +): fieldValue is ViewFieldDoubleTextValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'object'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldEmail.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldEmail.ts index 10d77c3fd..eaaff5f86 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldEmail.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldEmail.ts @@ -4,8 +4,7 @@ import { ViewFieldMetadata, } from '../ViewField'; -export function isViewFieldEmail( +export const isViewFieldEmail = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'email'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'email'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldEmailValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldEmailValue.ts index f7c23ea44..2f4a349f3 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldEmailValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldEmailValue.ts @@ -1,11 +1,8 @@ import { ViewFieldEmailValue } from '../ViewField'; -export function isViewFieldEmailValue( +export const isViewFieldEmailValue = ( fieldValue: unknown, -): fieldValue is ViewFieldEmailValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is ViewFieldEmailValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldMoney.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldMoney.ts index 5e6f8c10a..563c82f02 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldMoney.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldMoney.ts @@ -4,8 +4,7 @@ import { ViewFieldMoneyMetadata, } from '../ViewField'; -export function isViewFieldMoney( +export const isViewFieldMoney = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'moneyAmount'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'moneyAmount'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldMoneyValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldMoneyValue.ts index db233d3b6..e336369bb 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldMoneyValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldMoneyValue.ts @@ -1,10 +1,7 @@ import { ViewFieldMoneyValue } from '../ViewField'; -export function isViewFieldMoneyValue( +export const isViewFieldMoneyValue = ( fieldValue: unknown, -): fieldValue is ViewFieldMoneyValue { - return ( - fieldValue === null || - (fieldValue !== undefined && typeof fieldValue === 'number') - ); -} +): fieldValue is ViewFieldMoneyValue => + fieldValue === null || + (fieldValue !== undefined && typeof fieldValue === 'number'); diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldNumber.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldNumber.ts index c47ce696f..28301f77b 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldNumber.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldNumber.ts @@ -4,8 +4,7 @@ import { ViewFieldNumberMetadata, } from '../ViewField'; -export function isViewFieldNumber( +export const isViewFieldNumber = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'number'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'number'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldNumberValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldNumberValue.ts index c4e6a494b..ff7981557 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldNumberValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldNumberValue.ts @@ -1,12 +1,9 @@ import { ViewFieldNumberValue } from '../ViewField'; // TODO: add yup -export function isViewFieldNumberValue( +export const isViewFieldNumberValue = ( fieldValue: unknown, -): fieldValue is ViewFieldNumberValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'number' - ); -} +): fieldValue is ViewFieldNumberValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'number'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldPhone.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldPhone.ts index 516438952..51ad9f7cf 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldPhone.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldPhone.ts @@ -4,8 +4,7 @@ import { ViewFieldPhoneMetadata, } from '../ViewField'; -export function isViewFieldPhone( +export const isViewFieldPhone = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'phone'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'phone'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldPhoneValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldPhoneValue.ts index 2224bd091..0fc0f3b3d 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldPhoneValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldPhoneValue.ts @@ -1,12 +1,9 @@ import { ViewFieldPhoneValue } from '../ViewField'; // TODO: add yup -export function isViewFieldPhoneValue( +export const isViewFieldPhoneValue = ( fieldValue: unknown, -): fieldValue is ViewFieldPhoneValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is ViewFieldPhoneValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldProbability.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldProbability.ts index 8ac4e0ee7..eaf5d8a74 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldProbability.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldProbability.ts @@ -4,8 +4,7 @@ import { ViewFieldProbabilityMetadata, } from '../ViewField'; -export function isViewFieldProbability( +export const isViewFieldProbability = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'probability'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'probability'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldProbabilityValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldProbabilityValue.ts index 87bb65804..b322acf96 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldProbabilityValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldProbabilityValue.ts @@ -1,12 +1,9 @@ import { ViewFieldProbabilityValue } from '../ViewField'; // TODO: add yup -export function isViewFieldProbabilityValue( +export const isViewFieldProbabilityValue = ( fieldValue: unknown, -): fieldValue is ViewFieldProbabilityValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'number' - ); -} +): fieldValue is ViewFieldProbabilityValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'number'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldRelation.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldRelation.ts index cd0f61b09..d757d3921 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldRelation.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldRelation.ts @@ -4,8 +4,7 @@ import { ViewFieldRelationMetadata, } from '../ViewField'; -export function isViewFieldRelation( +export const isViewFieldRelation = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'relation'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'relation'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldRelationValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldRelationValue.ts index 122bbe7e9..45ff1a519 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldRelationValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldRelationValue.ts @@ -1,8 +1,7 @@ import { ViewFieldRelationValue } from '../ViewField'; // TODO: add yup -export function isViewFieldRelationValue( +export const isViewFieldRelationValue = ( fieldValue: unknown, -): fieldValue is ViewFieldRelationValue { - return fieldValue !== undefined && typeof fieldValue === 'object'; -} +): fieldValue is ViewFieldRelationValue => + fieldValue !== undefined && typeof fieldValue === 'object'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldText.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldText.ts index b914477b0..57571f047 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldText.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldText.ts @@ -4,8 +4,7 @@ import { ViewFieldTextMetadata, } from '../ViewField'; -export function isViewFieldText( +export const isViewFieldText = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'text'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'text'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldTextValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldTextValue.ts index d0e32095d..e1568d2d3 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldTextValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldTextValue.ts @@ -1,12 +1,9 @@ import { ViewFieldTextValue } from '../ViewField'; // TODO: add yup -export function isViewFieldTextValue( +export const isViewFieldTextValue = ( fieldValue: unknown, -): fieldValue is ViewFieldTextValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is ViewFieldTextValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldURL.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldURL.ts index fb99732f3..c6ae9920e 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldURL.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldURL.ts @@ -4,8 +4,7 @@ import { ViewFieldURLMetadata, } from '../ViewField'; -export function isViewFieldURL( +export const isViewFieldURL = ( field: ViewFieldDefinition, -): field is ViewFieldDefinition { - return field.metadata.type === 'url'; -} +): field is ViewFieldDefinition => + field.metadata.type === 'url'; diff --git a/front/src/modules/ui/editable-field/types/guards/isViewFieldURLValue.ts b/front/src/modules/ui/editable-field/types/guards/isViewFieldURLValue.ts index 4e924c385..486fc205c 100644 --- a/front/src/modules/ui/editable-field/types/guards/isViewFieldURLValue.ts +++ b/front/src/modules/ui/editable-field/types/guards/isViewFieldURLValue.ts @@ -1,12 +1,9 @@ import { ViewFieldURLValue } from '../ViewField'; // TODO: add yup -export function isViewFieldURLValue( +export const isViewFieldURLValue = ( fieldValue: unknown, -): fieldValue is ViewFieldURLValue { - return ( - fieldValue !== null && - fieldValue !== undefined && - typeof fieldValue === 'string' - ); -} +): fieldValue is ViewFieldURLValue => + fieldValue !== null && + fieldValue !== undefined && + typeof fieldValue === 'string'; diff --git a/front/src/modules/ui/editable-field/variants/components/DateEditableField.tsx b/front/src/modules/ui/editable-field/variants/components/DateEditableField.tsx index 6d82b522a..8751f66a7 100644 --- a/front/src/modules/ui/editable-field/variants/components/DateEditableField.tsx +++ b/front/src/modules/ui/editable-field/variants/components/DateEditableField.tsx @@ -15,16 +15,16 @@ type OwnProps = { hotkeyScope: string; }; -export function DateEditableField({ +export const DateEditableField = ({ Icon, value, label, onSubmit, hotkeyScope, -}: OwnProps) { - async function handleChange(newValue: string) { +}: OwnProps) => { + const handleChange = async (newValue: string) => { onSubmit?.(newValue); - } + }; const internalDateValue = value ? parseDate(value).toJSDate() : null; @@ -47,4 +47,4 @@ export function DateEditableField({ /> ); -} +}; diff --git a/front/src/modules/ui/editable-field/variants/components/EditableFieldEditModeDate.tsx b/front/src/modules/ui/editable-field/variants/components/EditableFieldEditModeDate.tsx index ff396720e..55e5e4899 100644 --- a/front/src/modules/ui/editable-field/variants/components/EditableFieldEditModeDate.tsx +++ b/front/src/modules/ui/editable-field/variants/components/EditableFieldEditModeDate.tsx @@ -13,11 +13,11 @@ type OwnProps = { }; // TODO: refactor this component to use the same logic as the GenericDateField component -export function EditableFieldEditModeDate({ +export const EditableFieldEditModeDate = ({ value, onChange, parentHotkeyScope, -}: OwnProps) { +}: OwnProps) => { const [internalValue, setInternalValue] = useState(value); useEffect(() => { @@ -26,18 +26,18 @@ export function EditableFieldEditModeDate({ const { closeEditableField } = useEditableField(); - function handleClickOutside() { + const handleClickOutside = () => { closeEditableField(); - } + }; - function handleEnter(newValue: Nullable) { + const handleEnter = (newValue: Nullable) => { onChange?.(newValue?.toISOString() ?? ''); closeEditableField(); - } + }; - function handleEscape() { + const handleEscape = () => { closeEditableField(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/editor/components/BlockEditor.tsx b/front/src/modules/ui/editor/components/BlockEditor.tsx index aafd640d4..049e35df5 100644 --- a/front/src/modules/ui/editor/components/BlockEditor.tsx +++ b/front/src/modules/ui/editor/components/BlockEditor.tsx @@ -23,10 +23,8 @@ const StyledEditor = styled.div` } `; -export function BlockEditor({ editor }: BlockEditorProps) { - return ( - - - - ); -} +export const BlockEditor = ({ editor }: BlockEditorProps) => ( + + + +); diff --git a/front/src/modules/ui/icon/components/IconAddressBook.tsx b/front/src/modules/ui/icon/components/IconAddressBook.tsx index b9ddebfd1..f5beb634e 100644 --- a/front/src/modules/ui/icon/components/IconAddressBook.tsx +++ b/front/src/modules/ui/icon/components/IconAddressBook.tsx @@ -2,9 +2,9 @@ import { TablerIconsProps } from '@/ui/icon'; import { ReactComponent as IconAddressBookRaw } from '../assets/address-book.svg'; -export function IconAddressBook(props: TablerIconsProps): JSX.Element { +export const IconAddressBook = (props: TablerIconsProps): JSX.Element => { const size = props.size ?? 24; const stroke = props.stroke ?? 2; return ; -} +}; diff --git a/front/src/modules/ui/input/components/AutosizeTextInput.tsx b/front/src/modules/ui/input/components/AutosizeTextInput.tsx index 30fc71c39..978d4cb54 100644 --- a/front/src/modules/ui/input/components/AutosizeTextInput.tsx +++ b/front/src/modules/ui/input/components/AutosizeTextInput.tsx @@ -105,14 +105,14 @@ const StyledCommentText = styled.div` padding-top: ${({ theme }) => theme.spacing(1)}; `; -export function AutosizeTextInput({ +export const AutosizeTextInput = ({ placeholder, onValidate, minRows = 1, onFocus, variant = AutosizeTextInputVariant.Icon, buttonTitle, -}: OwnProps) { +}: OwnProps) => { const [isFocused, setIsFocused] = useState(false); const [isHidden, setIsHidden] = useState( variant === AutosizeTextInputVariant.Button, @@ -160,17 +160,17 @@ export function AutosizeTextInput({ [onValidate, setText, isFocused], ); - function handleInputChange(event: React.FormEvent) { + const handleInputChange = (event: React.FormEvent) => { const newText = event.currentTarget.value; setText(newText); - } + }; - function handleOnClickSendButton() { + const handleOnClickSendButton = () => { onValidate?.(text); setText(''); - } + }; const computedMinRows = minRows > MAX_ROWS ? MAX_ROWS : minRows; @@ -231,4 +231,4 @@ export function AutosizeTextInput({ ); -} +}; diff --git a/front/src/modules/ui/input/components/BooleanInput.tsx b/front/src/modules/ui/input/components/BooleanInput.tsx index c0742f6a2..697c5f905 100644 --- a/front/src/modules/ui/input/components/BooleanInput.tsx +++ b/front/src/modules/ui/input/components/BooleanInput.tsx @@ -19,17 +19,17 @@ type OwnProps = { onToggle?: (newValue: boolean) => void; }; -export function BooleanInput({ value, onToggle }: OwnProps) { +export const BooleanInput = ({ value, onToggle }: OwnProps) => { const [internalValue, setInternalValue] = useState(value); useEffect(() => { setInternalValue(value); }, [value]); - function handleClick() { + const handleClick = () => { setInternalValue(!internalValue); onToggle?.(!internalValue); - } + }; const theme = useTheme(); @@ -45,4 +45,4 @@ export function BooleanInput({ value, onToggle }: OwnProps) { ); -} +}; diff --git a/front/src/modules/ui/input/components/Checkbox.tsx b/front/src/modules/ui/input/components/Checkbox.tsx index e30e35022..08cd7c9f1 100644 --- a/front/src/modules/ui/input/components/Checkbox.tsx +++ b/front/src/modules/ui/input/components/Checkbox.tsx @@ -108,7 +108,7 @@ const StyledInput = styled.input` } `; -export function Checkbox({ +export const Checkbox = ({ checked, onChange, onCheckedChange, @@ -116,7 +116,7 @@ export function Checkbox({ variant = CheckboxVariant.Primary, size = CheckboxSize.Small, shape = CheckboxShape.Squared, -}: OwnProps) { +}: OwnProps) => { const [isInternalChecked, setIsInternalChecked] = React.useState(false); @@ -124,11 +124,11 @@ export function Checkbox({ setIsInternalChecked(checked); }, [checked]); - function handleChange(event: React.ChangeEvent) { + const handleChange = (event: React.ChangeEvent) => { onChange?.(event); onCheckedChange?.(event.target.checked); setIsInternalChecked(event.target.checked); - } + }; return ( @@ -156,4 +156,4 @@ export function Checkbox({ ); -} +}; diff --git a/front/src/modules/ui/input/components/DateInput.tsx b/front/src/modules/ui/input/components/DateInput.tsx index 0925d1772..debeaadad 100644 --- a/front/src/modules/ui/input/components/DateInput.tsx +++ b/front/src/modules/ui/input/components/DateInput.tsx @@ -40,13 +40,13 @@ export type DateInputEditProps = { hotkeyScope: string; }; -export function DateInput({ +export const DateInput = ({ value, hotkeyScope, onEnter, onEscape, onClickOutside, -}: DateInputEditProps) { +}: DateInputEditProps) => { const theme = useTheme(); const [internalValue, setInternalValue] = useState(value); @@ -63,9 +63,9 @@ export function DateInput({ ], }); - function handleChange(newDate: Date) { + const handleChange = (newDate: Date) => { setInternalValue(newDate); - } + }; useEffect(() => { setInternalValue(value); @@ -100,4 +100,4 @@ export function DateInput({ ); -} +}; diff --git a/front/src/modules/ui/input/components/DatePicker.tsx b/front/src/modules/ui/input/components/DatePicker.tsx index 5683555ad..c3dfdf59d 100644 --- a/front/src/modules/ui/input/components/DatePicker.tsx +++ b/front/src/modules/ui/input/components/DatePicker.tsx @@ -226,26 +226,28 @@ export type DatePickerProps = { onChange?: (date: Date) => void; }; -export function DatePicker({ date, onChange, onMouseSelect }: DatePickerProps) { - return ( - - { - // We need to use onSelect here but onChange is almost redundant with onSelect but is required - }} - customInput={<>} - onSelect={(date: Date, event) => { - if (event?.type === 'click') { - onMouseSelect?.(date); - } else { - onChange?.(date); - } - }} - /> - - ); -} +export const DatePicker = ({ + date, + onChange, + onMouseSelect, +}: DatePickerProps) => ( + + { + // We need to use onSelect here but onChange is almost redundant with onSelect but is required + }} + customInput={<>} + onSelect={(date: Date, event) => { + if (event?.type === 'click') { + onMouseSelect?.(date); + } else { + onChange?.(date); + } + }} + /> + +); diff --git a/front/src/modules/ui/input/components/DoubleTextInputEdit.tsx b/front/src/modules/ui/input/components/DoubleTextInputEdit.tsx index 72c11a9a7..3a60ab691 100644 --- a/front/src/modules/ui/input/components/DoubleTextInputEdit.tsx +++ b/front/src/modules/ui/input/components/DoubleTextInputEdit.tsx @@ -32,40 +32,38 @@ const StyledTextInput = styled(StyledInput)` } `; -export function DoubleTextInputEdit({ +export const DoubleTextInputEdit = ({ firstValue, secondValue, firstValuePlaceholder, secondValuePlaceholder, onChange, -}: DoubleTextInputEditProps) { - return ( - - - {(nodeDimensions) => ( - ) => { - onChange(event.target.value, secondValue); - }} - /> - )} - - - {(nodeDimensions) => ( - ) => { - onChange(firstValue, event.target.value); - }} - /> - )} - - - ); -} +}: DoubleTextInputEditProps) => ( + + + {(nodeDimensions) => ( + ) => { + onChange(event.target.value, secondValue); + }} + /> + )} + + + {(nodeDimensions) => ( + ) => { + onChange(firstValue, event.target.value); + }} + /> + )} + + +); diff --git a/front/src/modules/ui/input/components/PhoneInput.tsx b/front/src/modules/ui/input/components/PhoneInput.tsx index d14113f8c..0d496c032 100644 --- a/front/src/modules/ui/input/components/PhoneInput.tsx +++ b/front/src/modules/ui/input/components/PhoneInput.tsx @@ -80,7 +80,7 @@ export type PhoneCellEditProps = { hotkeyScope: string; }; -export function PhoneInput({ +export const PhoneInput = ({ autoFocus, value, onEnter, @@ -89,7 +89,7 @@ export function PhoneInput({ onShiftTab, onClickOutside, hotkeyScope, -}: PhoneCellEditProps) { +}: PhoneCellEditProps) => { const [internalValue, setInternalValue] = useState(value); const wrapperRef = useRef(null); @@ -119,4 +119,4 @@ export function PhoneInput({ /> ); -} +}; diff --git a/front/src/modules/ui/input/components/Radio.tsx b/front/src/modules/ui/input/components/Radio.tsx index 90980ed6b..a7c5b8afc 100644 --- a/front/src/modules/ui/input/components/Radio.tsx +++ b/front/src/modules/ui/input/components/Radio.tsx @@ -110,7 +110,7 @@ export type RadioProps = { labelPosition?: LabelPosition; }; -export function Radio({ +export const Radio = ({ checked, value, onChange, @@ -119,11 +119,11 @@ export function Radio({ labelPosition = LabelPosition.Right, disabled = false, ...restProps -}: RadioProps) { - function handleChange(event: React.ChangeEvent) { +}: RadioProps) => { + const handleChange = (event: React.ChangeEvent) => { onChange?.(event); onCheckedChange?.(event.target.checked); - } + }; return ( @@ -152,6 +152,6 @@ export function Radio({ )} ); -} +}; Radio.Group = RadioGroup; diff --git a/front/src/modules/ui/input/components/RadioGroup.tsx b/front/src/modules/ui/input/components/RadioGroup.tsx index fb94d23fb..3e3424a5f 100644 --- a/front/src/modules/ui/input/components/RadioGroup.tsx +++ b/front/src/modules/ui/input/components/RadioGroup.tsx @@ -9,18 +9,18 @@ type RadioGroupProps = React.PropsWithChildren & { onValueChange?: (value: string) => void; }; -export function RadioGroup({ +export const RadioGroup = ({ value, onChange, onValueChange, children, -}: RadioGroupProps) { +}: RadioGroupProps) => { const theme = useTheme(); - function handleChange(event: React.ChangeEvent) { + const handleChange = (event: React.ChangeEvent) => { onChange?.(event); onValueChange?.(event.target.value); - } + }; return ( <> @@ -36,4 +36,4 @@ export function RadioGroup({ })} ); -} +}; diff --git a/front/src/modules/ui/input/components/TextInput.tsx b/front/src/modules/ui/input/components/TextInput.tsx index 2b5e1b0eb..ee3defe33 100644 --- a/front/src/modules/ui/input/components/TextInput.tsx +++ b/front/src/modules/ui/input/components/TextInput.tsx @@ -23,7 +23,7 @@ type OwnProps = { hotkeyScope: string; }; -export function TextInput({ +export const TextInput = ({ placeholder, autoFocus, value, @@ -33,14 +33,14 @@ export function TextInput({ onTab, onShiftTab, onClickOutside, -}: OwnProps) { +}: OwnProps) => { const [internalText, setInternalText] = useState(value); const wrapperRef = useRef(null); - function handleChange(event: ChangeEvent) { + const handleChange = (event: ChangeEvent) => { setInternalText(event.target.value); - } + }; useEffect(() => { setInternalText(value); @@ -67,4 +67,4 @@ export function TextInput({ value={internalText} /> ); -} +}; diff --git a/front/src/modules/ui/input/components/Toggle.tsx b/front/src/modules/ui/input/components/Toggle.tsx index 7e66ece0a..594a021cc 100644 --- a/front/src/modules/ui/input/components/Toggle.tsx +++ b/front/src/modules/ui/input/components/Toggle.tsx @@ -37,16 +37,16 @@ export type ToggleProps = { color?: string; }; -export function Toggle({ value, onChange, color }: ToggleProps) { +export const Toggle = ({ value, onChange, color }: ToggleProps) => { const [isOn, setIsOn] = useState(value ?? false); - function handleChange() { + const handleChange = () => { setIsOn(!isOn); if (onChange) { onChange(!isOn); } - } + }; useEffect(() => { if (value !== isOn) { @@ -60,4 +60,4 @@ export function Toggle({ value, onChange, color }: ToggleProps) { ); -} +}; diff --git a/front/src/modules/ui/input/hooks/useRegisterInputEvents.ts b/front/src/modules/ui/input/hooks/useRegisterInputEvents.ts index dd8d87d6b..eb8814fec 100644 --- a/front/src/modules/ui/input/hooks/useRegisterInputEvents.ts +++ b/front/src/modules/ui/input/hooks/useRegisterInputEvents.ts @@ -2,7 +2,7 @@ import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { isDefined } from '~/utils/isDefined'; -export function useRegisterInputEvents({ +export const useRegisterInputEvents = ({ inputRef, inputValue, onEscape, @@ -20,7 +20,7 @@ export function useRegisterInputEvents({ onShiftTab?: (inputValue: T) => void; onClickOutside?: (event: MouseEvent | TouchEvent, inputValue: T) => void; hotkeyScope: string; -}) { +}) => { useListenClickOutside({ refs: [inputRef], callback: (event) => { @@ -64,4 +64,4 @@ export function useRegisterInputEvents({ hotkeyScope, [onShiftTab, inputValue], ); -} +}; diff --git a/front/src/modules/ui/input/image/components/ImageInput.tsx b/front/src/modules/ui/input/image/components/ImageInput.tsx index 499ecd66e..e2e99c5ab 100644 --- a/front/src/modules/ui/input/image/components/ImageInput.tsx +++ b/front/src/modules/ui/input/image/components/ImageInput.tsx @@ -87,7 +87,7 @@ type Props = Omit, 'children'> & { disabled?: boolean; }; -export function ImageInput({ +export const ImageInput = ({ picture, onUpload, onRemove, @@ -96,7 +96,7 @@ export function ImageInput({ errorMessage, disabled = false, ...restProps -}: Props) { +}: Props) => { const theme = useTheme(); const hiddenFileInput = React.useRef(null); const onUploadButtonClick = () => { @@ -168,4 +168,4 @@ export function ImageInput({ ); -} +}; diff --git a/front/src/modules/ui/input/relation-picker/components/MultipleEntitySelect.tsx b/front/src/modules/ui/input/relation-picker/components/MultipleEntitySelect.tsx index 1cbe79a9a..f4308bfb5 100644 --- a/front/src/modules/ui/input/relation-picker/components/MultipleEntitySelect.tsx +++ b/front/src/modules/ui/input/relation-picker/components/MultipleEntitySelect.tsx @@ -22,7 +22,7 @@ export type EntitiesForMultipleEntitySelect< loading: boolean; }; -export function MultipleEntitySelect< +export const MultipleEntitySelect = < CustomEntityForSelect extends EntityForSelect, >({ entities, @@ -39,15 +39,15 @@ export function MultipleEntitySelect< onCancel?: () => void; onSubmit?: () => void; value: Record; -}) { +}) => { const debouncedSetSearchFilter = debounce(onSearchFilterChange, 100, { leading: true, }); - function handleFilterChange(event: React.ChangeEvent) { + const handleFilterChange = (event: React.ChangeEvent) => { debouncedSetSearchFilter(event.currentTarget.value); onSearchFilterChange(event.currentTarget.value); - } + }; let entitiesInDropdown = [ ...(entities.filteredSelectedEntities ?? []), @@ -103,4 +103,4 @@ export function MultipleEntitySelect< ); -} +}; diff --git a/front/src/modules/ui/input/relation-picker/components/SingleEntitySelect.tsx b/front/src/modules/ui/input/relation-picker/components/SingleEntitySelect.tsx index ebb44fe46..68c039c1c 100644 --- a/front/src/modules/ui/input/relation-picker/components/SingleEntitySelect.tsx +++ b/front/src/modules/ui/input/relation-picker/components/SingleEntitySelect.tsx @@ -34,7 +34,7 @@ export type SingleEntitySelectProps< | 'selectedEntity' >; -export function SingleEntitySelect< +export const SingleEntitySelect = < CustomEntityForSelect extends EntityForSelect, >({ disableBackgroundBlur = false, @@ -42,7 +42,7 @@ export function SingleEntitySelect< onCreate, width, ...props -}: SingleEntitySelectProps) { +}: SingleEntitySelectProps) => { const containerRef = useRef(null); const { searchFilter, handleSearchFilterChange } = useEntitySelectSearch(); @@ -82,4 +82,4 @@ export function SingleEntitySelect< )} ); -} +}; diff --git a/front/src/modules/ui/input/relation-picker/components/SingleEntitySelectBase.tsx b/front/src/modules/ui/input/relation-picker/components/SingleEntitySelectBase.tsx index d7098c697..a1ebf4165 100644 --- a/front/src/modules/ui/input/relation-picker/components/SingleEntitySelectBase.tsx +++ b/front/src/modules/ui/input/relation-picker/components/SingleEntitySelectBase.tsx @@ -28,7 +28,7 @@ export type SingleEntitySelectBaseProps< selectedEntity?: CustomEntityForSelect; }; -export function SingleEntitySelectBase< +export const SingleEntitySelectBase = < CustomEntityForSelect extends EntityForSelect, >({ EmptyIcon, @@ -38,7 +38,7 @@ export function SingleEntitySelectBase< onCancel, onEntitySelected, selectedEntity, -}: SingleEntitySelectBaseProps) { +}: SingleEntitySelectBaseProps) => { const containerRef = useRef(null); const entitiesInDropdown = [selectedEntity, ...entitiesToSelect].filter( (entity): entity is CustomEntityForSelect => @@ -105,4 +105,4 @@ export function SingleEntitySelectBase< )} ); -} +}; diff --git a/front/src/modules/ui/input/relation-picker/components/__stories__/SingleEntitySelect.stories.tsx b/front/src/modules/ui/input/relation-picker/components/__stories__/SingleEntitySelect.stories.tsx index b4aea64de..9c7c29c19 100644 --- a/front/src/modules/ui/input/relation-picker/components/__stories__/SingleEntitySelect.stories.tsx +++ b/front/src/modules/ui/input/relation-picker/components/__stories__/SingleEntitySelect.stories.tsx @@ -33,7 +33,8 @@ const meta: Meta = { ), }, }, - render: function Render(args) { + render: (args) => { + // eslint-disable-next-line react-hooks/rules-of-hooks const searchFilter = useRecoilScopedValue( relationPickerSearchFilterScopedState, ); diff --git a/front/src/modules/ui/input/relation-picker/components/skeletons/DropdownMenuSkeletonItem.tsx b/front/src/modules/ui/input/relation-picker/components/skeletons/DropdownMenuSkeletonItem.tsx index 38b3e3ae3..f4853bc48 100644 --- a/front/src/modules/ui/input/relation-picker/components/skeletons/DropdownMenuSkeletonItem.tsx +++ b/front/src/modules/ui/input/relation-picker/components/skeletons/DropdownMenuSkeletonItem.tsx @@ -13,7 +13,7 @@ const StyledDropdownMenuSkeletonContainer = styled.div` width: calc(100% - 2 * var(--horizontal-padding)); `; -export function DropdownMenuSkeletonItem() { +export const DropdownMenuSkeletonItem = () => { const theme = useTheme(); return ( @@ -25,4 +25,4 @@ export function DropdownMenuSkeletonItem() { ); -} +}; diff --git a/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectScroll.ts b/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectScroll.ts index e69e1cf90..67d78b391 100644 --- a/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectScroll.ts +++ b/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectScroll.ts @@ -8,7 +8,7 @@ import { relationPickerHoverIndexScopedState } from '../states/relationPickerHov import { EntityForSelect } from '../types/EntityForSelect'; import { RelationPickerHotkeyScope } from '../types/RelationPickerHotkeyScope'; -export function useEntitySelectScroll< +export const useEntitySelectScroll = < CustomEntityForSelect extends EntityForSelect, >({ containerRef, @@ -16,11 +16,11 @@ export function useEntitySelectScroll< }: { entities: CustomEntityForSelect[]; containerRef: React.RefObject; -}) { +}) => { const [relationPickerHoverIndex, setRelationPickerHoverIndex] = useRecoilScopedState(relationPickerHoverIndexScopedState); - function resetScroll() { + const resetScroll = () => { setRelationPickerHoverIndex(0); const currentHoveredRef = containerRef.current?.children[0] as HTMLElement; @@ -34,7 +34,7 @@ export function useEntitySelectScroll< }, time: 0, }); - } + }; useScopedHotkeys( Key.ArrowUp, @@ -94,4 +94,4 @@ export function useEntitySelectScroll< hoveredIndex: relationPickerHoverIndex, resetScroll, }; -} +}; diff --git a/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectSearch.ts b/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectSearch.ts index cc91befcd..3858fe757 100644 --- a/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectSearch.ts +++ b/front/src/modules/ui/input/relation-picker/hooks/useEntitySelectSearch.ts @@ -6,7 +6,7 @@ import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoi import { relationPickerHoverIndexScopedState } from '../states/relationPickerHoverIndexScopedState'; import { relationPickerSearchFilterScopedState } from '../states/relationPickerSearchFilterScopedState'; -export function useEntitySelectSearch() { +export const useEntitySelectSearch = () => { const [, setRelationPickerHoverIndex] = useRecoilScopedState( relationPickerHoverIndexScopedState, ); @@ -22,12 +22,12 @@ export function useEntitySelectSearch() { }, ); - function handleSearchFilterChange( + const handleSearchFilterChange = ( event: React.ChangeEvent, - ) { + ) => { debouncedSetSearchFilter(event.currentTarget.value); setRelationPickerHoverIndex(0); - } + }; useEffect(() => { setRelationPickerSearchFilter(''); @@ -37,4 +37,4 @@ export function useEntitySelectSearch() { searchFilter: relationPickerSearchFilter, handleSearchFilterChange, }; -} +}; diff --git a/front/src/modules/ui/input/text/components/TextInputEdit.tsx b/front/src/modules/ui/input/text/components/TextInputEdit.tsx index af8686457..e0cf341b1 100644 --- a/front/src/modules/ui/input/text/components/TextInputEdit.tsx +++ b/front/src/modules/ui/input/text/components/TextInputEdit.tsx @@ -30,21 +30,19 @@ export type TextInputEditProps = { autoFocus?: boolean; }; -export function TextInputEdit({ +export const TextInputEdit = ({ placeholder, value, onChange, autoFocus, -}: TextInputEditProps) { - return ( - - onChange?.(e.target.value)} - /> - - ); -} +}: TextInputEditProps) => ( + + onChange?.(e.target.value)} + /> + +); diff --git a/front/src/modules/ui/input/text/components/TextInputSettings.tsx b/front/src/modules/ui/input/text/components/TextInputSettings.tsx index dcfe40ec0..37441a08e 100644 --- a/front/src/modules/ui/input/text/components/TextInputSettings.tsx +++ b/front/src/modules/ui/input/text/components/TextInputSettings.tsx @@ -98,7 +98,7 @@ const StyledTrailingIcon = styled.div` const INPUT_TYPE_PASSWORD = 'password'; -function TextInputComponent( +const TextInputComponent = ( { label, value, @@ -113,7 +113,7 @@ function TextInputComponent( ...props }: OwnProps, ref: ForwardedRef, -): JSX.Element { +): JSX.Element => { const theme = useTheme(); const inputRef = useRef(null); @@ -195,6 +195,6 @@ function TextInputComponent( {error && {error}} ); -} +}; export const TextInputSettings = forwardRef(TextInputComponent); diff --git a/front/src/modules/ui/input/text/components/__stories__/TextInput.stories.tsx b/front/src/modules/ui/input/text/components/__stories__/TextInput.stories.tsx index 573f791db..a5eef269b 100644 --- a/front/src/modules/ui/input/text/components/__stories__/TextInput.stories.tsx +++ b/front/src/modules/ui/input/text/components/__stories__/TextInput.stories.tsx @@ -20,11 +20,11 @@ const meta: Meta = { export default meta; type Story = StoryObj; -function FakeTextInput({ +const FakeTextInput = ({ onChange, value: initialValue, ...props -}: React.ComponentProps) { +}: React.ComponentProps) => { const [value, setValue] = useState(initialValue); return ( ); -} +}; export const Default: Story = { argTypes: { value: { control: false } }, diff --git a/front/src/modules/ui/layout/components/DefaultLayout.tsx b/front/src/modules/ui/layout/components/DefaultLayout.tsx index 6357a25c8..3486e9a35 100644 --- a/front/src/modules/ui/layout/components/DefaultLayout.tsx +++ b/front/src/modules/ui/layout/components/DefaultLayout.tsx @@ -54,7 +54,7 @@ type OwnProps = { children: React.ReactNode; }; -export function DefaultLayout({ children }: OwnProps) { +export const DefaultLayout = ({ children }: OwnProps) => { const onboardingStatus = useOnboardingStatus(); return ( @@ -79,4 +79,4 @@ export function DefaultLayout({ children }: OwnProps) { ); -} +}; diff --git a/front/src/modules/ui/layout/components/PageAddButton.tsx b/front/src/modules/ui/layout/components/PageAddButton.tsx index 9781b63af..449a2e1f6 100644 --- a/front/src/modules/ui/layout/components/PageAddButton.tsx +++ b/front/src/modules/ui/layout/components/PageAddButton.tsx @@ -5,15 +5,13 @@ type OwnProps = { onClick: () => void; }; -export function PageAddButton({ onClick }: OwnProps) { - return ( - - ); -} +export const PageAddButton = ({ onClick }: OwnProps) => ( + +); diff --git a/front/src/modules/ui/layout/components/PageBody.tsx b/front/src/modules/ui/layout/components/PageBody.tsx index 201381e99..5525cc4c1 100644 --- a/front/src/modules/ui/layout/components/PageBody.tsx +++ b/front/src/modules/ui/layout/components/PageBody.tsx @@ -5,10 +5,8 @@ type OwnProps = { children: JSX.Element | JSX.Element[]; }; -export function PageBody({ children }: OwnProps) { - return ( - - {children} - - ); -} +export const PageBody = ({ children }: OwnProps) => ( + + {children} + +); diff --git a/front/src/modules/ui/layout/components/PageContainer.tsx b/front/src/modules/ui/layout/components/PageContainer.tsx index 5116513ba..08b28b543 100644 --- a/front/src/modules/ui/layout/components/PageContainer.tsx +++ b/front/src/modules/ui/layout/components/PageContainer.tsx @@ -10,6 +10,6 @@ const StyledContainer = styled.div` width: 100%; `; -export function PageContainer({ children }: OwnProps) { - return {children}; -} +export const PageContainer = ({ children }: OwnProps) => ( + {children} +); diff --git a/front/src/modules/ui/layout/components/PageFavoriteButton.tsx b/front/src/modules/ui/layout/components/PageFavoriteButton.tsx index e31414874..40e41481c 100644 --- a/front/src/modules/ui/layout/components/PageFavoriteButton.tsx +++ b/front/src/modules/ui/layout/components/PageFavoriteButton.tsx @@ -6,15 +6,13 @@ type OwnProps = { onClick: () => void; }; -export function PageFavoriteButton({ isFavorite, onClick }: OwnProps) { - return ( - - ); -} +export const PageFavoriteButton = ({ isFavorite, onClick }: OwnProps) => ( + +); diff --git a/front/src/modules/ui/layout/components/PageHeader.tsx b/front/src/modules/ui/layout/components/PageHeader.tsx index a0f07b0dc..db94e3746 100644 --- a/front/src/modules/ui/layout/components/PageHeader.tsx +++ b/front/src/modules/ui/layout/components/PageHeader.tsx @@ -76,13 +76,13 @@ type PageHeaderProps = ComponentProps<'div'> & { children?: JSX.Element | JSX.Element[]; }; -export function PageHeader({ +export const PageHeader = ({ title, hasBackButton, Icon, children, ...props -}: PageHeaderProps) { +}: PageHeaderProps) => { const navigate = useNavigate(); const navigateBack = useCallback(() => navigate(-1), [navigate]); @@ -119,4 +119,4 @@ export function PageHeader({ {children} ); -} +}; diff --git a/front/src/modules/ui/layout/components/PageHotkeysEffect.tsx b/front/src/modules/ui/layout/components/PageHotkeysEffect.tsx index cc117eccb..cfd204680 100644 --- a/front/src/modules/ui/layout/components/PageHotkeysEffect.tsx +++ b/front/src/modules/ui/layout/components/PageHotkeysEffect.tsx @@ -5,10 +5,10 @@ type OwnProps = { onAddButtonClick?: () => void; }; -export function PageHotkeysEffect({ onAddButtonClick }: OwnProps) { +export const PageHotkeysEffect = ({ onAddButtonClick }: OwnProps) => { useScopedHotkeys('c', () => onAddButtonClick?.(), TableHotkeyScope.Table, [ onAddButtonClick, ]); return <>; -} +}; diff --git a/front/src/modules/ui/layout/components/PagePanel.tsx b/front/src/modules/ui/layout/components/PagePanel.tsx index c41b461e5..eeed1de6f 100644 --- a/front/src/modules/ui/layout/components/PagePanel.tsx +++ b/front/src/modules/ui/layout/components/PagePanel.tsx @@ -11,6 +11,6 @@ const StyledPanel = styled.div` width: 100%; `; -export function PagePanel({ children }: { children: React.ReactNode }) { - return {children}; -} +export const PagePanel = ({ children }: { children: React.ReactNode }) => ( + {children} +); diff --git a/front/src/modules/ui/layout/components/RightDrawerContainer.tsx b/front/src/modules/ui/layout/components/RightDrawerContainer.tsx index 14a0d2888..01e40f92a 100644 --- a/front/src/modules/ui/layout/components/RightDrawerContainer.tsx +++ b/front/src/modules/ui/layout/components/RightDrawerContainer.tsx @@ -33,13 +33,11 @@ const StyledLeftContainer = styled.div` width: 100%; `; -export function RightDrawerContainer({ children, topMargin }: OwnProps) { - return ( - - - {children} - - - - ); -} +export const RightDrawerContainer = ({ children, topMargin }: OwnProps) => ( + + + {children} + + + +); diff --git a/front/src/modules/ui/layout/components/ShowPageContainer.tsx b/front/src/modules/ui/layout/components/ShowPageContainer.tsx index 298ba216e..7c1378ca3 100644 --- a/front/src/modules/ui/layout/components/ShowPageContainer.tsx +++ b/front/src/modules/ui/layout/components/ShowPageContainer.tsx @@ -28,7 +28,7 @@ export type ShowPageContainerProps = { children: ReactElement[]; }; -export function ShowPageContainer({ children }: ShowPageContainerProps) { +export const ShowPageContainer = ({ children }: ShowPageContainerProps) => { const isMobile = useIsMobile(); return isMobile ? ( @@ -41,4 +41,4 @@ export function ShowPageContainer({ children }: ShowPageContainerProps) { {children} ); -} +}; diff --git a/front/src/modules/ui/layout/components/SubMenuTopBarContainer.tsx b/front/src/modules/ui/layout/components/SubMenuTopBarContainer.tsx index 2fae00673..1f6c5cd24 100644 --- a/front/src/modules/ui/layout/components/SubMenuTopBarContainer.tsx +++ b/front/src/modules/ui/layout/components/SubMenuTopBarContainer.tsx @@ -20,11 +20,11 @@ const StyledContainer = styled.div<{ isMobile: boolean }>` width: 100%; `; -export function SubMenuTopBarContainer({ +export const SubMenuTopBarContainer = ({ children, title, Icon, -}: SubMenuTopBarContainerProps) { +}: SubMenuTopBarContainerProps) => { const isMobile = useIsMobile(); return ( @@ -33,4 +33,4 @@ export function SubMenuTopBarContainer({ {children} ); -} +}; diff --git a/front/src/modules/ui/layout/hooks/useIsSubMenuNavbarDisplayed.ts b/front/src/modules/ui/layout/hooks/useIsSubMenuNavbarDisplayed.ts index 1696c292f..70622b66f 100644 --- a/front/src/modules/ui/layout/hooks/useIsSubMenuNavbarDisplayed.ts +++ b/front/src/modules/ui/layout/hooks/useIsSubMenuNavbarDisplayed.ts @@ -1,6 +1,6 @@ import { useLocation } from 'react-router-dom'; -export function useIsSubMenuNavbarDisplayed() { +export const useIsSubMenuNavbarDisplayed = () => { const currentPath = useLocation().pathname; return currentPath.match(/\/settings\//g) !== null; -} +}; diff --git a/front/src/modules/ui/layout/show-page/components/ShowPageAddButton.tsx b/front/src/modules/ui/layout/show-page/components/ShowPageAddButton.tsx index 4c83019e2..48185477f 100644 --- a/front/src/modules/ui/layout/show-page/components/ShowPageAddButton.tsx +++ b/front/src/modules/ui/layout/show-page/components/ShowPageAddButton.tsx @@ -16,20 +16,20 @@ const StyledContainer = styled.div` z-index: 1; `; -export function ShowPageAddButton({ +export const ShowPageAddButton = ({ entity, }: { entity: ActivityTargetableEntity; -}) { +}) => { const { closeDropdownButton, toggleDropdownButton } = useDropdownButton({ dropdownId: 'add-show-page', }); const openCreateActivity = useOpenCreateActivityDrawer(); - function handleSelect(type: ActivityType) { + const handleSelect = (type: ActivityType) => { openCreateActivity({ type, targetableEntities: [entity] }); closeDropdownButton(); - } + }; return ( @@ -71,4 +71,4 @@ export function ShowPageAddButton({ /> ); -} +}; diff --git a/front/src/modules/ui/layout/show-page/components/ShowPageLeftContainer.tsx b/front/src/modules/ui/layout/show-page/components/ShowPageLeftContainer.tsx index a3ad18220..1cd972243 100644 --- a/front/src/modules/ui/layout/show-page/components/ShowPageLeftContainer.tsx +++ b/front/src/modules/ui/layout/show-page/components/ShowPageLeftContainer.tsx @@ -35,9 +35,9 @@ export type ShowPageLeftContainerProps = { children: ReactElement[]; }; -export function ShowPageLeftContainer({ +export const ShowPageLeftContainer = ({ children, -}: ShowPageLeftContainerProps) { +}: ShowPageLeftContainerProps) => { const isMobile = useIsMobile(); return isMobile ? ( @@ -50,4 +50,4 @@ export function ShowPageLeftContainer({ ); -} +}; diff --git a/front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx b/front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx index 6866db02b..a1fd3d5db 100644 --- a/front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx +++ b/front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx @@ -43,13 +43,13 @@ type OwnProps = { emails?: boolean; }; -export function ShowPageRightContainer({ +export const ShowPageRightContainer = ({ entity, timeline, tasks, notes, emails, -}: OwnProps) { +}: OwnProps) => { const TASK_TABS = [ { id: 'timeline', @@ -93,4 +93,4 @@ export function ShowPageRightContainer({ {activeTabId === 'notes' && } ); -} +}; diff --git a/front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx b/front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx index 202cc89b5..a0a1a4608 100644 --- a/front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx +++ b/front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx @@ -72,14 +72,14 @@ const StyledFileInput = styled.input` display: none; `; -export function ShowPageSummaryCard({ +export const ShowPageSummaryCard = ({ id, logoOrAvatar, title, date, renderTitleEditComponent, onUploadPicture, -}: OwnProps) { +}: OwnProps) => { const beautifiedCreatedAt = date !== '' ? beautifyPastDateRelativeToNow(date) : ''; const exactCreatedAt = date !== '' ? beautifyExactDateTime(date) : ''; @@ -129,4 +129,4 @@ export function ShowPageSummaryCard({ ); -} +}; diff --git a/front/src/modules/ui/link/components/ContactLink.tsx b/front/src/modules/ui/link/components/ContactLink.tsx index 39786536c..580af1e06 100644 --- a/front/src/modules/ui/link/components/ContactLink.tsx +++ b/front/src/modules/ui/link/components/ContactLink.tsx @@ -25,14 +25,17 @@ const StyledClickable = styled.div` } `; -export function ContactLink({ className, href, children, onClick }: OwnProps) { - return ( -
- - - {children} - - -
- ); -} +export const ContactLink = ({ + className, + href, + children, + onClick, +}: OwnProps) => ( +
+ + + {children} + + +
+); diff --git a/front/src/modules/ui/link/components/PrimaryLink.tsx b/front/src/modules/ui/link/components/PrimaryLink.tsx index 7af61daa8..e8f9a914c 100644 --- a/front/src/modules/ui/link/components/PrimaryLink.tsx +++ b/front/src/modules/ui/link/components/PrimaryLink.tsx @@ -18,12 +18,10 @@ const StyledClickable = styled.div` } `; -export function PrimaryLink({ href, children, onClick }: OwnProps) { - return ( - - - {children} - - - ); -} +export const PrimaryLink = ({ href, children, onClick }: OwnProps) => ( + + + {children} + + +); diff --git a/front/src/modules/ui/link/components/RawLink.tsx b/front/src/modules/ui/link/components/RawLink.tsx index 6cef6899b..60c351440 100644 --- a/front/src/modules/ui/link/components/RawLink.tsx +++ b/front/src/modules/ui/link/components/RawLink.tsx @@ -19,14 +19,12 @@ const StyledClickable = styled.div` } `; -export function RawLink({ className, href, children, onClick }: OwnProps) { - return ( -
- - - {children} - - -
- ); -} +export const RawLink = ({ className, href, children, onClick }: OwnProps) => ( +
+ + + {children} + + +
+); diff --git a/front/src/modules/ui/link/components/RoundedLink.tsx b/front/src/modules/ui/link/components/RoundedLink.tsx index f9fa32851..e000ba370 100644 --- a/front/src/modules/ui/link/components/RoundedLink.tsx +++ b/front/src/modules/ui/link/components/RoundedLink.tsx @@ -21,22 +21,20 @@ const StyledClickable = styled.div` } `; -export function RoundedLink({ children, href, onClick }: OwnProps) { - return ( -
- {children !== '' ? ( - - - - - - ) : ( - <> - )} -
- ); -} +export const RoundedLink = ({ children, href, onClick }: OwnProps) => ( +
+ {children !== '' ? ( + + + + + + ) : ( + <> + )} +
+); diff --git a/front/src/modules/ui/link/components/SocialLink.tsx b/front/src/modules/ui/link/components/SocialLink.tsx index 04603b314..49a6ea4a0 100644 --- a/front/src/modules/ui/link/components/SocialLink.tsx +++ b/front/src/modules/ui/link/components/SocialLink.tsx @@ -26,7 +26,7 @@ const StyledRawLink = styled(RoundedLink)` } `; -export function SocialLink({ children, href, onClick, type }: OwnProps) { +export const SocialLink = ({ children, href, onClick, type }: OwnProps) => { let displayValue = children; if (type === 'linkedin') { @@ -56,4 +56,4 @@ export function SocialLink({ children, href, onClick, type }: OwnProps) { {displayValue} ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItem.tsx b/front/src/modules/ui/menu-item/components/MenuItem.tsx index 5cf09786c..a41c84b1c 100644 --- a/front/src/modules/ui/menu-item/components/MenuItem.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItem.tsx @@ -34,7 +34,7 @@ const StyledHoverableMenuItemBase = styled(StyledMenuItemBase)` } `; -export function MenuItem({ +export const MenuItem = ({ LeftIcon, accent = 'default', text, @@ -42,7 +42,7 @@ export function MenuItem({ className, testId, onClick, -}: MenuItemProps) { +}: MenuItemProps) => { const showIconButtons = Array.isArray(iconButtons) && iconButtons.length > 0; return ( @@ -60,4 +60,4 @@ export function MenuItem({ ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemCommand.tsx b/front/src/modules/ui/menu-item/components/MenuItemCommand.tsx index 1373c6404..266f368b4 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemCommand.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemCommand.tsx @@ -44,13 +44,13 @@ export type MenuItemProps = { onClick?: () => void; }; -export function MenuItemCommand({ +export const MenuItemCommand = ({ LeftIcon, text, command, className, onClick, -}: MenuItemProps) { +}: MenuItemProps) => { const theme = useTheme(); return ( @@ -68,4 +68,4 @@ export function MenuItemCommand({ {command} ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemMultiSelect.tsx b/front/src/modules/ui/menu-item/components/MenuItemMultiSelect.tsx index be7ba1551..1a8b5a88f 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemMultiSelect.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemMultiSelect.tsx @@ -21,16 +21,16 @@ type OwnProps = { onSelectChange?: (selected: boolean) => void; }; -export function MenuItemMultiSelect({ +export const MenuItemMultiSelect = ({ LeftIcon, text, selected, className, onSelectChange, -}: OwnProps) { - function handleOnClick() { +}: OwnProps) => { + const handleOnClick = () => { onSelectChange?.(!selected); - } + }; return ( @@ -40,4 +40,4 @@ export function MenuItemMultiSelect({ ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemMultiSelectAvatar.tsx b/front/src/modules/ui/menu-item/components/MenuItemMultiSelectAvatar.tsx index 44a4e40cd..8e3618071 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemMultiSelectAvatar.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemMultiSelectAvatar.tsx @@ -24,16 +24,16 @@ type OwnProps = { onSelectChange?: (selected: boolean) => void; }; -export function MenuItemMultiSelectAvatar({ +export const MenuItemMultiSelectAvatar = ({ avatar, text, selected, className, onSelectChange, -}: OwnProps) { - function handleOnClick() { +}: OwnProps) => { + const handleOnClick = () => { onSelectChange?.(!selected); - } + }; return ( @@ -48,4 +48,4 @@ export function MenuItemMultiSelectAvatar({ ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemNavigate.tsx b/front/src/modules/ui/menu-item/components/MenuItemNavigate.tsx index 4fe76c0c5..f01f49223 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemNavigate.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemNavigate.tsx @@ -13,12 +13,12 @@ export type MenuItemProps = { className?: string; }; -export function MenuItemNavigate({ +export const MenuItemNavigate = ({ LeftIcon, text, className, onClick, -}: MenuItemProps) { +}: MenuItemProps) => { const theme = useTheme(); return ( @@ -27,4 +27,4 @@ export function MenuItemNavigate({ ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemSelect.tsx b/front/src/modules/ui/menu-item/components/MenuItemSelect.tsx index 623530e5a..05246992c 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemSelect.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemSelect.tsx @@ -49,7 +49,7 @@ type OwnProps = { hovered?: boolean; }; -export function MenuItemSelect({ +export const MenuItemSelect = ({ LeftIcon, text, selected, @@ -57,7 +57,7 @@ export function MenuItemSelect({ onClick, disabled, hovered, -}: OwnProps) { +}: OwnProps) => { const theme = useTheme(); return ( @@ -72,4 +72,4 @@ export function MenuItemSelect({ {selected && } ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemSelectAvatar.tsx b/front/src/modules/ui/menu-item/components/MenuItemSelectAvatar.tsx index 10f8afdd0..4d1081562 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemSelectAvatar.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemSelectAvatar.tsx @@ -22,7 +22,7 @@ type OwnProps = { testId?: string; }; -export function MenuItemSelectAvatar({ +export const MenuItemSelectAvatar = ({ avatar, text, selected, @@ -31,7 +31,7 @@ export function MenuItemSelectAvatar({ disabled, hovered, testId, -}: OwnProps) { +}: OwnProps) => { const theme = useTheme(); return ( @@ -52,4 +52,4 @@ export function MenuItemSelectAvatar({ {selected && } ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemSelectColor.tsx b/front/src/modules/ui/menu-item/components/MenuItemSelectColor.tsx index b2de9a274..677dfe200 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemSelectColor.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemSelectColor.tsx @@ -30,7 +30,7 @@ type OwnProps = { color: ThemeColor; }; -export function MenuItemSelectColor({ +export const MenuItemSelectColor = ({ color, text, selected, @@ -38,7 +38,7 @@ export function MenuItemSelectColor({ onClick, disabled, hovered, -}: OwnProps) { +}: OwnProps) => { const theme = useTheme(); return ( @@ -56,4 +56,4 @@ export function MenuItemSelectColor({ {selected && } ); -} +}; diff --git a/front/src/modules/ui/menu-item/components/MenuItemToggle.tsx b/front/src/modules/ui/menu-item/components/MenuItemToggle.tsx index be09bbc83..9730cb9b0 100644 --- a/front/src/modules/ui/menu-item/components/MenuItemToggle.tsx +++ b/front/src/modules/ui/menu-item/components/MenuItemToggle.tsx @@ -12,16 +12,16 @@ type OwnProps = { onToggleChange?: (toggled: boolean) => void; }; -export function MenuItemToggle({ +export const MenuItemToggle = ({ LeftIcon, text, toggled, className, onToggleChange, -}: OwnProps) { - function handleOnClick() { +}: OwnProps) => { + const handleOnClick = () => { onToggleChange?.(!toggled); - } + }; return ( @@ -29,4 +29,4 @@ export function MenuItemToggle({ ); -} +}; diff --git a/front/src/modules/ui/menu-item/internals/components/MenuItemLeftContent.tsx b/front/src/modules/ui/menu-item/internals/components/MenuItemLeftContent.tsx index d3f21d194..6b4543b5d 100644 --- a/front/src/modules/ui/menu-item/internals/components/MenuItemLeftContent.tsx +++ b/front/src/modules/ui/menu-item/internals/components/MenuItemLeftContent.tsx @@ -13,7 +13,7 @@ type OwnProps = { text: string; }; -export function MenuItemLeftContent({ LeftIcon, text }: OwnProps) { +export const MenuItemLeftContent = ({ LeftIcon, text }: OwnProps) => { const theme = useTheme(); return ( @@ -26,4 +26,4 @@ export function MenuItemLeftContent({ LeftIcon, text }: OwnProps) { ); -} +}; diff --git a/front/src/modules/ui/modal/components/ConfirmationModal.tsx b/front/src/modules/ui/modal/components/ConfirmationModal.tsx index 33a817220..1037f6861 100644 --- a/front/src/modules/ui/modal/components/ConfirmationModal.tsx +++ b/front/src/modules/ui/modal/components/ConfirmationModal.tsx @@ -50,7 +50,7 @@ export const StyledConfirmationButton = styled(StyledCenteredButton)` } `; -export function ConfirmationModal({ +export const ConfirmationModal = ({ isOpen = false, title, subtitle, @@ -59,7 +59,7 @@ export function ConfirmationModal({ deleteButtonText = 'Delete', confirmationValue, confirmationPlaceholder, -}: ConfirmationModalProps) { +}: ConfirmationModalProps) => { const [inputConfirmationValue, setInputConfirmationValue] = useState(''); const [isValidValue, setIsValidValue] = useState(!confirmationValue); @@ -126,4 +126,4 @@ export function ConfirmationModal({ ); -} +}; diff --git a/front/src/modules/ui/modal/components/Modal.tsx b/front/src/modules/ui/modal/components/Modal.tsx index a32624920..cf3c1cb82 100644 --- a/front/src/modules/ui/modal/components/Modal.tsx +++ b/front/src/modules/ui/modal/components/Modal.tsx @@ -98,21 +98,21 @@ const StyledBackDrop = styled(motion.div)` */ type ModalHeaderProps = React.PropsWithChildren & React.ComponentProps<'div'>; -function ModalHeader({ children, ...restProps }: ModalHeaderProps) { - return {children}; -} +const ModalHeader = ({ children, ...restProps }: ModalHeaderProps) => ( + {children} +); type ModalContentProps = React.PropsWithChildren & React.ComponentProps<'div'>; -function ModalContent({ children, ...restProps }: ModalContentProps) { - return {children}; -} +const ModalContent = ({ children, ...restProps }: ModalContentProps) => ( + {children} +); type ModalFooterProps = React.PropsWithChildren & React.ComponentProps<'div'>; -function ModalFooter({ children, ...restProps }: ModalFooterProps) { - return {children}; -} +const ModalFooter = ({ children, ...restProps }: ModalFooterProps) => ( + {children} +); /** * Modal @@ -136,7 +136,7 @@ const modalVariants = { exit: { opacity: 0 }, }; -export function Modal({ +export const Modal = ({ isOpen = false, children, onClose, @@ -145,7 +145,7 @@ export function Modal({ size = 'medium', padding = 'medium', ...restProps -}: ModalProps) { +}: ModalProps) => { const modalRef = useRef(null); useListenClickOutside({ @@ -211,7 +211,7 @@ export function Modal({ ) : ( <> ); -} +}; Modal.Header = ModalHeader; Modal.Content = ModalContent; diff --git a/front/src/modules/ui/navbar/components/MainNavbar.tsx b/front/src/modules/ui/navbar/components/MainNavbar.tsx index 50426d0e2..2a4ec0c46 100644 --- a/front/src/modules/ui/navbar/components/MainNavbar.tsx +++ b/front/src/modules/ui/navbar/components/MainNavbar.tsx @@ -18,7 +18,7 @@ const StyledContainer = styled.div` width: 100%; `; -export default function MainNavbar({ children }: OwnProps) { +const MainNavbar = ({ children }: OwnProps) => { const [isHovered, setIsHovered] = useState(false); const handleHover = () => { @@ -38,4 +38,6 @@ export default function MainNavbar({ children }: OwnProps) { ); -} +}; + +export default MainNavbar; diff --git a/front/src/modules/ui/navbar/components/NavBackButton.tsx b/front/src/modules/ui/navbar/components/NavBackButton.tsx index df7afb508..8dacdb1e3 100644 --- a/front/src/modules/ui/navbar/components/NavBackButton.tsx +++ b/front/src/modules/ui/navbar/components/NavBackButton.tsx @@ -30,7 +30,7 @@ const StyledContainer = styled.div` justify-content: space-between; `; -export default function NavBackButton({ title }: OwnProps) { +const NavBackButton = ({ title }: OwnProps) => { const navigate = useNavigate(); const [, setIsNavbarSwitchingSize] = useRecoilState( isNavbarSwitchingSizeState, @@ -51,4 +51,6 @@ export default function NavBackButton({ title }: OwnProps) { ); -} +}; + +export default NavBackButton; diff --git a/front/src/modules/ui/navbar/components/NavCollapseButton.tsx b/front/src/modules/ui/navbar/components/NavCollapseButton.tsx index e3719fc62..9f79d3f14 100644 --- a/front/src/modules/ui/navbar/components/NavCollapseButton.tsx +++ b/front/src/modules/ui/navbar/components/NavCollapseButton.tsx @@ -48,10 +48,10 @@ type CollapseButtonProps = { hide: boolean; }; -export default function NavCollapseButton({ +const NavCollapseButton = ({ direction = 'left', hide, -}: CollapseButtonProps) { +}: CollapseButtonProps) => { const [isNavbarOpened, setIsNavbarOpened] = useRecoilState(isNavbarOpenedState); @@ -84,4 +84,6 @@ export default function NavCollapseButton({ )} ); -} +}; + +export default NavCollapseButton; diff --git a/front/src/modules/ui/navbar/components/NavItem.tsx b/front/src/modules/ui/navbar/components/NavItem.tsx index ec866ba7f..74ad162d3 100644 --- a/front/src/modules/ui/navbar/components/NavItem.tsx +++ b/front/src/modules/ui/navbar/components/NavItem.tsx @@ -98,7 +98,7 @@ const StyledItemCount = styled.div` width: 16px; `; -function NavItem({ +const NavItem = ({ label, Icon, to, @@ -107,14 +107,14 @@ function NavItem({ danger, soon, count, -}: NavItemProps) { +}: NavItemProps) => { const theme = useTheme(); const navigate = useNavigate(); const [, setIsNavbarOpened] = useRecoilState(isNavbarOpenedState); const isMobile = useIsMobile(); - function handleItemClick() { + const handleItemClick = () => { if (isMobile) { setIsNavbarOpened(false); } @@ -124,7 +124,7 @@ function NavItem({ } else if (to) { navigate(to); } - } + }; return ( {count}} ); -} +}; export default NavItem; diff --git a/front/src/modules/ui/navbar/components/NavItemsContainer.tsx b/front/src/modules/ui/navbar/components/NavItemsContainer.tsx index 452ec3b28..e9bd6c84b 100644 --- a/front/src/modules/ui/navbar/components/NavItemsContainer.tsx +++ b/front/src/modules/ui/navbar/components/NavItemsContainer.tsx @@ -10,8 +10,8 @@ const StyledNavItemsContainer = styled.div` margin-top: 40px; `; -function NavItemsContainer({ children }: OwnProps) { - return {children}; -} +const NavItemsContainer = ({ children }: OwnProps) => ( + {children} +); export default NavItemsContainer; diff --git a/front/src/modules/ui/navbar/components/NavTitle.tsx b/front/src/modules/ui/navbar/components/NavTitle.tsx index 2acf0bda2..ee3ab4234 100644 --- a/front/src/modules/ui/navbar/components/NavTitle.tsx +++ b/front/src/modules/ui/navbar/components/NavTitle.tsx @@ -15,8 +15,6 @@ const StyledTitle = styled.div` text-transform: uppercase; `; -function NavTitle({ label }: OwnProps) { - return {label}; -} +const NavTitle = ({ label }: OwnProps) => {label}; export default NavTitle; diff --git a/front/src/modules/ui/navbar/components/NavWorkspaceButton.tsx b/front/src/modules/ui/navbar/components/NavWorkspaceButton.tsx index 485b7ced3..60bd3addc 100644 --- a/front/src/modules/ui/navbar/components/NavWorkspaceButton.tsx +++ b/front/src/modules/ui/navbar/components/NavWorkspaceButton.tsx @@ -49,7 +49,7 @@ type OwnProps = { hideCollapseButton: boolean; }; -function NavWorkspaceButton({ hideCollapseButton }: OwnProps) { +const NavWorkspaceButton = ({ hideCollapseButton }: OwnProps) => { const currentUser = useRecoilValue(currentUserState); const currentWorkspace = currentUser?.workspaceMember?.workspace; @@ -71,6 +71,6 @@ function NavWorkspaceButton({ hideCollapseButton }: OwnProps) { ); -} +}; export default NavWorkspaceButton; diff --git a/front/src/modules/ui/navbar/components/NavbarAnimatedContainer.tsx b/front/src/modules/ui/navbar/components/NavbarAnimatedContainer.tsx index a541780c5..c96c4c468 100644 --- a/front/src/modules/ui/navbar/components/NavbarAnimatedContainer.tsx +++ b/front/src/modules/ui/navbar/components/NavbarAnimatedContainer.tsx @@ -23,7 +23,7 @@ type NavbarProps = { children: React.ReactNode; }; -export function NavbarAnimatedContainer({ children }: NavbarProps) { +export const NavbarAnimatedContainer = ({ children }: NavbarProps) => { const isNavbarOpened = useRecoilValue(isNavbarOpenedState); const [, setIsNavbarSwitchingSize] = useRecoilState( isNavbarSwitchingSizeState, @@ -57,4 +57,4 @@ export function NavbarAnimatedContainer({ children }: NavbarProps) { {children} ); -} +}; diff --git a/front/src/modules/ui/navbar/components/SubMenuNavbar.tsx b/front/src/modules/ui/navbar/components/SubMenuNavbar.tsx index 333c6ea0b..3d349c152 100644 --- a/front/src/modules/ui/navbar/components/SubMenuNavbar.tsx +++ b/front/src/modules/ui/navbar/components/SubMenuNavbar.tsx @@ -50,11 +50,11 @@ const StyledContainer = styled.div` width: ${() => (useIsMobile() ? '100%' : leftNavbarWidth.desktop)}; `; -export default function SubMenuNavbar({ +const SubMenuNavbar = ({ children, backButtonTitle, displayVersion, -}: OwnProps) { +}: OwnProps) => { const version = packageJson.version; const theme = useTheme(); @@ -75,4 +75,6 @@ export default function SubMenuNavbar({ )} ); -} +}; + +export default SubMenuNavbar; diff --git a/front/src/modules/ui/navbar/components/SupportChat.tsx b/front/src/modules/ui/navbar/components/SupportChat.tsx index db08d6c80..cce71eb95 100644 --- a/front/src/modules/ui/navbar/components/SupportChat.tsx +++ b/front/src/modules/ui/navbar/components/SupportChat.tsx @@ -12,7 +12,7 @@ const StyledButtonContainer = styled.div` display: flex; `; -function insertScript({ +const insertScript = ({ src, innerHTML, onLoad, @@ -20,15 +20,15 @@ function insertScript({ src?: string; innerHTML?: string; onLoad?: (...args: any[]) => void; -}) { +}) => { const script = document.createElement('script'); if (src) script.src = src; if (innerHTML) script.innerHTML = innerHTML; if (onLoad) script.onload = onLoad; document.body.appendChild(script); -} +}; -export default function SupportChat() { +const SupportChat = () => { const currentUser = useRecoilValue(currentUserState); const supportChat = useRecoilValue(supportChatState); const [isFrontChatLoaded, setIsFrontChatLoaded] = useState(false); @@ -88,4 +88,6 @@ export default function SupportChat() { /> ) : null; -} +}; + +export default SupportChat; diff --git a/front/src/modules/ui/pill/components/SoonPill.tsx b/front/src/modules/ui/pill/components/SoonPill.tsx index bdb41db9c..5aa754354 100644 --- a/front/src/modules/ui/pill/components/SoonPill.tsx +++ b/front/src/modules/ui/pill/components/SoonPill.tsx @@ -17,6 +17,4 @@ const StyledSoonPill = styled.span` padding: ${({ theme }) => `0 ${theme.spacing(2)}`}; `; -export function SoonPill() { - return Soon; -} +export const SoonPill = () => Soon; diff --git a/front/src/modules/ui/progress-bar/components/CircularProgressBar.tsx b/front/src/modules/ui/progress-bar/components/CircularProgressBar.tsx index 25307412f..5ca443813 100644 --- a/front/src/modules/ui/progress-bar/components/CircularProgressBar.tsx +++ b/front/src/modules/ui/progress-bar/components/CircularProgressBar.tsx @@ -7,11 +7,11 @@ interface Props { barColor?: string; } -export function CircularProgressBar({ +export const CircularProgressBar = ({ size = 50, barWidth = 5, barColor = 'currentColor', -}: Props) { +}: Props) => { const controls = useAnimation(); const circumference = useMemo( @@ -20,7 +20,7 @@ export function CircularProgressBar({ ); useEffect(() => { - async function animateIndeterminate() { + const animateIndeterminate = async () => { const baseSegment = Math.max(5, circumference / 10); // Adjusting for smaller values // Adjusted sequence based on baseSegment @@ -50,7 +50,7 @@ export function CircularProgressBar({ }, }, }); - } + }; animateIndeterminate(); }, [circumference, controls]); @@ -68,4 +68,4 @@ export function CircularProgressBar({ /> ); -} +}; diff --git a/front/src/modules/ui/right-drawer/components/RightDrawer.tsx b/front/src/modules/ui/right-drawer/components/RightDrawer.tsx index e7e301724..6fe646bc2 100644 --- a/front/src/modules/ui/right-drawer/components/RightDrawer.tsx +++ b/front/src/modules/ui/right-drawer/components/RightDrawer.tsx @@ -40,7 +40,7 @@ const StyledRightDrawer = styled.div` width: 100%; `; -export function RightDrawer() { +export const RightDrawer = () => { const [isRightDrawerOpen, setIsRightDrawerOpen] = useRecoilState( isRightDrawerOpenState, ); @@ -100,4 +100,4 @@ export function RightDrawer() { ); -} +}; diff --git a/front/src/modules/ui/right-drawer/components/RightDrawerRouter.tsx b/front/src/modules/ui/right-drawer/components/RightDrawerRouter.tsx index 0d5b20129..c95d634e4 100644 --- a/front/src/modules/ui/right-drawer/components/RightDrawerRouter.tsx +++ b/front/src/modules/ui/right-drawer/components/RightDrawerRouter.tsx @@ -26,7 +26,7 @@ const StyledRightDrawerBody = styled.div` position: relative; `; -export function RightDrawerRouter() { +export const RightDrawerRouter = () => { const [rightDrawerPage] = useRecoilState(rightDrawerPageState); let page = <>; @@ -48,4 +48,4 @@ export function RightDrawerRouter() { {page} ); -} +}; diff --git a/front/src/modules/ui/right-drawer/components/RightDrawerTopBar.tsx b/front/src/modules/ui/right-drawer/components/RightDrawerTopBar.tsx index a89da1570..cd4c7a7bc 100644 --- a/front/src/modules/ui/right-drawer/components/RightDrawerTopBar.tsx +++ b/front/src/modules/ui/right-drawer/components/RightDrawerTopBar.tsx @@ -28,7 +28,7 @@ const StyledTopBarWrapper = styled.div` display: flex; `; -export function RightDrawerTopBar() { +export const RightDrawerTopBar = () => { const isMobile = useIsMobile(); const viewableActivityId = useRecoilValue(viewableActivityIdState); @@ -41,4 +41,4 @@ export function RightDrawerTopBar() { ); -} +}; diff --git a/front/src/modules/ui/right-drawer/components/RightDrawerTopBarCloseButton.tsx b/front/src/modules/ui/right-drawer/components/RightDrawerTopBarCloseButton.tsx index 5b3c025c1..f07701d09 100644 --- a/front/src/modules/ui/right-drawer/components/RightDrawerTopBarCloseButton.tsx +++ b/front/src/modules/ui/right-drawer/components/RightDrawerTopBarCloseButton.tsx @@ -3,12 +3,12 @@ import { IconChevronsRight } from '@/ui/icon/index'; import { useRightDrawer } from '../hooks/useRightDrawer'; -export function RightDrawerTopBarCloseButton() { +export const RightDrawerTopBarCloseButton = () => { const { closeRightDrawer } = useRightDrawer(); - function handleButtonClick() { + const handleButtonClick = () => { closeRightDrawer(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx b/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx index 5ed680382..0f5d8b686 100644 --- a/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx +++ b/front/src/modules/ui/right-drawer/components/RightDrawerTopBarExpandButton.tsx @@ -8,14 +8,14 @@ import { import { isRightDrawerExpandedState } from '../states/isRightDrawerExpandedState'; -export function RightDrawerTopBarExpandButton() { +export const RightDrawerTopBarExpandButton = () => { const [isRightDrawerExpanded, setIsRightDrawerExpanded] = useRecoilState( isRightDrawerExpandedState, ); - function handleButtonClick() { + const handleButtonClick = () => { setIsRightDrawerExpanded(!isRightDrawerExpanded); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/right-drawer/hooks/useRightDrawer.ts b/front/src/modules/ui/right-drawer/hooks/useRightDrawer.ts index f5b706320..cb5110960 100644 --- a/front/src/modules/ui/right-drawer/hooks/useRightDrawer.ts +++ b/front/src/modules/ui/right-drawer/hooks/useRightDrawer.ts @@ -5,7 +5,7 @@ import { isRightDrawerOpenState } from '../states/isRightDrawerOpenState'; import { rightDrawerPageState } from '../states/rightDrawerPageState'; import { RightDrawerPages } from '../types/RightDrawerPages'; -export function useRightDrawer() { +export const useRightDrawer = () => { const [, setIsRightDrawerOpen] = useRecoilState(isRightDrawerOpenState); const [, setIsRightDrawerExpanded] = useRecoilState( isRightDrawerExpandedState, @@ -13,19 +13,19 @@ export function useRightDrawer() { const [, setRightDrawerPage] = useRecoilState(rightDrawerPageState); - function openRightDrawer(rightDrawerPage: RightDrawerPages) { + const openRightDrawer = (rightDrawerPage: RightDrawerPages) => { setRightDrawerPage(rightDrawerPage); setIsRightDrawerExpanded(false); setIsRightDrawerOpen(true); - } + }; - function closeRightDrawer() { + const closeRightDrawer = () => { setIsRightDrawerExpanded(false); setIsRightDrawerOpen(false); - } + }; return { openRightDrawer, closeRightDrawer, }; -} +}; diff --git a/front/src/modules/ui/section/components/Section.tsx b/front/src/modules/ui/section/components/Section.tsx index fd2655e29..3d5fcf345 100644 --- a/front/src/modules/ui/section/components/Section.tsx +++ b/front/src/modules/ui/section/components/Section.tsx @@ -31,19 +31,17 @@ const StyledSection = styled.div<{ width: ${({ fullWidth }) => (fullWidth ? '100%' : 'auto')}; `; -export function Section({ +export const Section = ({ children, alignment = SectionAlignment.Left, fullWidth = true, fontColor = SectionFontColor.Primary, -}: OwnProps) { - return ( - - {children} - - ); -} +}: OwnProps) => ( + + {children} + +); diff --git a/front/src/modules/ui/snack-bar/components/SnackBar.tsx b/front/src/modules/ui/snack-bar/components/SnackBar.tsx index 2fc2bb1c7..fd7c07b54 100644 --- a/front/src/modules/ui/snack-bar/components/SnackBar.tsx +++ b/front/src/modules/ui/snack-bar/components/SnackBar.tsx @@ -102,7 +102,7 @@ export interface SnackbarProps extends React.ComponentPropsWithoutRef<'div'> { onClose?: () => void; } -export function SnackBar({ +export const SnackBar = ({ role = 'status', icon: iconComponent, message, @@ -112,7 +112,7 @@ export function SnackBar({ children, onClose, ...rootProps -}: SnackbarProps) { +}: SnackbarProps) => { const theme = useTheme(); const progressBarRef = useRef(null); @@ -179,4 +179,4 @@ export function SnackBar({ )} ); -} +}; diff --git a/front/src/modules/ui/snack-bar/components/SnackBarProvider.tsx b/front/src/modules/ui/snack-bar/components/SnackBarProvider.tsx index 125c9e7c2..68a6f4338 100644 --- a/front/src/modules/ui/snack-bar/components/SnackBarProvider.tsx +++ b/front/src/modules/ui/snack-bar/components/SnackBarProvider.tsx @@ -50,7 +50,7 @@ const reducedVariants = { }, }; -export function SnackBarProvider({ children }: React.PropsWithChildren) { +export const SnackBarProvider = ({ children }: React.PropsWithChildren) => { const reducedMotion = useReducedMotion(); const [snackBarInternal, setSnackBarInternal] = useRecoilState( @@ -88,4 +88,4 @@ export function SnackBarProvider({ children }: React.PropsWithChildren) { ); -} +}; diff --git a/front/src/modules/ui/snack-bar/hooks/usePausableTimeout.ts b/front/src/modules/ui/snack-bar/hooks/usePausableTimeout.ts index 1429bfe45..9b85ec626 100644 --- a/front/src/modules/ui/snack-bar/hooks/usePausableTimeout.ts +++ b/front/src/modules/ui/snack-bar/hooks/usePausableTimeout.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef } from 'react'; -export function usePausableTimeout(callback: () => void, delay: number) { +export const usePausableTimeout = (callback: () => void, delay: number) => { const savedCallback = useRef<() => void>(callback); const remainingTime = useRef(delay); const startTime = useRef(Date.now()); @@ -47,4 +47,4 @@ export function usePausableTimeout(callback: () => void, delay: number) { }; return { pauseTimeout, resumeTimeout }; -} +}; diff --git a/front/src/modules/ui/snack-bar/hooks/useSnackBar.ts b/front/src/modules/ui/snack-bar/hooks/useSnackBar.ts index 2db7474ab..4c5df2349 100644 --- a/front/src/modules/ui/snack-bar/hooks/useSnackBar.ts +++ b/front/src/modules/ui/snack-bar/hooks/useSnackBar.ts @@ -6,7 +6,7 @@ import { snackBarSetQueueState, } from '../states/snackBarState'; -export function useSnackBar() { +export const useSnackBar = () => { const setSnackBarQueue = useSetRecoilState(snackBarSetQueueState); const enqueueSnackBar = ( @@ -21,4 +21,4 @@ export function useSnackBar() { }; return { enqueueSnackBar }; -} +}; diff --git a/front/src/modules/ui/step-bar/hooks/useStepBar.ts b/front/src/modules/ui/step-bar/hooks/useStepBar.ts index 3b17649e5..0bc144942 100644 --- a/front/src/modules/ui/step-bar/hooks/useStepBar.ts +++ b/front/src/modules/ui/step-bar/hooks/useStepBar.ts @@ -7,30 +7,30 @@ export type StepsOptions = { initialStep: number; }; -export function useStepBar({ initialStep }: StepsOptions) { +export const useStepBar = ({ initialStep }: StepsOptions) => { const [stepBarInternal, setStepBarInternal] = useRecoilState(stepBarInternalState); - function nextStep() { + const nextStep = () => { setStepBarInternal((prevState) => ({ ...prevState, activeStep: prevState.activeStep + 1, })); - } + }; - function prevStep() { + const prevStep = () => { setStepBarInternal((prevState) => ({ ...prevState, activeStep: prevState.activeStep - 1, })); - } + }; - function reset() { + const reset = () => { setStepBarInternal((prevState) => ({ ...prevState, activeStep: 0, })); - } + }; const setStep = useCallback( (step: number) => { @@ -57,4 +57,4 @@ export function useStepBar({ initialStep }: StepsOptions) { setStep, activeStep: stepBarInternal.activeStep, }; -} +}; diff --git a/front/src/modules/ui/tab/components/Tab.tsx b/front/src/modules/ui/tab/components/Tab.tsx index f186f188a..d75c51535 100644 --- a/front/src/modules/ui/tab/components/Tab.tsx +++ b/front/src/modules/ui/tab/components/Tab.tsx @@ -51,7 +51,7 @@ const StyledHover = styled.span` } `; -export function Tab({ +export const Tab = ({ id, title, Icon, @@ -59,7 +59,7 @@ export function Tab({ onClick, className, disabled, -}: TabProps) { +}: TabProps) => { const theme = useTheme(); return ( ); -} +}; diff --git a/front/src/modules/ui/tab/components/TabList.tsx b/front/src/modules/ui/tab/components/TabList.tsx index 15b84718d..4083c188a 100644 --- a/front/src/modules/ui/tab/components/TabList.tsx +++ b/front/src/modules/ui/tab/components/TabList.tsx @@ -30,7 +30,7 @@ const StyledContainer = styled.div` padding-left: ${({ theme }) => theme.spacing(2)}; `; -export function TabList({ tabs, context }: TabListProps) { +export const TabList = ({ tabs, context }: TabListProps) => { const initialActiveTabId = tabs[0].id; const [activeTabId, setActiveTabId] = useRecoilScopedState( @@ -61,4 +61,4 @@ export function TabList({ tabs, context }: TabListProps) { ))} ); -} +}; diff --git a/front/src/modules/ui/table/action-bar/components/EntityTableActionBar.tsx b/front/src/modules/ui/table/action-bar/components/EntityTableActionBar.tsx index 51cb63bfb..f405e4468 100644 --- a/front/src/modules/ui/table/action-bar/components/EntityTableActionBar.tsx +++ b/front/src/modules/ui/table/action-bar/components/EntityTableActionBar.tsx @@ -5,8 +5,8 @@ import { ActionBar } from '@/ui/action-bar/components/ActionBar'; import { selectedRowIdsSelector } from '../../states/selectors/selectedRowIdsSelector'; -export function EntityTableActionBar() { +export const EntityTableActionBar = () => { const selectedRowIds = useRecoilValue(selectedRowIdsSelector); return ; -} +}; diff --git a/front/src/modules/ui/table/components/CheckboxCell.tsx b/front/src/modules/ui/table/components/CheckboxCell.tsx index 356b4209f..c28296cdb 100644 --- a/front/src/modules/ui/table/components/CheckboxCell.tsx +++ b/front/src/modules/ui/table/components/CheckboxCell.tsx @@ -17,7 +17,7 @@ const StyledContainer = styled.div` justify-content: center; `; -export function CheckboxCell() { +export const CheckboxCell = () => { const setActionBarOpenState = useSetRecoilState(actionBarOpenState); const { currentRowSelected, setCurrentRowSelected } = useCurrentRowSelected(); @@ -31,4 +31,4 @@ export function CheckboxCell() { ); -} +}; diff --git a/front/src/modules/ui/table/components/ColumnHead.tsx b/front/src/modules/ui/table/components/ColumnHead.tsx index 827102423..ee18a1841 100644 --- a/front/src/modules/ui/table/components/ColumnHead.tsx +++ b/front/src/modules/ui/table/components/ColumnHead.tsx @@ -34,7 +34,7 @@ const StyledText = styled.span` white-space: nowrap; `; -export function ColumnHead({ viewName, ViewIcon }: OwnProps) { +export const ColumnHead = ({ viewName, ViewIcon }: OwnProps) => { const theme = useTheme(); return ( @@ -44,4 +44,4 @@ export function ColumnHead({ viewName, ViewIcon }: OwnProps) { {viewName} ); -} +}; diff --git a/front/src/modules/ui/table/components/EntityTable.tsx b/front/src/modules/ui/table/components/EntityTable.tsx index 380bde71d..737940f0c 100644 --- a/front/src/modules/ui/table/components/EntityTable.tsx +++ b/front/src/modules/ui/table/components/EntityTable.tsx @@ -86,7 +86,7 @@ type OwnProps = { updateEntityMutation: any; }; -export function EntityTable({ updateEntityMutation }: OwnProps) { +export const EntityTable = ({ updateEntityMutation }: OwnProps) => { const tableBodyRef = useRef(null); const setRowSelectedState = useSetRowSelectedState(); @@ -141,4 +141,4 @@ export function EntityTable({ updateEntityMutation }: OwnProps) { ); -} +}; diff --git a/front/src/modules/ui/table/components/EntityTableBody.tsx b/front/src/modules/ui/table/components/EntityTableBody.tsx index 533dea895..b8eb05baf 100644 --- a/front/src/modules/ui/table/components/EntityTableBody.tsx +++ b/front/src/modules/ui/table/components/EntityTableBody.tsx @@ -22,7 +22,7 @@ const StyledSpace = styled.td` ${({ bottom }) => bottom && `padding-bottom: ${bottom}px;`} `; -export function EntityTableBody() { +export const EntityTableBody = () => { const scrollWrapperRef = useScrollWrapperScopedRef(); const tableRowIds = useRecoilValue(tableRowIdsState); @@ -78,4 +78,4 @@ export function EntityTableBody() { )} ); -} +}; diff --git a/front/src/modules/ui/table/components/EntityTableCell.tsx b/front/src/modules/ui/table/components/EntityTableCell.tsx index 03ae5452d..b60b40b4d 100644 --- a/front/src/modules/ui/table/components/EntityTableCell.tsx +++ b/front/src/modules/ui/table/components/EntityTableCell.tsx @@ -10,13 +10,13 @@ import { ColumnIndexContext } from '../contexts/ColumnIndexContext'; import { GenericEditableCell } from '../editable-cell/components/GenericEditableCell'; import { useCurrentRowSelected } from '../hooks/useCurrentRowSelected'; -export function EntityTableCell({ cellIndex }: { cellIndex: number }) { +export const EntityTableCell = ({ cellIndex }: { cellIndex: number }) => { const setContextMenuPosition = useSetRecoilState(contextMenuPositionState); const setContextMenuOpenState = useSetRecoilState(contextMenuIsOpenState); const { setCurrentRowSelected } = useCurrentRowSelected(); - function handleContextMenu(event: React.MouseEvent) { + const handleContextMenu = (event: React.MouseEvent) => { event.preventDefault(); setCurrentRowSelected(true); setContextMenuPosition({ @@ -24,7 +24,7 @@ export function EntityTableCell({ cellIndex }: { cellIndex: number }) { y: event.clientY, }); setContextMenuOpenState(true); - } + }; const columnDefinition = useContext(ColumnContext); @@ -41,4 +41,4 @@ export function EntityTableCell({ cellIndex }: { cellIndex: number }) { ); -} +}; diff --git a/front/src/modules/ui/table/components/EntityTableEffect.tsx b/front/src/modules/ui/table/components/EntityTableEffect.tsx index eaa29dfcf..864a5cb3f 100644 --- a/front/src/modules/ui/table/components/EntityTableEffect.tsx +++ b/front/src/modules/ui/table/components/EntityTableEffect.tsx @@ -7,7 +7,7 @@ import { FilterDefinition } from '@/ui/view-bar/types/FilterDefinition'; import { SortDefinition } from '@/ui/view-bar/types/SortDefinition'; import { SortOrder } from '~/generated/graphql'; -export function EntityTableEffect({ +export const EntityTableEffect = ({ useGetRequest, getRequestResultKey, getRequestOptimisticEffectDefinition, @@ -34,7 +34,7 @@ export function EntityTableEffect({ sortDefinitionArray: SortDefinition[]; setActionBarEntries?: () => void; setContextMenuEntries?: () => void; -}) { +}) => { const setEntityTableData = useSetEntityTableData(); const { registerOptimisticEffect } = useOptimisticEffect(); @@ -58,4 +58,4 @@ export function EntityTableEffect({ }, [setActionBarEntries, setContextMenuEntries]); return <>; -} +}; diff --git a/front/src/modules/ui/table/components/EntityTableHeader.tsx b/front/src/modules/ui/table/components/EntityTableHeader.tsx index 5b9fb69b6..7f7069692 100644 --- a/front/src/modules/ui/table/components/EntityTableHeader.tsx +++ b/front/src/modules/ui/table/components/EntityTableHeader.tsx @@ -70,7 +70,7 @@ const StyledEntityTableColumnMenu = styled(EntityTableColumnMenu)` z-index: ${({ theme }) => theme.lastLayerZIndex}; `; -export function EntityTableHeader() { +export const EntityTableHeader = () => { const [resizeFieldOffset, setResizeFieldOffset] = useRecoilState( resizeFieldOffsetState, ); @@ -205,4 +205,4 @@ export function EntityTableHeader() { ); -} +}; diff --git a/front/src/modules/ui/table/components/EntityTableRow.tsx b/front/src/modules/ui/table/components/EntityTableRow.tsx index 0526546b1..9019f4d35 100644 --- a/front/src/modules/ui/table/components/EntityTableRow.tsx +++ b/front/src/modules/ui/table/components/EntityTableRow.tsx @@ -23,7 +23,7 @@ type EntityTableRowProps = { export const EntityTableRow = forwardRef< HTMLTableRowElement, EntityTableRowProps ->(function EntityTableRow({ rowId }, ref) { +>(({ rowId }, ref) => { const visibleTableColumns = useRecoilScopedValue( visibleTableColumnsScopedSelector, TableRecoilScopeContext, diff --git a/front/src/modules/ui/table/components/SelectAllCheckbox.tsx b/front/src/modules/ui/table/components/SelectAllCheckbox.tsx index 74e91e168..c7c3ab11c 100644 --- a/front/src/modules/ui/table/components/SelectAllCheckbox.tsx +++ b/front/src/modules/ui/table/components/SelectAllCheckbox.tsx @@ -19,9 +19,9 @@ export const SelectAllCheckbox = () => { const checked = allRowsSelectedStatus === 'all'; const indeterminate = allRowsSelectedStatus === 'some'; - function onChange() { + const onChange = () => { selectAllRows(); - } + }; return ( diff --git a/front/src/modules/ui/table/context-menu/components/EntityTableContextMenu.tsx b/front/src/modules/ui/table/context-menu/components/EntityTableContextMenu.tsx index cf5d1724b..4befe93b4 100644 --- a/front/src/modules/ui/table/context-menu/components/EntityTableContextMenu.tsx +++ b/front/src/modules/ui/table/context-menu/components/EntityTableContextMenu.tsx @@ -5,7 +5,7 @@ import { ContextMenu } from '@/ui/context-menu/components/ContextMenu'; import { selectedRowIdsSelector } from '../../states/selectors/selectedRowIdsSelector'; -export function EntityTableContextMenu() { +export const EntityTableContextMenu = () => { const selectedRowIds = useRecoilValue(selectedRowIdsSelector); return ; -} +}; 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 5a0b54bda..9421c68f4 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx @@ -43,7 +43,7 @@ const DEFAULT_CELL_SCOPE: HotkeyScope = { scope: TableHotkeyScope.CellEditMode, }; -export function EditableCell({ +export const EditableCell = ({ editModeHorizontalAlign = 'left', editModeVerticalPosition = 'over', editModeContent, @@ -52,7 +52,7 @@ export function EditableCell({ transparent = false, maxContentWidth, useEditButton, -}: EditableCellProps) { +}: EditableCellProps) => { const { isCurrentCellInEditMode } = useCurrentCellEditMode(); const [isHovered, setIsHovered] = useState(false); @@ -60,18 +60,18 @@ export function EditableCell({ const { openEditableCell } = useEditableCell(); - function handlePenClick() { + const handlePenClick = () => { setSoftFocusOnCurrentCell(); openEditableCell(); - } + }; - function handleContainerMouseEnter() { + const handleContainerMouseEnter = () => { setIsHovered(true); - } + }; - function handleContainerMouseLeave() { + const handleContainerMouseLeave = () => { setIsHovered(false); - } + }; const showEditButton = useEditButton && isHovered && !isCurrentCellInEditMode; @@ -116,4 +116,4 @@ export function EditableCell({ ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx index 52d8b7352..656e65892 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx @@ -36,28 +36,24 @@ const StyledEditableCellDisplayModeInnerContainer = styled.div` width: 100%; `; -export function EditableCellDisplayContainer({ +export const EditableCellDisplayContainer = ({ children, softFocus, onClick, scrollRef, isHovered, -}: React.PropsWithChildren) { - return ( - - - {children} - - - ); -} +}: React.PropsWithChildren) => ( + + + {children} + + +); diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx index 4729a7e01..9ed86ee14 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx @@ -3,22 +3,22 @@ import { useSetSoftFocusOnCurrentCell } from '../hooks/useSetSoftFocusOnCurrentC import { EditableCellDisplayContainer } from './EditableCellDisplayContainer'; -export function EditableCellDisplayMode({ +export const EditableCellDisplayMode = ({ children, isHovered, -}: React.PropsWithChildren & { isHovered?: boolean }) { +}: React.PropsWithChildren & { isHovered?: boolean }) => { const setSoftFocusOnCurrentCell = useSetSoftFocusOnCurrentCell(); const { openEditableCell } = useEditableCell(); - function handleClick() { + const handleClick = () => { setSoftFocusOnCurrentCell(); openEditableCell(); - } + }; return ( {children} ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx index d3e84812c..9c6da2805 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx @@ -13,17 +13,15 @@ type EditableCellEditButtonProps = { onClick?: () => void; }; -export function EditableCellEditButton({ +export const EditableCellEditButton = ({ onClick, -}: EditableCellEditButtonProps) { - return ( - - - - ); -} +}: EditableCellEditButtonProps) => ( + + + +); diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellEditMode.tsx index 8248ee847..c88e97f47 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCellEditMode.tsx @@ -37,22 +37,20 @@ export type EditableCellEditModeProps = { initialValue?: string; }; -export function EditableCellEditMode({ +export const EditableCellEditMode = ({ editModeHorizontalAlign, editModeVerticalPosition, children, transparent = false, maxContentWidth, -}: EditableCellEditModeProps) { - return ( - - {children} - - ); -} +}: EditableCellEditModeProps) => ( + + {children} + +); diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellSoftFocusMode.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellSoftFocusMode.tsx index b8c873d89..13894da7b 100644 --- a/front/src/modules/ui/table/editable-cell/components/EditableCellSoftFocusMode.tsx +++ b/front/src/modules/ui/table/editable-cell/components/EditableCellSoftFocusMode.tsx @@ -10,7 +10,7 @@ import { EditableCellDisplayContainer } from './EditableCellDisplayContainer'; type OwnProps = PropsWithChildren; -export function EditableCellSoftFocusMode({ children }: OwnProps) { +export const EditableCellSoftFocusMode = ({ children }: OwnProps) => { const { openEditableCell } = useEditableCell(); const scrollRef = useRef(null); @@ -19,9 +19,9 @@ export function EditableCellSoftFocusMode({ children }: OwnProps) { scrollRef.current?.scrollIntoView({ block: 'nearest' }); }, []); - function openEditMode() { + const openEditMode = () => { openEditableCell(); - } + }; useScopedHotkeys( 'enter', @@ -53,9 +53,9 @@ export function EditableCellSoftFocusMode({ children }: OwnProps) { }, ); - function handleClick() { + const handleClick = () => { openEditMode(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/components/GenericEditableCell.tsx b/front/src/modules/ui/table/editable-cell/components/GenericEditableCell.tsx index 8be100b58..50654bbd1 100644 --- a/front/src/modules/ui/table/editable-cell/components/GenericEditableCell.tsx +++ b/front/src/modules/ui/table/editable-cell/components/GenericEditableCell.tsx @@ -30,7 +30,7 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableCell({ columnDefinition }: OwnProps) { +export const GenericEditableCell = ({ columnDefinition }: OwnProps) => { if (isViewFieldEmail(columnDefinition)) { return ; } else if (isViewFieldText(columnDefinition)) { @@ -65,4 +65,4 @@ export function GenericEditableCell({ columnDefinition }: OwnProps) { ); return <>; } -} +}; diff --git a/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellEditMode.ts b/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellEditMode.ts index 692f0e0ad..7219a2a0a 100644 --- a/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellEditMode.ts +++ b/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellEditMode.ts @@ -6,7 +6,7 @@ import { isCellInEditModeFamilyState } from '../../states/isCellInEditModeFamily import { useCurrentCellPosition } from './useCurrentCellPosition'; -export function useCurrentCellEditMode() { +export const useCurrentCellEditMode = () => { const moveEditModeToCellPosition = useMoveEditModeToCellPosition(); const currentCellPosition = useCurrentCellPosition(); @@ -20,4 +20,4 @@ export function useCurrentCellEditMode() { }, [currentCellPosition, moveEditModeToCellPosition]); return { isCurrentCellInEditMode, setCurrentCellInEditMode }; -} +}; diff --git a/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellPosition.ts b/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellPosition.ts index 9442eb4aa..68f5247be 100644 --- a/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellPosition.ts +++ b/front/src/modules/ui/table/editable-cell/hooks/useCurrentCellPosition.ts @@ -4,7 +4,7 @@ import { ColumnIndexContext } from '../../contexts/ColumnIndexContext'; import { RowIndexContext } from '../../contexts/RowIndexContext'; import { CellPosition } from '../../types/CellPosition'; -export function useCurrentCellPosition() { +export const useCurrentCellPosition = () => { const currentRowNumber = useContext(RowIndexContext); const currentColumnNumber = useContext(ColumnIndexContext); @@ -17,4 +17,4 @@ export function useCurrentCellPosition() { ); return currentCellPosition; -} +}; diff --git a/front/src/modules/ui/table/editable-cell/hooks/useEditableCell.ts b/front/src/modules/ui/table/editable-cell/hooks/useEditableCell.ts index 94d0898cc..a0016d933 100644 --- a/front/src/modules/ui/table/editable-cell/hooks/useEditableCell.ts +++ b/front/src/modules/ui/table/editable-cell/hooks/useEditableCell.ts @@ -14,7 +14,7 @@ const DEFAULT_CELL_SCOPE: HotkeyScope = { scope: TableHotkeyScope.CellEditMode, }; -export function useEditableCell() { +export const useEditableCell = () => { const { setCurrentCellInEditMode } = useCurrentCellEditMode(); const setHotkeyScope = useSetHotkeyScope(); @@ -24,13 +24,13 @@ export function useEditableCell() { const customCellHotkeyScope = useContext(CellHotkeyScopeContext); - function closeEditableCell() { + const closeEditableCell = () => { setDragSelectionStartEnabled(true); closeCurrentCellInEditMode(); setHotkeyScope(TableHotkeyScope.TableSoftFocus); - } + }; - function openEditableCell() { + const openEditableCell = () => { setDragSelectionStartEnabled(false); setCurrentCellInEditMode(); @@ -42,10 +42,10 @@ export function useEditableCell() { } else { setHotkeyScope(DEFAULT_CELL_SCOPE.scope, DEFAULT_CELL_SCOPE.customScopes); } - } + }; return { closeEditableCell, openEditableCell, }; -} +}; diff --git a/front/src/modules/ui/table/editable-cell/hooks/useIsSoftFocusOnCurrentCell.ts b/front/src/modules/ui/table/editable-cell/hooks/useIsSoftFocusOnCurrentCell.ts index a81d6d58a..d874f5b9c 100644 --- a/front/src/modules/ui/table/editable-cell/hooks/useIsSoftFocusOnCurrentCell.ts +++ b/front/src/modules/ui/table/editable-cell/hooks/useIsSoftFocusOnCurrentCell.ts @@ -4,7 +4,7 @@ import { isSoftFocusOnCellFamilyState } from '../../states/isSoftFocusOnCellFami import { useCurrentCellPosition } from './useCurrentCellPosition'; -export function useIsSoftFocusOnCurrentCell() { +export const useIsSoftFocusOnCurrentCell = () => { const currentCellPosition = useCurrentCellPosition(); const isSoftFocusOnCell = useRecoilValue( @@ -12,4 +12,4 @@ export function useIsSoftFocusOnCurrentCell() { ); return isSoftFocusOnCell; -} +}; diff --git a/front/src/modules/ui/table/editable-cell/hooks/useRegisterCloseCellHandlers.ts b/front/src/modules/ui/table/editable-cell/hooks/useRegisterCloseCellHandlers.ts index f27160263..c22be885b 100644 --- a/front/src/modules/ui/table/editable-cell/hooks/useRegisterCloseCellHandlers.ts +++ b/front/src/modules/ui/table/editable-cell/hooks/useRegisterCloseCellHandlers.ts @@ -7,11 +7,11 @@ import { TableHotkeyScope } from '../../types/TableHotkeyScope'; import { useCurrentCellEditMode } from './useCurrentCellEditMode'; import { useEditableCell } from './useEditableCell'; -export function useRegisterCloseCellHandlers( +export const useRegisterCloseCellHandlers = ( wrapperRef: React.RefObject, onSubmit?: () => void, onCancel?: () => void, -) { +) => { const { closeEditableCell } = useEditableCell(); const { isCurrentCellInEditMode } = useCurrentCellEditMode(); @@ -72,4 +72,4 @@ export function useRegisterCloseCellHandlers( TableHotkeyScope.CellEditMode, [closeEditableCell, onSubmit, moveRight], ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/hooks/useSetSoftFocusOnCurrentCell.ts b/front/src/modules/ui/table/editable-cell/hooks/useSetSoftFocusOnCurrentCell.ts index 7993980b4..60270950f 100644 --- a/front/src/modules/ui/table/editable-cell/hooks/useSetSoftFocusOnCurrentCell.ts +++ b/front/src/modules/ui/table/editable-cell/hooks/useSetSoftFocusOnCurrentCell.ts @@ -8,7 +8,7 @@ import { TableHotkeyScope } from '../../types/TableHotkeyScope'; import { useCurrentCellPosition } from './useCurrentCellPosition'; -export function useSetSoftFocusOnCurrentCell() { +export const useSetSoftFocusOnCurrentCell = () => { const setSoftFocusPosition = useSetSoftFocusPosition(); const currentCellPosition = useCurrentCellPosition(); @@ -26,4 +26,4 @@ export function useSetSoftFocusOnCurrentCell() { }, [setHotkeyScope, currentCellPosition, setSoftFocusPosition], ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/DoubleTextCellEdit.tsx b/front/src/modules/ui/table/editable-cell/type/components/DoubleTextCellEdit.tsx index daffb83ea..38dcf7ea1 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/DoubleTextCellEdit.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/DoubleTextCellEdit.tsx @@ -35,14 +35,14 @@ const StyledContainer = styled.div` } `; -export function DoubleTextCellEdit({ +export const DoubleTextCellEdit = ({ firstValue, secondValue, firstValuePlaceholder, secondValuePlaceholder, onSubmit, onCancel, -}: OwnProps) { +}: OwnProps) => { const [firstInternalValue, setFirstInternalValue] = useState(firstValue); const [secondInternalValue, setSecondInternalValue] = useState(secondValue); @@ -51,10 +51,13 @@ export function DoubleTextCellEdit({ setSecondInternalValue(secondValue); }, [firstValue, secondValue]); - function handleOnChange(newFirstValue: string, newSecondValue: string): void { + const handleOnChange = ( + newFirstValue: string, + newSecondValue: string, + ): void => { setFirstInternalValue(newFirstValue); setSecondInternalValue(newSecondValue); - } + }; const [focusPosition, setFocusPosition] = useState<'left' | 'right'>('left'); @@ -64,21 +67,21 @@ export function DoubleTextCellEdit({ const { closeEditableCell } = useEditableCell(); const { moveRight, moveLeft, moveDown } = useMoveSoftFocus(); - function closeCell() { + const closeCell = () => { setFocusPosition('left'); closeEditableCell(); - } + }; - function handleCancel() { + const handleCancel = () => { setFirstInternalValue(firstValue); setSecondInternalValue(secondValue); onCancel?.(); - } + }; - function handleSubmit() { + const handleSubmit = () => { onSubmit?.(firstInternalValue, secondInternalValue); - } + }; useScopedHotkeys( Key.Enter, @@ -161,4 +164,4 @@ export function DoubleTextCellEdit({ /> ); -} +}; 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 d77c54968..9ed21ed82 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 @@ -26,7 +26,7 @@ const StyledCellBaseContainer = styled.div` width: 100%; `; -export function GenericEditableBooleanCell({ columnDefinition }: OwnProps) { +export const GenericEditableBooleanCell = ({ columnDefinition }: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const [fieldValue, setFieldValue] = useRecoilState( @@ -38,7 +38,7 @@ export function GenericEditableBooleanCell({ columnDefinition }: OwnProps) { const updateField = useUpdateEntityField(); - function handleClick() { + const handleClick = () => { const newValue = !fieldValue; try { @@ -52,7 +52,7 @@ export function GenericEditableBooleanCell({ columnDefinition }: OwnProps) { `In GenericEditableBooleanCellEditMode, Invalid value: ${newValue}, ${error}`, ); } - } + }; return ( @@ -61,4 +61,4 @@ export function GenericEditableBooleanCell({ columnDefinition }: OwnProps) { ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCell.tsx index f2ec46ae2..eec50270a 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCell.tsx @@ -12,21 +12,17 @@ type OwnProps = { placeholder?: string; }; -export function GenericEditableChipCell({ +export const GenericEditableChipCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { - return ( - - } - nonEditModeContent={ - - } - > - ); -} +}: OwnProps) => ( + + } + nonEditModeContent={ + + } + > +); diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellDisplayMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellDisplayMode.tsx index f6b6c9af6..dcc6143c8 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellDisplayMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellDisplayMode.tsx @@ -13,9 +13,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableChipCellDisplayMode({ +export const GenericEditableChipCellDisplayMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const content = useRecoilValue( @@ -48,4 +48,4 @@ export function GenericEditableChipCellDisplayMode({ ); return <> ; } -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellEditMode.tsx index 62e02762e..be3e254a5 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableChipCellEditMode.tsx @@ -14,9 +14,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableChipCellEditMode({ +export const GenericEditableChipCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -29,7 +29,7 @@ export function GenericEditableChipCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newText: string) { + const handleSubmit = (newText: string) => { if (newText === fieldValue) return; setFieldValue(newText); @@ -37,7 +37,7 @@ export function GenericEditableChipCellEditMode({ if (currentRowEntityId && updateField) { updateField(currentRowEntityId, columnDefinition, newText); } - } + }; const { handleEnter, @@ -62,4 +62,4 @@ export function GenericEditableChipCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCell.tsx index b30be9d39..f74837ca7 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCell.tsx @@ -15,10 +15,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditableDateCell({ +export const GenericEditableDateCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -37,4 +37,4 @@ export function GenericEditableDateCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCellEditMode.tsx index f5cc5b089..12eaf546c 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDateCellEditMode.tsx @@ -16,9 +16,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableDateCellEditMode({ +export const GenericEditableDateCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -32,7 +32,7 @@ export function GenericEditableDateCellEditMode({ const updateField = useUpdateEntityField(); // Wrap this into a hook - function handleSubmit(newDate: Nullable) { + const handleSubmit = (newDate: Nullable) => { const fieldValueDate = fieldValue ? DateTime.fromISO(fieldValue).toJSDate() : null; @@ -46,7 +46,7 @@ export function GenericEditableDateCellEditMode({ if (currentRowEntityId && updateField && newDateISO) { updateField(currentRowEntityId, columnDefinition, newDateISO); } - } + }; const { handleEnter, handleEscape, handleClickOutside } = useCellInputEventHandlers({ @@ -62,4 +62,4 @@ export function GenericEditableDateCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCell.tsx index 0d051f24e..cc95bf030 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCell.tsx @@ -14,7 +14,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableDoubleTextCell({ columnDefinition }: OwnProps) { +export const GenericEditableDoubleTextCell = ({ + columnDefinition, +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const firstValue = useRecoilValue( @@ -43,4 +45,4 @@ export function GenericEditableDoubleTextCell({ columnDefinition }: OwnProps) { nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCellEditMode.tsx index f042314ee..b25720a0b 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextCellEditMode.tsx @@ -13,9 +13,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableDoubleTextCellEditMode({ +export const GenericEditableDoubleTextCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -35,7 +35,7 @@ export function GenericEditableDoubleTextCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newFirstValue: string, newSecondValue: string) { + const handleSubmit = (newFirstValue: string, newSecondValue: string) => { if (newFirstValue === firstValue && newSecondValue === secondValue) return; setFirstValue(newFirstValue); @@ -47,7 +47,7 @@ export function GenericEditableDoubleTextCellEditMode({ secondValue: newSecondValue, }); } - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCell.tsx index 5ecf27b32..6ea86c1eb 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCell.tsx @@ -11,22 +11,20 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableDoubleTextChipCell({ +export const GenericEditableDoubleTextChipCell = ({ columnDefinition, -}: OwnProps) { - return ( - - } - nonEditModeContent={ - - } - > - ); -} +}: OwnProps) => ( + + } + nonEditModeContent={ + + } + > +); diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellDisplayMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellDisplayMode.tsx index 7c4ce9e6e..3e183270b 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellDisplayMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellDisplayMode.tsx @@ -13,9 +13,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableDoubleTextChipCellDisplayMode({ +export const GenericEditableDoubleTextChipCellDisplayMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const [firstValue] = useRecoilState( @@ -60,4 +60,4 @@ export function GenericEditableDoubleTextChipCellDisplayMode({ ); return <> ; } -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellEditMode.tsx index 2bfa5965c..9a04baa6b 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableDoubleTextChipCellEditMode.tsx @@ -13,9 +13,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableDoubleTextChipCellEditMode({ +export const GenericEditableDoubleTextChipCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -35,7 +35,7 @@ export function GenericEditableDoubleTextChipCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newFirstValue: string, newSecondValue: string) { + const handleSubmit = (newFirstValue: string, newSecondValue: string) => { const firstValueChanged = newFirstValue !== firstValue; const secondValueChanged = newSecondValue !== secondValue; @@ -57,7 +57,7 @@ export function GenericEditableDoubleTextChipCellEditMode({ secondValue: secondValueChanged ? newSecondValue : secondValue, }); } - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCell.tsx index 2a9dc5ff0..051f6996b 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCell.tsx @@ -15,10 +15,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditableEmailCell({ +export const GenericEditableEmailCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -37,4 +37,4 @@ export function GenericEditableEmailCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCellEditMode.tsx index bdaef73b8..8cba9ee58 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableEmailCellEditMode.tsx @@ -14,9 +14,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableEmailCellEditMode({ +export const GenericEditableEmailCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -29,7 +29,7 @@ export function GenericEditableEmailCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newEmail: string) { + const handleSubmit = (newEmail: string) => { if (newEmail === fieldValue) return; setFieldValue(newEmail); @@ -37,7 +37,7 @@ export function GenericEditableEmailCellEditMode({ if (currentRowEntityId && updateField) { updateField(currentRowEntityId, columnDefinition, newEmail); } - } + }; const { handleEnter, @@ -62,4 +62,4 @@ export function GenericEditableEmailCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCell.tsx index 06cf57c5b..5b0767e3a 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCell.tsx @@ -15,10 +15,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditableMoneyCell({ +export const GenericEditableMoneyCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -37,4 +37,4 @@ export function GenericEditableMoneyCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCellEditMode.tsx index c24b134e6..a314128ef 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableMoneyCellEditMode.tsx @@ -14,9 +14,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableMoneyCellEditMode({ +export const GenericEditableMoneyCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const [fieldValue, setFieldValue] = useRecoilState( @@ -29,7 +29,7 @@ export function GenericEditableMoneyCellEditMode({ const updateField = useUpdateEntityField(); // TODO: handle this logic in a number input - function handleSubmit(newText: string) { + const handleSubmit = (newText: string) => { if (newText === fieldValue) return; try { @@ -53,7 +53,7 @@ export function GenericEditableMoneyCellEditMode({ `In GenericEditableMoneyCellEditMode, Invalid number: ${newText}, ${error}`, ); } - } + }; const { handleEnter, @@ -78,4 +78,4 @@ export function GenericEditableMoneyCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCell.tsx index 46858301c..1733b070e 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCell.tsx @@ -15,10 +15,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditableNumberCell({ +export const GenericEditableNumberCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -39,4 +39,4 @@ export function GenericEditableNumberCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCellEditMode.tsx index 2093bc969..80958067b 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableNumberCellEditMode.tsx @@ -18,9 +18,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableNumberCellEditMode({ +export const GenericEditableNumberCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -33,7 +33,7 @@ export function GenericEditableNumberCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newText: string) { + const handleSubmit = (newText: string) => { if (newText === fieldValue) return; try { @@ -73,7 +73,7 @@ export function GenericEditableNumberCellEditMode({ `In GenericEditableNumberCellEditMode, Invalid number: ${newText}, ${error}`, ); } - } + }; const { handleEnter, @@ -97,4 +97,4 @@ export function GenericEditableNumberCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCell.tsx index 0a3658e38..79ed76e98 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCell.tsx @@ -15,10 +15,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditablePhoneCell({ +export const GenericEditablePhoneCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -38,4 +38,4 @@ export function GenericEditablePhoneCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCellEditMode.tsx index 9c3700b8c..4daca89dc 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditablePhoneCellEditMode.tsx @@ -15,9 +15,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditablePhoneCellEditMode({ +export const GenericEditablePhoneCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -30,7 +30,7 @@ export function GenericEditablePhoneCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newValue: string) { + const handleSubmit = (newValue: string) => { if (!isPossiblePhoneNumber(newValue)) return; if (newValue === fieldValue) return; @@ -40,7 +40,7 @@ export function GenericEditablePhoneCellEditMode({ if (currentRowEntityId && updateField) { updateField(currentRowEntityId, columnDefinition, newValue); } - } + }; const { handleEnter, @@ -65,4 +65,4 @@ export function GenericEditablePhoneCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCell.tsx index cc35c7779..dd1640b4f 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCell.tsx @@ -13,28 +13,26 @@ type OwnProps = { placeholder?: string; }; -export function GenericEditableRelationCell({ +export const GenericEditableRelationCell = ({ columnDefinition, editModeHorizontalAlign, placeholder, -}: OwnProps) { - return ( - - } - nonEditModeContent={ - - } - > - ); -} +}: OwnProps) => ( + + } + nonEditModeContent={ + + } + > +); diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellDisplayMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellDisplayMode.tsx index 49ca8a9f3..35d0b23ec 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellDisplayMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellDisplayMode.tsx @@ -16,9 +16,9 @@ type OwnProps = { placeholder?: string; }; -export function GenericEditableRelationCellDisplayMode({ +export const GenericEditableRelationCellDisplayMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: type value with generic getter @@ -54,4 +54,4 @@ export function GenericEditableRelationCellDisplayMode({ ); return <> ; } -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellEditMode.tsx index 01d23726d..c47c25d05 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableRelationCellEditMode.tsx @@ -19,9 +19,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableRelationCellEditMode({ +export const GenericEditableRelationCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const { closeEditableCell } = useEditableCell(); @@ -34,28 +34,28 @@ export function GenericEditableRelationCellEditMode({ ); const updateEntityField = useUpdateEntityField(); - function updateCachedPersonField(newFieldEntity: EntityForSelect | null) { + const updateCachedPersonField = (newFieldEntity: EntityForSelect | null) => { setFieldValueEntity({ avatarUrl: newFieldEntity?.avatarUrl ?? '', entityType: Entity.Company, id: newFieldEntity?.id ?? '', displayName: newFieldEntity?.name ?? '', }); - } + }; - function updateCachedCompanyField( + const updateCachedCompanyField = ( newFieldEntity: CompanyPickerSelectedCompany | null, - ) { + ) => { setFieldValueEntity({ id: newFieldEntity?.id ?? '', name: newFieldEntity?.name ?? '', domainName: newFieldEntity?.domainName ?? '', }); - } + }; - function handleCompanySubmit( + const handleCompanySubmit = ( newFieldEntity: CompanyPickerSelectedCompany | null, - ) { + ) => { if ( newFieldEntity?.id !== fieldValueEntity?.id && currentRowEntityId && @@ -70,9 +70,9 @@ export function GenericEditableRelationCellEditMode({ } closeEditableCell(); - } + }; - function handlePersonSubmit(newFieldEntity: EntityForSelect | null) { + const handlePersonSubmit = (newFieldEntity: EntityForSelect | null) => { if ( newFieldEntity?.id !== fieldValueEntity?.id && currentRowEntityId && @@ -83,11 +83,11 @@ export function GenericEditableRelationCellEditMode({ } closeEditableCell(); - } + }; - function handleCancel() { + const handleCancel = () => { closeEditableCell(); - } + }; switch (columnDefinition.metadata.relationType) { case Entity.Company: { @@ -117,4 +117,4 @@ export function GenericEditableRelationCellEditMode({ ); return <>; } -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCell.tsx index 34f471240..2a3eaecce 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCell.tsx @@ -15,10 +15,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditableTextCell({ +export const GenericEditableTextCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -37,4 +37,4 @@ export function GenericEditableTextCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCellEditMode.tsx index 70f6c3568..ec9471547 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableTextCellEditMode.tsx @@ -14,9 +14,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableTextCellEditMode({ +export const GenericEditableTextCellEditMode = ({ columnDefinition, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -29,7 +29,7 @@ export function GenericEditableTextCellEditMode({ const updateField = useUpdateEntityField(); - function handleSubmit(newText: string) { + const handleSubmit = (newText: string) => { if (newText === fieldValue) return; setFieldValue(newText); @@ -37,7 +37,7 @@ export function GenericEditableTextCellEditMode({ if (currentRowEntityId && updateField) { updateField(currentRowEntityId, columnDefinition, newText); } - } + }; const { handleEnter, @@ -62,4 +62,4 @@ export function GenericEditableTextCellEditMode({ hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCell.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCell.tsx index fdd7a0e6d..ce5d42e5f 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCell.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCell.tsx @@ -16,10 +16,10 @@ type OwnProps = { editModeHorizontalAlign?: 'left' | 'right'; }; -export function GenericEditableURLCell({ +export const GenericEditableURLCell = ({ columnDefinition, editModeHorizontalAlign, -}: OwnProps) { +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); const fieldValue = useRecoilValue( @@ -39,4 +39,4 @@ export function GenericEditableURLCell({ nonEditModeContent={} > ); -} +}; diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx index 4e807a133..2f48f660f 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx @@ -15,7 +15,9 @@ type OwnProps = { columnDefinition: ColumnDefinition; }; -export function GenericEditableURLCellEditMode({ columnDefinition }: OwnProps) { +export const GenericEditableURLCellEditMode = ({ + columnDefinition, +}: OwnProps) => { const currentRowEntityId = useCurrentRowEntityId(); // TODO: we could use a hook that would return the field value with the right type @@ -28,7 +30,7 @@ export function GenericEditableURLCellEditMode({ columnDefinition }: OwnProps) { const updateField = useUpdateEntityField(); - function handleSubmit(newText: string) { + const handleSubmit = (newText: string) => { if (newText === fieldValue) return; if (newText !== '' && !isURL(newText)) return; @@ -38,7 +40,7 @@ export function GenericEditableURLCellEditMode({ columnDefinition }: OwnProps) { if (currentRowEntityId && updateField) { updateField(currentRowEntityId, columnDefinition, newText); } - } + }; const { handleEnter, @@ -63,4 +65,4 @@ export function GenericEditableURLCellEditMode({ columnDefinition }: OwnProps) { hotkeyScope={TableHotkeyScope.CellEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/hooks/useCellInputEventHandlers.ts b/front/src/modules/ui/table/hooks/useCellInputEventHandlers.ts index 739058601..d58d689a2 100644 --- a/front/src/modules/ui/table/hooks/useCellInputEventHandlers.ts +++ b/front/src/modules/ui/table/hooks/useCellInputEventHandlers.ts @@ -3,13 +3,13 @@ import { useEditableCell } from '../editable-cell/hooks/useEditableCell'; import { useMoveSoftFocus } from './useMoveSoftFocus'; -export function useCellInputEventHandlers({ +export const useCellInputEventHandlers = ({ onSubmit, onCancel, }: { onSubmit?: (newValue: T) => void; onCancel?: () => void; -}) { +}) => { const { closeEditableCell } = useEditableCell(); const { isCurrentCellInEditMode } = useCurrentCellEditMode(); const { moveRight, moveLeft, moveDown } = useMoveSoftFocus(); @@ -44,4 +44,4 @@ export function useCellInputEventHandlers({ moveLeft(); }, }; -} +}; diff --git a/front/src/modules/ui/table/hooks/useClearCellInEditMode.ts b/front/src/modules/ui/table/hooks/useClearCellInEditMode.ts index d55f3098d..87d2eef65 100644 --- a/front/src/modules/ui/table/hooks/useClearCellInEditMode.ts +++ b/front/src/modules/ui/table/hooks/useClearCellInEditMode.ts @@ -3,8 +3,8 @@ import { useRecoilCallback } from 'recoil'; import { currentCellInEditModePositionState } from '../states/currentCellInEditModePositionState'; import { isCellInEditModeFamilyState } from '../states/isCellInEditModeFamilyState'; -export function useCloseCurrentCellInEditMode() { - return useRecoilCallback(({ set, snapshot }) => { +export const useCloseCurrentCellInEditMode = () => + useRecoilCallback(({ set, snapshot }) => { return async () => { const currentCellInEditModePosition = await snapshot.getPromise( currentCellInEditModePositionState, @@ -13,4 +13,3 @@ export function useCloseCurrentCellInEditMode() { set(isCellInEditModeFamilyState(currentCellInEditModePosition), false); }; }, []); -} diff --git a/front/src/modules/ui/table/hooks/useCurrentEntityId.ts b/front/src/modules/ui/table/hooks/useCurrentEntityId.ts index e37f1284a..dfa2031ee 100644 --- a/front/src/modules/ui/table/hooks/useCurrentEntityId.ts +++ b/front/src/modules/ui/table/hooks/useCurrentEntityId.ts @@ -2,8 +2,8 @@ import { useContext } from 'react'; import { RowIdContext } from '../contexts/RowIdContext'; -export function useCurrentRowEntityId() { +export const useCurrentRowEntityId = () => { const currentEntityId = useContext(RowIdContext); return currentEntityId; -} +}; diff --git a/front/src/modules/ui/table/hooks/useCurrentRowSelected.ts b/front/src/modules/ui/table/hooks/useCurrentRowSelected.ts index b2c1a8e10..4558b46d7 100644 --- a/front/src/modules/ui/table/hooks/useCurrentRowSelected.ts +++ b/front/src/modules/ui/table/hooks/useCurrentRowSelected.ts @@ -4,7 +4,7 @@ import { useRecoilCallback, useRecoilState } from 'recoil'; import { RowIdContext } from '../contexts/RowIdContext'; import { isRowSelectedFamilyState } from '../states/isRowSelectedFamilyState'; -export function useCurrentRowSelected() { +export const useCurrentRowSelected = () => { const currentRowId = useContext(RowIdContext); const [isRowSelected] = useRecoilState( @@ -33,4 +33,4 @@ export function useCurrentRowSelected() { currentRowSelected: isRowSelected, setCurrentRowSelected, }; -} +}; diff --git a/front/src/modules/ui/table/hooks/useDisableSoftFocus.ts b/front/src/modules/ui/table/hooks/useDisableSoftFocus.ts index 45e6b4d0e..9a3820866 100644 --- a/front/src/modules/ui/table/hooks/useDisableSoftFocus.ts +++ b/front/src/modules/ui/table/hooks/useDisableSoftFocus.ts @@ -4,8 +4,8 @@ import { isSoftFocusActiveState } from '../states/isSoftFocusActiveState'; import { isSoftFocusOnCellFamilyState } from '../states/isSoftFocusOnCellFamilyState'; import { softFocusPositionState } from '../states/softFocusPositionState'; -export function useDisableSoftFocus() { - return useRecoilCallback(({ set, snapshot }) => { +export const useDisableSoftFocus = () => + useRecoilCallback(({ set, snapshot }) => { return () => { const currentPosition = snapshot .getLoadable(softFocusPositionState) @@ -16,4 +16,3 @@ export function useDisableSoftFocus() { set(isSoftFocusOnCellFamilyState(currentPosition), false); }; }, []); -} diff --git a/front/src/modules/ui/table/hooks/useLeaveTableFocus.ts b/front/src/modules/ui/table/hooks/useLeaveTableFocus.ts index 0ec996ed8..4c0e966f7 100644 --- a/front/src/modules/ui/table/hooks/useLeaveTableFocus.ts +++ b/front/src/modules/ui/table/hooks/useLeaveTableFocus.ts @@ -8,7 +8,7 @@ import { TableHotkeyScope } from '../types/TableHotkeyScope'; import { useCloseCurrentCellInEditMode } from './useClearCellInEditMode'; import { useDisableSoftFocus } from './useDisableSoftFocus'; -export function useLeaveTableFocus() { +export const useLeaveTableFocus = () => { const disableSoftFocus = useDisableSoftFocus(); const closeCurrentCellInEditMode = useCloseCurrentCellInEditMode(); @@ -36,4 +36,4 @@ export function useLeaveTableFocus() { }, [closeCurrentCellInEditMode, disableSoftFocus], ); -} +}; diff --git a/front/src/modules/ui/table/hooks/useMapKeyboardToSoftFocus.ts b/front/src/modules/ui/table/hooks/useMapKeyboardToSoftFocus.ts index 93db2d60a..17c1a4e77 100644 --- a/front/src/modules/ui/table/hooks/useMapKeyboardToSoftFocus.ts +++ b/front/src/modules/ui/table/hooks/useMapKeyboardToSoftFocus.ts @@ -8,7 +8,7 @@ import { TableHotkeyScope } from '../types/TableHotkeyScope'; import { useDisableSoftFocus } from './useDisableSoftFocus'; import { useMoveSoftFocus } from './useMoveSoftFocus'; -export function useMapKeyboardToSoftFocus() { +export const useMapKeyboardToSoftFocus = () => { const { moveDown, moveLeft, moveRight, moveUp } = useMoveSoftFocus(); const disableSoftFocus = useDisableSoftFocus(); @@ -59,4 +59,4 @@ export function useMapKeyboardToSoftFocus() { TableHotkeyScope.TableSoftFocus, [disableSoftFocus], ); -} +}; diff --git a/front/src/modules/ui/table/hooks/useMoveEditModeToCellPosition.ts b/front/src/modules/ui/table/hooks/useMoveEditModeToCellPosition.ts index ab597615b..1165d23cf 100644 --- a/front/src/modules/ui/table/hooks/useMoveEditModeToCellPosition.ts +++ b/front/src/modules/ui/table/hooks/useMoveEditModeToCellPosition.ts @@ -4,8 +4,8 @@ import { currentCellInEditModePositionState } from '../states/currentCellInEditM import { isCellInEditModeFamilyState } from '../states/isCellInEditModeFamilyState'; import { CellPosition } from '../types/CellPosition'; -export function useMoveEditModeToCellPosition() { - return useRecoilCallback(({ set, snapshot }) => { +export const useMoveEditModeToCellPosition = () => + useRecoilCallback(({ set, snapshot }) => { return (newPosition: CellPosition) => { const currentCellInEditModePosition = snapshot .getLoadable(currentCellInEditModePositionState) @@ -18,4 +18,3 @@ export function useMoveEditModeToCellPosition() { set(isCellInEditModeFamilyState(newPosition), true); }; }, []); -} diff --git a/front/src/modules/ui/table/hooks/useMoveSoftFocus.ts b/front/src/modules/ui/table/hooks/useMoveSoftFocus.ts index de84ff23d..92cd01c80 100644 --- a/front/src/modules/ui/table/hooks/useMoveSoftFocus.ts +++ b/front/src/modules/ui/table/hooks/useMoveSoftFocus.ts @@ -10,7 +10,8 @@ import { softFocusPositionState } from '../states/softFocusPositionState'; import { useSetSoftFocusPosition } from './useSetSoftFocusPosition'; // TODO: stories -export function useMoveSoftFocus() { + +export const useMoveSoftFocus = () => { const tableScopeId = useRecoilScopeId(TableRecoilScopeContext); const setSoftFocusPosition = useSetSoftFocusPosition(); @@ -155,4 +156,4 @@ export function useMoveSoftFocus() { moveRight, moveUp, }; -} +}; diff --git a/front/src/modules/ui/table/hooks/useResetTableRowSelection.ts b/front/src/modules/ui/table/hooks/useResetTableRowSelection.ts index 543704117..ebc67da37 100644 --- a/front/src/modules/ui/table/hooks/useResetTableRowSelection.ts +++ b/front/src/modules/ui/table/hooks/useResetTableRowSelection.ts @@ -3,8 +3,8 @@ import { useRecoilCallback } from 'recoil'; import { isRowSelectedFamilyState } from '../states/isRowSelectedFamilyState'; import { tableRowIdsState } from '../states/tableRowIdsState'; -export function useResetTableRowSelection() { - return useRecoilCallback( +export const useResetTableRowSelection = () => + useRecoilCallback( ({ snapshot, set }) => () => { const tableRowIds = snapshot @@ -17,4 +17,3 @@ export function useResetTableRowSelection() { }, [], ); -} diff --git a/front/src/modules/ui/table/hooks/useSelectAllRows.ts b/front/src/modules/ui/table/hooks/useSelectAllRows.ts index 00b027eba..01f19e693 100644 --- a/front/src/modules/ui/table/hooks/useSelectAllRows.ts +++ b/front/src/modules/ui/table/hooks/useSelectAllRows.ts @@ -4,7 +4,7 @@ import { isRowSelectedFamilyState } from '../states/isRowSelectedFamilyState'; import { allRowsSelectedStatusSelector } from '../states/selectors/allRowsSelectedStatusSelector'; import { tableRowIdsState } from '../states/tableRowIdsState'; -export function useSelectAllRows() { +export const useSelectAllRows = () => { const allRowsSelectedStatus = useRecoilValue(allRowsSelectedStatusSelector); const selectAllRows = useRecoilCallback( @@ -38,4 +38,4 @@ export function useSelectAllRows() { allRowsSelectedStatus, selectAllRows, }; -} +}; diff --git a/front/src/modules/ui/table/hooks/useSetEntityTableData.ts b/front/src/modules/ui/table/hooks/useSetEntityTableData.ts index 55708f13f..8ea338c53 100644 --- a/front/src/modules/ui/table/hooks/useSetEntityTableData.ts +++ b/front/src/modules/ui/table/hooks/useSetEntityTableData.ts @@ -13,7 +13,7 @@ import { SortDefinition } from '@/ui/view-bar/types/SortDefinition'; import { isFetchingEntityTableDataState } from '../states/isFetchingEntityTableDataState'; import { numberOfTableRowsState } from '../states/numberOfTableRowsState'; -export function useSetEntityTableData() { +export const useSetEntityTableData = () => { const resetTableRowSelection = useResetTableRowSelection(); const tableContextScopeId = useRecoilScopeId(TableRecoilScopeContext); @@ -62,4 +62,4 @@ export function useSetEntityTableData() { }, [resetTableRowSelection, tableContextScopeId], ); -} +}; diff --git a/front/src/modules/ui/table/hooks/useSetRowSelectedState.ts b/front/src/modules/ui/table/hooks/useSetRowSelectedState.ts index 9d1c4f1ff..be8423438 100644 --- a/front/src/modules/ui/table/hooks/useSetRowSelectedState.ts +++ b/front/src/modules/ui/table/hooks/useSetRowSelectedState.ts @@ -2,8 +2,7 @@ import { useRecoilCallback } from 'recoil'; import { isRowSelectedFamilyState } from '../states/isRowSelectedFamilyState'; -export function useSetRowSelectedState() { - return useRecoilCallback(({ set }) => (rowId: string, selected: boolean) => { +export const useSetRowSelectedState = () => + useRecoilCallback(({ set }) => (rowId: string, selected: boolean) => { set(isRowSelectedFamilyState(rowId), selected); }); -} diff --git a/front/src/modules/ui/table/hooks/useSetSoftFocusPosition.ts b/front/src/modules/ui/table/hooks/useSetSoftFocusPosition.ts index a15bb394a..88c1ad254 100644 --- a/front/src/modules/ui/table/hooks/useSetSoftFocusPosition.ts +++ b/front/src/modules/ui/table/hooks/useSetSoftFocusPosition.ts @@ -5,8 +5,8 @@ import { isSoftFocusOnCellFamilyState } from '../states/isSoftFocusOnCellFamilyS import { softFocusPositionState } from '../states/softFocusPositionState'; import { CellPosition } from '../types/CellPosition'; -export function useSetSoftFocusPosition() { - return useRecoilCallback(({ set, snapshot }) => { +export const useSetSoftFocusPosition = () => + useRecoilCallback(({ set, snapshot }) => { return (newPosition: CellPosition) => { const currentPosition = snapshot .getLoadable(softFocusPositionState) @@ -21,4 +21,3 @@ export function useSetSoftFocusPosition() { set(isSoftFocusOnCellFamilyState(newPosition), true); }; }, []); -} diff --git a/front/src/modules/ui/table/hooks/useUpdateEntityField.ts b/front/src/modules/ui/table/hooks/useUpdateEntityField.ts index b2c4afd3d..70e6af4ae 100644 --- a/front/src/modules/ui/table/hooks/useUpdateEntityField.ts +++ b/front/src/modules/ui/table/hooks/useUpdateEntityField.ts @@ -49,10 +49,10 @@ import type { import { EntityUpdateMutationContext } from '../contexts/EntityUpdateMutationHookContext'; import type { ColumnDefinition } from '../types/ColumnDefinition'; -export function useUpdateEntityField() { +export const useUpdateEntityField = () => { const updateEntity = useContext(EntityUpdateMutationContext); - return function updateEntityField< + const updateEntityField = < MetadataType extends ViewFieldMetadata, ValueType extends MetadataType extends ViewFieldDoubleTextMetadata ? ViewFieldDoubleTextValue @@ -77,7 +77,7 @@ export function useUpdateEntityField() { currentEntityId: string, columnDefinition: ColumnDefinition, newFieldValue: ValueType | null, - ) { + ) => { // TODO: improve type guards organization, maybe with a common typeguard for all view fields // taking an object of options as parameter ? // @@ -174,4 +174,6 @@ export function useUpdateEntityField() { }); } }; -} + + return updateEntityField; +}; diff --git a/front/src/modules/ui/table/hooks/useUpsertEntityTableItem.ts b/front/src/modules/ui/table/hooks/useUpsertEntityTableItem.ts index bbf8c3146..5bf8a148a 100644 --- a/front/src/modules/ui/table/hooks/useUpsertEntityTableItem.ts +++ b/front/src/modules/ui/table/hooks/useUpsertEntityTableItem.ts @@ -2,8 +2,8 @@ import { useRecoilCallback } from 'recoil'; import { tableEntitiesFamilyState } from '@/ui/table/states/tableEntitiesFamilyState'; -export function useUpsertEntityTableItem() { - return useRecoilCallback( +export const useUpsertEntityTableItem = () => + useRecoilCallback( ({ set, snapshot }) => (entity: T) => { const currentEntity = snapshot @@ -16,4 +16,3 @@ export function useUpsertEntityTableItem() { }, [], ); -} diff --git a/front/src/modules/ui/table/hooks/useUpsertEntityTableItems.ts b/front/src/modules/ui/table/hooks/useUpsertEntityTableItems.ts index ef620f375..8e1c3926e 100644 --- a/front/src/modules/ui/table/hooks/useUpsertEntityTableItems.ts +++ b/front/src/modules/ui/table/hooks/useUpsertEntityTableItems.ts @@ -2,8 +2,8 @@ import { useRecoilCallback } from 'recoil'; import { tableEntitiesFamilyState } from '@/ui/table/states/tableEntitiesFamilyState'; -export function useUpsertEntityTableItems() { - return useRecoilCallback( +export const useUpsertEntityTableItems = () => + useRecoilCallback( ({ set, snapshot }) => (entities: T[]) => { // Create a map of new entities for quick lookup. @@ -31,4 +31,3 @@ export function useUpsertEntityTableItems() { }, [], ); -} diff --git a/front/src/modules/ui/table/hooks/useUpsertTableRowId.ts b/front/src/modules/ui/table/hooks/useUpsertTableRowId.ts index 0a8d519af..5200823b5 100644 --- a/front/src/modules/ui/table/hooks/useUpsertTableRowId.ts +++ b/front/src/modules/ui/table/hooks/useUpsertTableRowId.ts @@ -2,8 +2,8 @@ import { useRecoilCallback } from 'recoil'; import { tableRowIdsState } from '../states/tableRowIdsState'; -export function useUpsertTableRowId() { - return useRecoilCallback( +export const useUpsertTableRowId = () => + useRecoilCallback( ({ set, snapshot }) => (rowId: string) => { const currentRowIds = snapshot @@ -14,4 +14,3 @@ export function useUpsertTableRowId() { }, [], ); -} diff --git a/front/src/modules/ui/table/hooks/useUpsertTableRowIds.ts b/front/src/modules/ui/table/hooks/useUpsertTableRowIds.ts index 1396c4dfb..4981be430 100644 --- a/front/src/modules/ui/table/hooks/useUpsertTableRowIds.ts +++ b/front/src/modules/ui/table/hooks/useUpsertTableRowIds.ts @@ -2,8 +2,8 @@ import { useRecoilCallback } from 'recoil'; import { tableRowIdsState } from '../states/tableRowIdsState'; -export function useUpsertTableRowIds() { - return useRecoilCallback( +export const useUpsertTableRowIds = () => + useRecoilCallback( ({ set, snapshot }) => (rowIds: string[]) => { const currentRowIds = snapshot @@ -15,4 +15,3 @@ export function useUpsertTableRowIds() { }, [], ); -} diff --git a/front/src/modules/ui/table/options/components/TableOptionsDropdown.tsx b/front/src/modules/ui/table/options/components/TableOptionsDropdown.tsx index 3257ffec1..35bb7a9fa 100644 --- a/front/src/modules/ui/table/options/components/TableOptionsDropdown.tsx +++ b/front/src/modules/ui/table/options/components/TableOptionsDropdown.tsx @@ -13,9 +13,9 @@ type TableOptionsDropdownProps = { customHotkeyScope: HotkeyScope; }; -export function TableOptionsDropdown({ +export const TableOptionsDropdown = ({ customHotkeyScope, -}: TableOptionsDropdownProps) { +}: TableOptionsDropdownProps) => { const resetViewEditMode = useResetRecoilState(viewEditModeState); return ( @@ -27,4 +27,4 @@ export function TableOptionsDropdown({ onClickOutside={resetViewEditMode} /> ); -} +}; diff --git a/front/src/modules/ui/table/options/components/TableOptionsDropdownButton.tsx b/front/src/modules/ui/table/options/components/TableOptionsDropdownButton.tsx index 74331d497..6e1c636d2 100644 --- a/front/src/modules/ui/table/options/components/TableOptionsDropdownButton.tsx +++ b/front/src/modules/ui/table/options/components/TableOptionsDropdownButton.tsx @@ -3,7 +3,7 @@ import { useDropdownButton } from '@/ui/dropdown/hooks/useDropdownButton'; import { TableOptionsDropdownId } from '../../constants/TableOptionsDropdownId'; -export function TableOptionsDropdownButton() { +export const TableOptionsDropdownButton = () => { const { isDropdownButtonOpen, toggleDropdownButton } = useDropdownButton({ dropdownId: TableOptionsDropdownId, }); @@ -16,4 +16,4 @@ export function TableOptionsDropdownButton() { Options
); -} +}; diff --git a/front/src/modules/ui/table/options/components/TableOptionsDropdownContent.tsx b/front/src/modules/ui/table/options/components/TableOptionsDropdownContent.tsx index 1f5814fc8..5a9eeee08 100644 --- a/front/src/modules/ui/table/options/components/TableOptionsDropdownContent.tsx +++ b/front/src/modules/ui/table/options/components/TableOptionsDropdownContent.tsx @@ -56,7 +56,7 @@ const StyledViewNameInput = styled.input` } `; -export function TableOptionsDropdownContent() { +export const TableOptionsDropdownContent = () => { const scopeId = useRecoilScopeId(TableRecoilScopeContext); const { onImport } = useContext(ViewBarContext); @@ -201,4 +201,4 @@ export function TableOptionsDropdownContent() { )} ); -} +}; diff --git a/front/src/modules/ui/table/table-header/components/TableHeader.tsx b/front/src/modules/ui/table/table-header/components/TableHeader.tsx index 28c6c4c2b..b8e571066 100644 --- a/front/src/modules/ui/table/table-header/components/TableHeader.tsx +++ b/front/src/modules/ui/table/table-header/components/TableHeader.tsx @@ -18,7 +18,7 @@ import { canPersistTableColumnsScopedFamilySelector } from '../../states/selecto import { tableColumnsScopedState } from '../../states/tableColumnsScopedState'; import { TableOptionsHotkeyScope } from '../../types/TableOptionsHotkeyScope'; -export function TableHeader() { +export const TableHeader = () => { const { onCurrentViewSubmit, ...viewBarContextProps } = useContext(ViewBarContext); const tableRecoilScopeId = useRecoilScopeId(TableRecoilScopeContext); @@ -54,13 +54,13 @@ export function TableHeader() { [tableRecoilScopeId], ); - async function handleCurrentViewSubmit() { + const handleCurrentViewSubmit = async () => { if (canPersistTableColumns) { setSavedTableColumns(tableColumns); } await onCurrentViewSubmit?.(); - } + }; return ( @@ -84,4 +84,4 @@ export function TableHeader() { ); -} +}; diff --git a/front/src/modules/ui/tag/components/Tag.tsx b/front/src/modules/ui/tag/components/Tag.tsx index 3a95896bf..7c572c287 100644 --- a/front/src/modules/ui/tag/components/Tag.tsx +++ b/front/src/modules/ui/tag/components/Tag.tsx @@ -17,9 +17,8 @@ const tagColors = [ export type TagColor = (typeof tagColors)[number]; -export function castToTagColor(color: string): TagColor { - return tagColors.find((tagColor) => tagColor === color) ?? 'gray'; -} +export const castToTagColor = (color: string): TagColor => + tagColors.find((tagColor) => tagColor === color) ?? 'gray'; const StyledTag = styled.h3<{ color: TagColor; @@ -47,10 +46,8 @@ export type TagProps = { onClick?: () => void; }; -export function Tag({ color, text, onClick }: TagProps) { - return ( - - {text} - - ); -} +export const Tag = ({ color, text, onClick }: TagProps) => ( + + {text} + +); diff --git a/front/src/modules/ui/theme/components/AppThemeProvider.tsx b/front/src/modules/ui/theme/components/AppThemeProvider.tsx index d34b332e6..e7732bfcf 100644 --- a/front/src/modules/ui/theme/components/AppThemeProvider.tsx +++ b/front/src/modules/ui/theme/components/AppThemeProvider.tsx @@ -15,7 +15,7 @@ const themes = { [ColorScheme.Light]: lightTheme, }; -export function AppThemeProvider({ children }: OwnProps) { +export const AppThemeProvider = ({ children }: OwnProps) => { const systemColorScheme = useSystemColorScheme(); const { colorScheme } = useColorScheme(); @@ -26,4 +26,4 @@ export function AppThemeProvider({ children }: OwnProps) { ]; return {children}; -} +}; diff --git a/front/src/modules/ui/theme/constants/colors.ts b/front/src/modules/ui/theme/constants/colors.ts index f3261cd23..4e2f33811 100644 --- a/front/src/modules/ui/theme/constants/colors.ts +++ b/front/src/modules/ui/theme/constants/colors.ts @@ -146,7 +146,7 @@ export const color = { ...secondaryColors, }; -export function rgba(hex: string, alpha: number) { +export const rgba = (hex: string, alpha: number) => { const rgb = hexRgb(hex, { format: 'array' }).slice(0, -1).join(','); return `rgba(${rgb},${alpha})`; -} +}; diff --git a/front/src/modules/ui/theme/hooks/useColorScheme.ts b/front/src/modules/ui/theme/hooks/useColorScheme.ts index 147908383..a4f251a79 100644 --- a/front/src/modules/ui/theme/hooks/useColorScheme.ts +++ b/front/src/modules/ui/theme/hooks/useColorScheme.ts @@ -8,7 +8,7 @@ import { useUpdateUserMutation, } from '~/generated/graphql'; -export function useColorScheme() { +export const useColorScheme = () => { const [currentUser, setCurrentUser] = useRecoilState(currentUserState); const [updateUser] = useUpdateUserMutation(); @@ -106,4 +106,4 @@ export function useColorScheme() { colorScheme, setColorScheme, }; -} +}; diff --git a/front/src/modules/ui/theme/hooks/useSystemColorScheme.ts b/front/src/modules/ui/theme/hooks/useSystemColorScheme.ts index 4fd935933..ce17cc4ad 100644 --- a/front/src/modules/ui/theme/hooks/useSystemColorScheme.ts +++ b/front/src/modules/ui/theme/hooks/useSystemColorScheme.ts @@ -4,7 +4,7 @@ import { ColorScheme } from '~/generated/graphql'; type SystemColorScheme = ColorScheme.Light | ColorScheme.Dark; -export function useSystemColorScheme(): SystemColorScheme { +export const useSystemColorScheme = (): SystemColorScheme => { const mediaQuery = useMemo( () => window.matchMedia('(prefers-color-scheme: dark)'), [], @@ -22,11 +22,11 @@ export function useSystemColorScheme(): SystemColorScheme { return; } - function handleChange(event: MediaQueryListEvent): void { + const handleChange = (event: MediaQueryListEvent): void => { setPreferredColorScheme( event.matches ? ColorScheme.Dark : ColorScheme.Light, ); - } + }; mediaQuery.addEventListener('change', handleChange); @@ -36,4 +36,4 @@ export function useSystemColorScheme(): SystemColorScheme { }, [mediaQuery]); return preferredColorScheme; -} +}; diff --git a/front/src/modules/ui/theme/utils/castStringAsThemeColor.ts b/front/src/modules/ui/theme/utils/castStringAsThemeColor.ts index b6e8aedce..e4ed73779 100644 --- a/front/src/modules/ui/theme/utils/castStringAsThemeColor.ts +++ b/front/src/modules/ui/theme/utils/castStringAsThemeColor.ts @@ -2,6 +2,5 @@ import { mainColors, ThemeColor } from '../constants/colors'; export const COLORS = Object.keys(mainColors); -export function isThemeColor(color: string): color is ThemeColor { - return COLORS.includes(color); -} +export const isThemeColor = (color: string): color is ThemeColor => + COLORS.includes(color); diff --git a/front/src/modules/ui/tooltip/AppTooltip.tsx b/front/src/modules/ui/tooltip/AppTooltip.tsx index 1c96b745b..0b4f35d8b 100644 --- a/front/src/modules/ui/tooltip/AppTooltip.tsx +++ b/front/src/modules/ui/tooltip/AppTooltip.tsx @@ -43,6 +43,6 @@ export type AppToolipProps = { positionStrategy?: PositionStrategy; }; -export function AppTooltip(props: AppToolipProps) { - return ; -} +export const AppTooltip = (props: AppToolipProps) => ( + +); diff --git a/front/src/modules/ui/tooltip/OverflowingTextWithTooltip.tsx b/front/src/modules/ui/tooltip/OverflowingTextWithTooltip.tsx index f19b0436b..46caf9059 100644 --- a/front/src/modules/ui/tooltip/OverflowingTextWithTooltip.tsx +++ b/front/src/modules/ui/tooltip/OverflowingTextWithTooltip.tsx @@ -19,11 +19,11 @@ const StyledOverflowingText = styled.div<{ cursorPointer: boolean }>` white-space: nowrap; `; -export function OverflowingTextWithTooltip({ +export const OverflowingTextWithTooltip = ({ text, }: { text: string | null | undefined; -}) { +}) => { const textElementId = `title-id-${uuidV4()}`; const textRef = useRef(null); @@ -42,10 +42,10 @@ export function OverflowingTextWithTooltip({ } }, [isTitleOverflowing, text]); - function handleTooltipClick(event: React.MouseEvent) { + const handleTooltipClick = (event: React.MouseEvent) => { event.stopPropagation(); event.preventDefault(); - } + }; return ( <> @@ -74,4 +74,4 @@ export function OverflowingTextWithTooltip({ )} ); -} +}; diff --git a/front/src/modules/ui/top-bar/TopBar.tsx b/front/src/modules/ui/top-bar/TopBar.tsx index 2d96eef7b..f25b7c615 100644 --- a/front/src/modules/ui/top-bar/TopBar.tsx +++ b/front/src/modules/ui/top-bar/TopBar.tsx @@ -40,20 +40,18 @@ const StyledRightSection = styled.div` gap: ${({ theme }) => theme.betweenSiblingsGap}; `; -export function TopBar({ +export const TopBar = ({ className, leftComponent, rightComponent, bottomComponent, displayBottomBorder = true, -}: OwnProps) { - return ( - - - {leftComponent} - {rightComponent} - - {bottomComponent} - - ); -} +}: OwnProps) => ( + + + {leftComponent} + {rightComponent} + + {bottomComponent} + +); diff --git a/front/src/modules/ui/typography/components/H1Title.tsx b/front/src/modules/ui/typography/components/H1Title.tsx index e81829442..09a01fa52 100644 --- a/front/src/modules/ui/typography/components/H1Title.tsx +++ b/front/src/modules/ui/typography/components/H1Title.tsx @@ -22,9 +22,7 @@ const StyledTitle = styled.h2<{ margin-bottom: ${({ theme }) => theme.spacing(4)}; `; -export function H1Title({ +export const H1Title = ({ title, fontColor = H1TitleFontColor.Tertiary, -}: OwnProps) { - return {title}; -} +}: OwnProps) => {title}; diff --git a/front/src/modules/ui/typography/components/H2Title.tsx b/front/src/modules/ui/typography/components/H2Title.tsx index 82ea64bdc..629c6ce22 100644 --- a/front/src/modules/ui/typography/components/H2Title.tsx +++ b/front/src/modules/ui/typography/components/H2Title.tsx @@ -33,14 +33,12 @@ const StyledDescription = styled.h3` margin-top: ${({ theme }) => theme.spacing(3)}; `; -export function H2Title({ title, description, addornment }: Props) { - return ( - - - {title} - {addornment} - - {description && {description}} - - ); -} +export const H2Title = ({ title, description, addornment }: Props) => ( + + + {title} + {addornment} + + {description && {description}} + +); diff --git a/front/src/modules/ui/utilities/animation/components/AnimatedEaseIn.tsx b/front/src/modules/ui/utilities/animation/components/AnimatedEaseIn.tsx index 0753caa9a..ced648b9f 100644 --- a/front/src/modules/ui/utilities/animation/components/AnimatedEaseIn.tsx +++ b/front/src/modules/ui/utilities/animation/components/AnimatedEaseIn.tsx @@ -7,11 +7,11 @@ type Props = Omit< duration?: number; }; -export function AnimatedEaseIn({ +export const AnimatedEaseIn = ({ children, duration = 0.3, ...restProps -}: Props) { +}: Props) => { const initial = { opacity: 0 }; const animate = { opacity: 1 }; const transition = { ease: 'linear', duration }; @@ -26,4 +26,4 @@ export function AnimatedEaseIn({ {children} ); -} +}; diff --git a/front/src/modules/ui/utilities/animation/components/AnimatedTextWord.tsx b/front/src/modules/ui/utilities/animation/components/AnimatedTextWord.tsx index bd368f3f2..39f364127 100644 --- a/front/src/modules/ui/utilities/animation/components/AnimatedTextWord.tsx +++ b/front/src/modules/ui/utilities/animation/components/AnimatedTextWord.tsx @@ -44,7 +44,7 @@ const childAnimation = { }, }; -export function AnimatedTextWord({ text = '', ...restProps }: Props) { +export const AnimatedTextWord = ({ text = '', ...restProps }: Props) => { const words = useMemo(() => { const words = text.split(' '); @@ -67,4 +67,4 @@ export function AnimatedTextWord({ text = '', ...restProps }: Props) { ))} ); -} +}; diff --git a/front/src/modules/ui/utilities/debug/components/TimingProfiler.tsx b/front/src/modules/ui/utilities/debug/components/TimingProfiler.tsx index a6f6f905e..6a56d33b5 100644 --- a/front/src/modules/ui/utilities/debug/components/TimingProfiler.tsx +++ b/front/src/modules/ui/utilities/debug/components/TimingProfiler.tsx @@ -6,8 +6,8 @@ type OwnProps = { children: React.ReactNode; }; -export function TimingProfiler({ id, children }: OwnProps) { - function handleRender( +export const TimingProfiler = ({ id, children }: OwnProps) => { + const handleRender = ( id: string, phase: 'mount' | 'update', actualDuration: number, @@ -15,7 +15,7 @@ export function TimingProfiler({ id, children }: OwnProps) { startTime: number, commitTime: number, interactions: Set, - ) { + ) => { console.debug( 'TimingProfiler', JSON.stringify( @@ -32,11 +32,11 @@ export function TimingProfiler({ id, children }: OwnProps) { 2, ), ); - } + }; return ( {children} ); -} +}; diff --git a/front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx b/front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx index 8ad7142b2..48f5b375e 100644 --- a/front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx +++ b/front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx @@ -12,11 +12,11 @@ type OwnProps = { onDragSelectionStart?: () => void; }; -export function DragSelect({ +export const DragSelect = ({ dragSelectable, onDragSelectionChange, onDragSelectionStart, -}: OwnProps) { +}: OwnProps) => { const { isDragSelectionStartEnabled } = useDragSelect(); const { DragSelection } = useSelectionContainer({ shouldStartSelecting: (target) => { @@ -65,4 +65,4 @@ export function DragSelect({ }); return ; -} +}; diff --git a/front/src/modules/ui/utilities/drag-select/hooks/useDragSelect.ts b/front/src/modules/ui/utilities/drag-select/hooks/useDragSelect.ts index b2a356c41..adba31fff 100644 --- a/front/src/modules/ui/utilities/drag-select/hooks/useDragSelect.ts +++ b/front/src/modules/ui/utilities/drag-select/hooks/useDragSelect.ts @@ -2,14 +2,14 @@ import { useRecoilCallback, useRecoilState } from 'recoil'; import { isDragSelectionStartEnabledState } from '../states/internal/isDragSelectionStartEnabledState'; -export function useDragSelect() { +export const useDragSelect = () => { const [, setIsDragSelectionStartEnabled] = useRecoilState( isDragSelectionStartEnabledState, ); - function setDragSelectionStartEnabled(isEnabled: boolean) { + const setDragSelectionStartEnabled = (isEnabled: boolean) => { setIsDragSelectionStartEnabled(isEnabled); - } + }; const isDragSelectionStartEnabled = useRecoilCallback( ({ snapshot }) => @@ -25,4 +25,4 @@ export function useDragSelect() { isDragSelectionStartEnabled, setDragSelectionStartEnabled, }; -} +}; diff --git a/front/src/modules/ui/utilities/hotkey/components/HotkeyEffect.tsx b/front/src/modules/ui/utilities/hotkey/components/HotkeyEffect.tsx index 2d9d2018f..bfc314471 100644 --- a/front/src/modules/ui/utilities/hotkey/components/HotkeyEffect.tsx +++ b/front/src/modules/ui/utilities/hotkey/components/HotkeyEffect.tsx @@ -10,10 +10,10 @@ type OwnProps = { onHotkeyTriggered: () => void; }; -export function HotkeyEffect({ hotkey, onHotkeyTriggered }: OwnProps) { +export const HotkeyEffect = ({ hotkey, onHotkeyTriggered }: OwnProps) => { useScopedHotkeys(hotkey.key, () => onHotkeyTriggered(), hotkey.scope, [ onHotkeyTriggered, ]); return <>; -} +}; diff --git a/front/src/modules/ui/utilities/hotkey/hooks/useGoToHotkeys.ts b/front/src/modules/ui/utilities/hotkey/hooks/useGoToHotkeys.ts index 38cc7dd2c..aeb485b4c 100644 --- a/front/src/modules/ui/utilities/hotkey/hooks/useGoToHotkeys.ts +++ b/front/src/modules/ui/utilities/hotkey/hooks/useGoToHotkeys.ts @@ -5,7 +5,7 @@ import { AppHotkeyScope } from '../types/AppHotkeyScope'; import { useSequenceHotkeys } from './useSequenceScopedHotkeys'; -export function useGoToHotkeys(key: Keys, location: string) { +export const useGoToHotkeys = (key: Keys, location: string) => { const navigate = useNavigate(); useSequenceHotkeys( @@ -22,4 +22,4 @@ export function useGoToHotkeys(key: Keys, location: string) { }, [navigate], ); -} +}; diff --git a/front/src/modules/ui/utilities/hotkey/hooks/usePreviousHotkeyScope.ts b/front/src/modules/ui/utilities/hotkey/hooks/usePreviousHotkeyScope.ts index c325481d4..36601c63b 100644 --- a/front/src/modules/ui/utilities/hotkey/hooks/usePreviousHotkeyScope.ts +++ b/front/src/modules/ui/utilities/hotkey/hooks/usePreviousHotkeyScope.ts @@ -6,7 +6,7 @@ import { CustomHotkeyScopes } from '../types/CustomHotkeyScope'; import { useSetHotkeyScope } from './useSetHotkeyScope'; -export function usePreviousHotkeyScope() { +export const usePreviousHotkeyScope = () => { const setHotkeyScope = useSetHotkeyScope(); const goBackToPreviousHotkeyScope = useRecoilCallback( @@ -47,4 +47,4 @@ export function usePreviousHotkeyScope() { setHotkeyScopeAndMemorizePreviousScope, goBackToPreviousHotkeyScope, }; -} +}; diff --git a/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeyCallback.ts b/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeyCallback.ts index b9671aa1d..1bee34ec8 100644 --- a/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeyCallback.ts +++ b/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeyCallback.ts @@ -5,8 +5,8 @@ import { internalHotkeysEnabledScopesState } from '../states/internal/internalHo const DEBUG_HOTKEY_SCOPE = true; -export function useScopedHotkeyCallback() { - return useRecoilCallback( +export const useScopedHotkeyCallback = () => + useRecoilCallback( ({ snapshot }) => ({ callback, @@ -61,4 +61,3 @@ export function useScopedHotkeyCallback() { }, [], ); -} diff --git a/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts b/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts index 6167b0b38..b8c7ff31d 100644 --- a/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts +++ b/front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts @@ -11,7 +11,7 @@ import { pendingHotkeyState } from '../states/internal/pendingHotkeysState'; import { useScopedHotkeyCallback } from './useScopedHotkeyCallback'; -export function useScopedHotkeys( +export const useScopedHotkeys = ( keys: Keys, callback: HotkeyCallback, scope: string, @@ -21,7 +21,7 @@ export function useScopedHotkeys( enableOnFormTags: true, preventDefault: true, }, -) { +) => { const [pendingHotkey, setPendingHotkey] = useRecoilState(pendingHotkeyState); const callScopedHotkeyCallback = useScopedHotkeyCallback(); @@ -49,4 +49,4 @@ export function useScopedHotkeys( }, dependencies, ); -} +}; diff --git a/front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts b/front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts index f1a50f9dd..46e4ec21d 100644 --- a/front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts +++ b/front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts @@ -6,7 +6,7 @@ import { pendingHotkeyState } from '../states/internal/pendingHotkeysState'; import { useScopedHotkeyCallback } from './useScopedHotkeyCallback'; -export function useSequenceHotkeys( +export const useSequenceHotkeys = ( firstKey: Keys, secondKey: Keys, sequenceCallback: () => void, @@ -17,7 +17,7 @@ export function useSequenceHotkeys( preventDefault: true, }, deps: any[] = [], -) { +) => { const [pendingHotkey, setPendingHotkey] = useRecoilState(pendingHotkeyState); const callScopedHotkeyCallback = useScopedHotkeyCallback(); @@ -73,4 +73,4 @@ export function useSequenceHotkeys( }, [pendingHotkey, setPendingHotkey, scope, ...deps], ); -} +}; diff --git a/front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts b/front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts index 9e53c7752..36d19efd3 100644 --- a/front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts +++ b/front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts @@ -9,18 +9,18 @@ import { AppHotkeyScope } from '../types/AppHotkeyScope'; import { CustomHotkeyScopes } from '../types/CustomHotkeyScope'; import { HotkeyScope } from '../types/HotkeyScope'; -function isCustomScopesEqual( +const isCustomScopesEqual = ( customScopesA: CustomHotkeyScopes | undefined, customScopesB: CustomHotkeyScopes | undefined, -) { +) => { return ( customScopesA?.commandMenu === customScopesB?.commandMenu && customScopesA?.goto === customScopesB?.goto ); -} +}; -export function useSetHotkeyScope() { - return useRecoilCallback( +export const useSetHotkeyScope = () => + useRecoilCallback( ({ snapshot, set }) => async (hotkeyScopeToSet: string, customScopes?: CustomHotkeyScopes) => { const currentHotkeyScope = await snapshot.getPromise( @@ -72,4 +72,3 @@ export function useSetHotkeyScope() { }, [], ); -} diff --git a/front/src/modules/ui/utilities/hotkey/utils/isNonTextWritingKey.ts b/front/src/modules/ui/utilities/hotkey/utils/isNonTextWritingKey.ts index aa7856917..8c1bd4be4 100644 --- a/front/src/modules/ui/utilities/hotkey/utils/isNonTextWritingKey.ts +++ b/front/src/modules/ui/utilities/hotkey/utils/isNonTextWritingKey.ts @@ -1,4 +1,4 @@ -export function isNonTextWritingKey(key: string) { +export const isNonTextWritingKey = (key: string) => { const nonTextWritingKeys = [ 'Enter', 'Tab', @@ -54,4 +54,4 @@ export function isNonTextWritingKey(key: string) { ]; return nonTextWritingKeys.includes(key); -} +}; diff --git a/front/src/modules/ui/utilities/page-title/PageTitle.tsx b/front/src/modules/ui/utilities/page-title/PageTitle.tsx index 63680379d..dcd34060f 100644 --- a/front/src/modules/ui/utilities/page-title/PageTitle.tsx +++ b/front/src/modules/ui/utilities/page-title/PageTitle.tsx @@ -4,10 +4,8 @@ type OwnProps = { title: string; }; -export function PageTitle({ title }: OwnProps) { - return ( - - {title} - - ); -} +export const PageTitle = ({ title }: OwnProps) => ( + + {title} + +); diff --git a/front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutsideArrayOfRef.test.tsx b/front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutsideArrayOfRef.test.tsx index eb719bc63..39349126e 100644 --- a/front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutsideArrayOfRef.test.tsx +++ b/front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutsideArrayOfRef.test.tsx @@ -5,7 +5,7 @@ import { useListenClickOutside } from '../useListenClickOutside'; const onOutsideClick = jest.fn(); -function TestComponentDomMode() { +const TestComponentDomMode = () => { const buttonRef = useRef(null); const buttonRef2 = useRef(null); useListenClickOutside({ @@ -20,7 +20,7 @@ function TestComponentDomMode() { ); -} +}; test('useListenClickOutside hook works in dom mode', async () => { const { getByText } = render(); diff --git a/front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts b/front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts index 951162aa0..506bb5ba9 100644 --- a/front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts +++ b/front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts @@ -5,7 +5,7 @@ export enum ClickOutsideMode { dom = 'dom', } -export function useListenClickOutside({ +export const useListenClickOutside = ({ refs, callback, mode = ClickOutsideMode.dom, @@ -15,9 +15,9 @@ export function useListenClickOutside({ callback: (event: MouseEvent | TouchEvent) => void; mode?: ClickOutsideMode; enabled?: boolean; -}) { +}) => { useEffect(() => { - function handleClickOutside(event: MouseEvent | TouchEvent) { + const handleClickOutside = (event: MouseEvent | TouchEvent) => { if (mode === ClickOutsideMode.dom) { const clickedOnAtLeastOneRef = refs .filter((ref) => !!ref.current) @@ -61,7 +61,7 @@ export function useListenClickOutside({ callback(event); } } - } + }; if (enabled) { document.addEventListener('click', handleClickOutside, { capture: true }); @@ -79,7 +79,7 @@ export function useListenClickOutside({ }; } }, [refs, callback, mode, enabled]); -} +}; export const useListenClickOutsideByClassName = ({ classNames, excludeClassNames, diff --git a/front/src/modules/ui/utilities/pointer-event/hooks/useTrackPointer.ts b/front/src/modules/ui/utilities/pointer-event/hooks/useTrackPointer.ts index c3e3f790b..82998d6c6 100644 --- a/front/src/modules/ui/utilities/pointer-event/hooks/useTrackPointer.ts +++ b/front/src/modules/ui/utilities/pointer-event/hooks/useTrackPointer.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect } from 'react'; type MouseListener = (positionX: number, positionY: number) => void; -export function useTrackPointer({ +export const useTrackPointer = ({ shouldTrackPointer = true, onMouseMove, onMouseDown, @@ -12,7 +12,7 @@ export function useTrackPointer({ onMouseMove?: MouseListener; onMouseDown?: MouseListener; onMouseUp?: MouseListener; -}) { +}) => { const extractPosition = useCallback((event: MouseEvent | TouchEvent) => { const clientX = 'clientX' in event ? event.clientX : event.changedTouches[0].clientX; @@ -64,4 +64,4 @@ export function useTrackPointer({ onInternalMouseDown, onInternalMouseUp, ]); -} +}; diff --git a/front/src/modules/ui/utilities/recoil-scope/components/RecoilScope.tsx b/front/src/modules/ui/utilities/recoil-scope/components/RecoilScope.tsx index 36cee511c..cf5f99483 100644 --- a/front/src/modules/ui/utilities/recoil-scope/components/RecoilScope.tsx +++ b/front/src/modules/ui/utilities/recoil-scope/components/RecoilScope.tsx @@ -5,7 +5,7 @@ import { type RecoilScopeContext as RecoilScopeContextType } from '@/types/Recoi import { RecoilScopeContext } from '../states/RecoilScopeContext'; -export function RecoilScope({ +export const RecoilScope = ({ children, scopeId, CustomRecoilScopeContext, @@ -13,7 +13,7 @@ export function RecoilScope({ children: React.ReactNode; scopeId?: string; CustomRecoilScopeContext?: RecoilScopeContextType; -}) { +}) => { const currentScopeId = useRef(scopeId ?? v4()); return CustomRecoilScopeContext ? ( @@ -25,4 +25,4 @@ export function RecoilScope({ {children} ); -} +}; diff --git a/front/src/modules/ui/utilities/recoil-scope/hooks/useContextScopeId.ts b/front/src/modules/ui/utilities/recoil-scope/hooks/useContextScopeId.ts new file mode 100644 index 000000000..ab3d6b3cc --- /dev/null +++ b/front/src/modules/ui/utilities/recoil-scope/hooks/useContextScopeId.ts @@ -0,0 +1,12 @@ +import { Context, useContext } from 'react'; + +export const useContextScopeId = (SpecificContext: Context) => { + const recoilScopeId = useContext(SpecificContext); + + if (!recoilScopeId) + throw new Error( + `Using useContextScopedId outside of the specified context : ${SpecificContext.displayName}, verify that you are using a RecoilScope with the specific context you want to use.`, + ); + + return recoilScopeId; +}; diff --git a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopeId.ts b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopeId.ts index 0a452388d..2f259f394 100644 --- a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopeId.ts +++ b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopeId.ts @@ -2,7 +2,7 @@ import { useContext } from 'react'; import { RecoilScopeContext } from '@/types/RecoilScopeContext'; -export function useRecoilScopeId(RecoilScopeContext: RecoilScopeContext) { +export const useRecoilScopeId = (RecoilScopeContext: RecoilScopeContext) => { const recoilScopeId = useContext(RecoilScopeContext); if (!recoilScopeId) @@ -11,4 +11,4 @@ export function useRecoilScopeId(RecoilScopeContext: RecoilScopeContext) { ); return recoilScopeId; -} +}; diff --git a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedFamilyState.ts b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedFamilyState.ts index 41f64dfc6..e5dbc7b68 100644 --- a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedFamilyState.ts +++ b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedFamilyState.ts @@ -3,11 +3,11 @@ import { RecoilState, useRecoilState } from 'recoil'; import { RecoilScopeContext } from '../states/RecoilScopeContext'; -export function useRecoilScopedFamilyState( +export const useRecoilScopedFamilyState = ( recoilState: (familyUniqueId: string) => RecoilState, uniqueIdInRecoilScope: string, CustomRecoilScopeContext?: Context, -) { +) => { const recoilScopeId = useContext( CustomRecoilScopeContext ?? RecoilScopeContext, ); @@ -22,4 +22,4 @@ export function useRecoilScopedFamilyState( const familyUniqueId = recoilScopeId + uniqueIdInRecoilScope; return useRecoilState(recoilState(familyUniqueId)); -} +}; diff --git a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedState.ts b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedState.ts index c97910bfe..a4c37a620 100644 --- a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedState.ts +++ b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedState.ts @@ -3,10 +3,10 @@ import { RecoilState, useRecoilState } from 'recoil'; import { RecoilScopeContext } from '../states/RecoilScopeContext'; -export function useRecoilScopedState( +export const useRecoilScopedState = ( recoilState: (param: string) => RecoilState, CustomRecoilScopeContext?: Context, -) { +) => { const recoilScopeId = useContext( CustomRecoilScopeContext ?? RecoilScopeContext, ); @@ -19,4 +19,4 @@ export function useRecoilScopedState( ); return useRecoilState(recoilState(recoilScopeId)); -} +}; diff --git a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedValue.ts b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedValue.ts index b683e9b56..484fd4102 100644 --- a/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedValue.ts +++ b/front/src/modules/ui/utilities/recoil-scope/hooks/useRecoilScopedValue.ts @@ -3,10 +3,10 @@ import { RecoilState, RecoilValueReadOnly, useRecoilValue } from 'recoil'; import { RecoilScopeContext } from '../states/RecoilScopeContext'; -export function useRecoilScopedValue( +export const useRecoilScopedValue = ( recoilState: (param: string) => RecoilState | RecoilValueReadOnly, CustomRecoilScopeContext?: Context, -) { +) => { const recoilScopeId = useContext( CustomRecoilScopeContext ?? RecoilScopeContext, ); @@ -19,4 +19,4 @@ export function useRecoilScopedValue( ); return useRecoilValue(recoilState(recoilScopeId)); -} +}; diff --git a/front/src/modules/ui/utilities/responsive/hooks/useIsMobile.ts b/front/src/modules/ui/utilities/responsive/hooks/useIsMobile.ts index 75bdb3d85..4a4089604 100644 --- a/front/src/modules/ui/utilities/responsive/hooks/useIsMobile.ts +++ b/front/src/modules/ui/utilities/responsive/hooks/useIsMobile.ts @@ -2,6 +2,5 @@ import { useMediaQuery } from 'react-responsive'; import { MOBILE_VIEWPORT } from '@/ui/theme/constants/theme'; -export function useIsMobile() { - return useMediaQuery({ query: `(max-width: ${MOBILE_VIEWPORT}px)` }); -} +export const useIsMobile = () => + useMediaQuery({ query: `(max-width: ${MOBILE_VIEWPORT}px)` }); diff --git a/front/src/modules/ui/utilities/scroll/components/ScrollWrapper.tsx b/front/src/modules/ui/utilities/scroll/components/ScrollWrapper.tsx index 2e3da47b7..f5e50f5f0 100644 --- a/front/src/modules/ui/utilities/scroll/components/ScrollWrapper.tsx +++ b/front/src/modules/ui/utilities/scroll/components/ScrollWrapper.tsx @@ -24,7 +24,7 @@ export type ScrollWrapperProps = { className?: string; }; -export function ScrollWrapper({ children, className }: ScrollWrapperProps) { +export const ScrollWrapper = ({ children, className }: ScrollWrapperProps) => { const scrollableRef = useRef(null); useListenScroll({ @@ -38,4 +38,4 @@ export function ScrollWrapper({ children, className }: ScrollWrapperProps) { ); -} +}; diff --git a/front/src/modules/ui/utilities/scroll/hooks/useListenScroll.ts b/front/src/modules/ui/utilities/scroll/hooks/useListenScroll.ts index 6921a3c01..0948e7348 100644 --- a/front/src/modules/ui/utilities/scroll/hooks/useListenScroll.ts +++ b/front/src/modules/ui/utilities/scroll/hooks/useListenScroll.ts @@ -4,11 +4,11 @@ import { useRecoilCallback } from 'recoil'; import { isScrollingState } from '../states/isScrollingState'; -export function useListenScroll({ +export const useListenScroll = ({ scrollableRef, }: { scrollableRef: React.RefObject; -}) { +}) => { const hideScrollBarsCallback = useRecoilCallback(({ snapshot }) => () => { const isScrolling = snapshot.getLoadable(isScrollingState).getValue(); if (!isScrolling) { @@ -42,4 +42,4 @@ export function useListenScroll({ handleScrollEnd, scrollableRef, ]); -} +}; diff --git a/front/src/modules/ui/utilities/scroll/hooks/useScrollWrapperScopedRef.ts b/front/src/modules/ui/utilities/scroll/hooks/useScrollWrapperScopedRef.ts index fa8de7456..36d209406 100644 --- a/front/src/modules/ui/utilities/scroll/hooks/useScrollWrapperScopedRef.ts +++ b/front/src/modules/ui/utilities/scroll/hooks/useScrollWrapperScopedRef.ts @@ -2,7 +2,7 @@ import { useContext } from 'react'; import { ScrollWrapperContext } from '../components/ScrollWrapper'; -export function useScrollWrapperScopedRef() { +export const useScrollWrapperScopedRef = () => { const scrollWrapperRef = useContext(ScrollWrapperContext); if (!scrollWrapperRef) @@ -11,4 +11,4 @@ export function useScrollWrapperScopedRef() { ); return scrollWrapperRef; -} +}; diff --git a/front/src/modules/ui/view-bar/components/AddFilterFromDetailsButton.tsx b/front/src/modules/ui/view-bar/components/AddFilterFromDetailsButton.tsx index c7fd0f185..46d168e1e 100644 --- a/front/src/modules/ui/view-bar/components/AddFilterFromDetailsButton.tsx +++ b/front/src/modules/ui/view-bar/components/AddFilterFromDetailsButton.tsx @@ -4,14 +4,14 @@ import { IconPlus } from '@/ui/icon'; import { FilterDropdownId } from '../constants/FilterDropdownId'; -export function AddFilterFromDropdownButton() { +export const AddFilterFromDropdownButton = () => { const { toggleDropdownButton } = useDropdownButton({ dropdownId: FilterDropdownId, }); - function handleClick() { + const handleClick = () => { toggleDropdownButton(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownButton.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownButton.tsx index f41cd7e7b..2afbc7ead 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownButton.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownButton.tsx @@ -11,9 +11,9 @@ type FilterDropdownButtonProps = { hotkeyScope: HotkeyScope; }; -export function FilterDropdownButton({ +export const FilterDropdownButton = ({ hotkeyScope, -}: FilterDropdownButtonProps) { +}: FilterDropdownButtonProps) => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [availableFilters] = useRecoilScopedState( @@ -33,4 +33,4 @@ export function FilterDropdownButton({ ) : ( ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownDateSearchInput.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownDateSearchInput.tsx index 38d5164d6..9d1a2f032 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownDateSearchInput.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownDateSearchInput.tsx @@ -7,7 +7,7 @@ import { selectedOperandInDropdownScopedState } from '@/ui/view-bar/states/selec import { useViewBarContext } from '../hooks/useViewBarContext'; import { isFilterDropdownUnfoldedScopedState } from '../states/isFilterDropdownUnfoldedScopedState'; -export function FilterDropdownDateSearchInput() { +export const FilterDropdownDateSearchInput = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -27,7 +27,7 @@ export function FilterDropdownDateSearchInput() { const upsertFilter = useUpsertFilter(); - function handleChange(date: Date) { + const handleChange = (date: Date) => { if (!filterDefinitionUsedInDropdown || !selectedOperandInDropdown) return; upsertFilter({ @@ -39,7 +39,7 @@ export function FilterDropdownDateSearchInput() { }); setIsFilterDropdownUnfolded(false); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchInput.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchInput.tsx index bae297dba..0d35a9fb1 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchInput.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchInput.tsx @@ -8,7 +8,7 @@ import { selectedOperandInDropdownScopedState } from '@/ui/view-bar/states/selec import { useViewBarContext } from '../hooks/useViewBarContext'; -export function FilterDropdownEntitySearchInput() { +export const FilterDropdownEntitySearchInput = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -40,4 +40,4 @@ export function FilterDropdownEntitySearchInput() { /> ) ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchSelect.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchSelect.tsx index 293811f7a..74f7e8632 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchSelect.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownEntitySearchSelect.tsx @@ -13,11 +13,11 @@ import { selectedOperandInDropdownScopedState } from '@/ui/view-bar/states/selec import { useViewBarContext } from '../hooks/useViewBarContext'; -export function FilterDropdownEntitySearchSelect({ +export const FilterDropdownEntitySearchSelect = ({ entitiesForSelect, }: { entitiesForSelect: EntitiesForMultipleEntitySelect; -}) { +}) => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDropdownSelectedEntityId, setFilterDropdownSelectedEntityId] = @@ -41,9 +41,9 @@ export function FilterDropdownEntitySearchSelect({ const filterCurrentlyEdited = useFilterCurrentlyEdited(); - function handleUserSelected( + const handleUserSelected = ( selectedEntity: EntityForSelect | null | undefined, - ) { + ) => { if ( !filterDefinitionUsedInDropdown || !selectedOperandInDropdown || @@ -70,7 +70,7 @@ export function FilterDropdownEntitySearchSelect({ displayAvatarUrl: selectedEntity.avatarUrl, }); } - } + }; useEffect(() => { if (!filterCurrentlyEdited) { @@ -88,4 +88,4 @@ export function FilterDropdownEntitySearchSelect({ /> ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownEntitySelect.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownEntitySelect.tsx index 212bd408c..c7db5e086 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownEntitySelect.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownEntitySelect.tsx @@ -5,7 +5,7 @@ import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoi import { useViewBarContext } from '../hooks/useViewBarContext'; import { filterDefinitionUsedInDropdownScopedState } from '../states/filterDefinitionUsedInDropdownScopedState'; -export function FilterDropdownEntitySelect() { +export const FilterDropdownEntitySelect = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -25,4 +25,4 @@ export function FilterDropdownEntitySelect() { ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownFilterSelect.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownFilterSelect.tsx index 25cd8fa10..2dfb9f42a 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownFilterSelect.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownFilterSelect.tsx @@ -12,7 +12,7 @@ import { filterDropdownSearchInputScopedState } from '../states/filterDropdownSe import { selectedOperandInDropdownScopedState } from '../states/selectedOperandInDropdownScopedState'; import { getOperandsForFilterType } from '../utils/getOperandsForFilterType'; -export function FilterDropdownFilterSelect() { +export const FilterDropdownFilterSelect = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [, setFilterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -62,4 +62,4 @@ export function FilterDropdownFilterSelect() { ))} ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownNumberSearchInput.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownNumberSearchInput.tsx index 54aa89720..d4c854f2d 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownNumberSearchInput.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownNumberSearchInput.tsx @@ -9,7 +9,7 @@ import { useViewBarContext } from '../hooks/useViewBarContext'; import { filterDefinitionUsedInDropdownScopedState } from '../states/filterDefinitionUsedInDropdownScopedState'; import { selectedOperandInDropdownScopedState } from '../states/selectedOperandInDropdownScopedState'; -export function FilterDropdownNumberSearchInput() { +export const FilterDropdownNumberSearchInput = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -47,4 +47,4 @@ export function FilterDropdownNumberSearchInput() { /> ) ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownOperandButton.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownOperandButton.tsx index 94e820640..670b281fb 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownOperandButton.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownOperandButton.tsx @@ -7,7 +7,7 @@ import { isFilterDropdownOperandSelectUnfoldedScopedState } from '../states/isFi import { selectedOperandInDropdownScopedState } from '../states/selectedOperandInDropdownScopedState'; import { getOperandLabel } from '../utils/getOperandLabel'; -export function FilterDropdownOperandButton() { +export const FilterDropdownOperandButton = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [selectedOperandInDropdown] = useRecoilScopedState( @@ -36,4 +36,4 @@ export function FilterDropdownOperandButton() { {getOperandLabel(selectedOperandInDropdown)} ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownOperandSelect.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownOperandSelect.tsx index 2b5d02f5b..81aa19477 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownOperandSelect.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownOperandSelect.tsx @@ -12,7 +12,7 @@ import { FilterOperand } from '../types/FilterOperand'; import { getOperandLabel } from '../utils/getOperandLabel'; import { getOperandsForFilterType } from '../utils/getOperandsForFilterType'; -export function FilterDropdownOperandSelect() { +export const FilterDropdownOperandSelect = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -41,7 +41,7 @@ export function FilterDropdownOperandSelect() { const upsertFilter = useUpsertFilter(); - function handleOperangeChange(newOperand: FilterOperand) { + const handleOperangeChange = (newOperand: FilterOperand) => { setSelectedOperandInDropdown(newOperand); setIsFilterDropdownOperandSelectUnfolded(false); @@ -54,7 +54,7 @@ export function FilterDropdownOperandSelect() { value: filterCurrentlyEdited.value, }); } - } + }; if (!isFilterDropdownOperandSelectUnfolded) { return <>; @@ -73,4 +73,4 @@ export function FilterDropdownOperandSelect() { ))} ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/FilterDropdownTextSearchInput.tsx b/front/src/modules/ui/view-bar/components/FilterDropdownTextSearchInput.tsx index ea7eb58f4..c1f5343ff 100644 --- a/front/src/modules/ui/view-bar/components/FilterDropdownTextSearchInput.tsx +++ b/front/src/modules/ui/view-bar/components/FilterDropdownTextSearchInput.tsx @@ -11,7 +11,7 @@ import { filterDefinitionUsedInDropdownScopedState } from '../states/filterDefin import { filterDropdownSearchInputScopedState } from '../states/filterDropdownSearchInputScopedState'; import { selectedOperandInDropdownScopedState } from '../states/selectedOperandInDropdownScopedState'; -export function FilterDropdownTextSearchInput() { +export const FilterDropdownTextSearchInput = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filterDefinitionUsedInDropdown] = useRecoilScopedState( @@ -60,4 +60,4 @@ export function FilterDropdownTextSearchInput() { /> ) ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/GenericEntityFilterChip.tsx b/front/src/modules/ui/view-bar/components/GenericEntityFilterChip.tsx index a7aa25c8e..d4998e6f8 100644 --- a/front/src/modules/ui/view-bar/components/GenericEntityFilterChip.tsx +++ b/front/src/modules/ui/view-bar/components/GenericEntityFilterChip.tsx @@ -6,13 +6,11 @@ type OwnProps = { filter: Filter; }; -export function GenericEntityFilterChip({ filter }: OwnProps) { - return ( - - ); -} +export const GenericEntityFilterChip = ({ filter }: OwnProps) => ( + +); diff --git a/front/src/modules/ui/view-bar/components/MultipleFiltersButton.tsx b/front/src/modules/ui/view-bar/components/MultipleFiltersButton.tsx index 51744fc03..1d025d9c6 100644 --- a/front/src/modules/ui/view-bar/components/MultipleFiltersButton.tsx +++ b/front/src/modules/ui/view-bar/components/MultipleFiltersButton.tsx @@ -9,7 +9,7 @@ import { filterDropdownSearchInputScopedState } from '../states/filterDropdownSe import { isFilterDropdownOperandSelectUnfoldedScopedState } from '../states/isFilterDropdownOperandSelectUnfoldedScopedState'; import { selectedOperandInDropdownScopedState } from '../states/selectedOperandInDropdownScopedState'; -export function MultipleFiltersButton() { +export const MultipleFiltersButton = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const { isDropdownButtonOpen, toggleDropdownButton } = useDropdownButton({ @@ -43,10 +43,10 @@ export function MultipleFiltersButton() { setFilterDropdownSearchInput(''); }; - function handleClick() { + const handleClick = () => { toggleDropdownButton(); resetState(); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownButton.tsx b/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownButton.tsx index bfd84761f..5951cb4e2 100644 --- a/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownButton.tsx +++ b/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownButton.tsx @@ -10,9 +10,9 @@ type MultipleFiltersDropdownButtonProps = { hotkeyScope: HotkeyScope; }; -export function MultipleFiltersDropdownButton({ +export const MultipleFiltersDropdownButton = ({ hotkeyScope, -}: MultipleFiltersDropdownButtonProps) { +}: MultipleFiltersDropdownButtonProps) => { return ( ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownContent.tsx b/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownContent.tsx index 5018fae3b..7b4d5d919 100644 --- a/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownContent.tsx +++ b/front/src/modules/ui/view-bar/components/MultipleFiltersDropdownContent.tsx @@ -16,7 +16,7 @@ import { FilterDropdownOperandButton } from './FilterDropdownOperandButton'; import { FilterDropdownOperandSelect } from './FilterDropdownOperandSelect'; import { FilterDropdownTextSearchInput } from './FilterDropdownTextSearchInput'; -export function MultipleFiltersDropdownContent() { +export const MultipleFiltersDropdownContent = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [isFilterDropdownOperandSelectUnfolded] = useRecoilScopedState( @@ -67,4 +67,4 @@ export function MultipleFiltersDropdownContent() { ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/SingleEntityFilterDropdownButton.tsx b/front/src/modules/ui/view-bar/components/SingleEntityFilterDropdownButton.tsx index c90334e02..544d1950c 100644 --- a/front/src/modules/ui/view-bar/components/SingleEntityFilterDropdownButton.tsx +++ b/front/src/modules/ui/view-bar/components/SingleEntityFilterDropdownButton.tsx @@ -29,11 +29,11 @@ const StyledDropdownButtonContainer = styled.div` position: relative; `; -export function SingleEntityFilterDropdownButton({ +export const SingleEntityFilterDropdownButton = ({ hotkeyScope, }: { hotkeyScope: HotkeyScope; -}) { +}) => { const theme = useTheme(); const { ViewBarRecoilScopeContext } = useViewBarContext(); @@ -82,7 +82,7 @@ export function SingleEntityFilterDropdownButton({ const setHotkeyScope = useSetHotkeyScope(); - function handleIsUnfoldedChange(newIsUnfolded: boolean) { + const handleIsUnfoldedChange = (newIsUnfolded: boolean) => { if (newIsUnfolded) { setHotkeyScope(hotkeyScope.scope, hotkeyScope.customScopes); setIsFilterDropdownUnfolded(true); @@ -91,7 +91,7 @@ export function SingleEntityFilterDropdownButton({ setIsFilterDropdownUnfolded(false); setFilterDropdownSearchInput(''); } - } + }; return ( @@ -114,4 +114,4 @@ export function SingleEntityFilterDropdownButton({ )} ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/SortDropdownButton.tsx b/front/src/modules/ui/view-bar/components/SortDropdownButton.tsx index 838474c29..f3e70ca72 100644 --- a/front/src/modules/ui/view-bar/components/SortDropdownButton.tsx +++ b/front/src/modules/ui/view-bar/components/SortDropdownButton.tsx @@ -25,7 +25,9 @@ export type SortDropdownButtonProps = { isPrimaryButton?: boolean; }; -export function SortDropdownButton({ hotkeyScope }: SortDropdownButtonProps) { +export const SortDropdownButton = ({ + hotkeyScope, +}: SortDropdownButtonProps) => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [isSortDirectionMenuUnfolded, setIsSortDirectionMenuUnfolded] = @@ -55,12 +57,12 @@ export function SortDropdownButton({ hotkeyScope }: SortDropdownButtonProps) { dropdownId: SortDropdownId, }); - function handleButtonClick() { + const handleButtonClick = () => { toggleDropdownButton(); resetState(); - } + }; - function handleAddSort(selectedSortDefinition: SortDefinition) { + const handleAddSort = (selectedSortDefinition: SortDefinition) => { toggleDropdownButton(); setSorts( @@ -81,7 +83,7 @@ export function SortDropdownButton({ hotkeyScope }: SortDropdownButtonProps) { } }), ); - } + }; return ( ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/SortOrFilterChip.tsx b/front/src/modules/ui/view-bar/components/SortOrFilterChip.tsx index 2f313dd74..134d5d3c7 100644 --- a/front/src/modules/ui/view-bar/components/SortOrFilterChip.tsx +++ b/front/src/modules/ui/view-bar/components/SortOrFilterChip.tsx @@ -54,14 +54,14 @@ const StyledLabelKey = styled.div` font-weight: ${({ theme }) => theme.font.weight.medium}; `; -function SortOrFilterChip({ +const SortOrFilterChip = ({ labelKey, labelValue, Icon, onRemove, isSort, testId, -}: OwnProps) { +}: OwnProps) => { const theme = useTheme(); return ( @@ -77,6 +77,6 @@ function SortOrFilterChip({ ); -} +}; export default SortOrFilterChip; diff --git a/front/src/modules/ui/view-bar/components/ViewBarDetails.tsx b/front/src/modules/ui/view-bar/components/ViewBarDetails.tsx index 454bf2b7d..918b46fd1 100644 --- a/front/src/modules/ui/view-bar/components/ViewBarDetails.tsx +++ b/front/src/modules/ui/view-bar/components/ViewBarDetails.tsx @@ -96,10 +96,10 @@ const StyledAddFilterContainer = styled.div` z-index: 5; `; -export function ViewBarDetails({ +export const ViewBarDetails = ({ hasFilterButton = false, rightComponent, -}: ViewBarDetailsProps) { +}: ViewBarDetailsProps) => { const { canPersistViewFields, onViewBarReset, ViewBarRecoilScopeContext } = useContext(ViewBarContext); @@ -165,11 +165,11 @@ export function ViewBarDetails({ const removeFilter = useRemoveFilter(); - function handleCancelClick() { + const handleCancelClick = () => { onViewBarReset?.(); setFilters(savedFilters); setSorts(savedSorts); - } + }; const handleSortRemove = (sortKey: string) => setSorts((previousSorts) => @@ -243,4 +243,4 @@ export function ViewBarDetails({ {rightComponent} ); -} +}; diff --git a/front/src/modules/ui/view-bar/components/ViewFieldsVisibilityDropdownSection.tsx b/front/src/modules/ui/view-bar/components/ViewFieldsVisibilityDropdownSection.tsx index 8b8683cdc..bbfaabf06 100644 --- a/front/src/modules/ui/view-bar/components/ViewFieldsVisibilityDropdownSection.tsx +++ b/front/src/modules/ui/view-bar/components/ViewFieldsVisibilityDropdownSection.tsx @@ -13,27 +13,29 @@ type OwnProps = { title: string; }; -export function ViewFieldsVisibilityDropdownSection< +export const ViewFieldsVisibilityDropdownSection = < Field extends ViewFieldDefinition, ->({ fields, onVisibilityChange, title }: OwnProps) { - return ( - <> - {title} - - {fields.map((field) => ( - onVisibilityChange(field), - }, - ]} - text={field.name} - /> - ))} - - - ); -} +>({ + fields, + onVisibilityChange, + title, +}: OwnProps) => ( + <> + {title} + + {fields.map((field) => ( + onVisibilityChange(field), + }, + ]} + text={field.name} + /> + ))} + + +); diff --git a/front/src/modules/ui/view-bar/hooks/useFilterCurrentlyEdited.ts b/front/src/modules/ui/view-bar/hooks/useFilterCurrentlyEdited.ts index 7fae435b3..e38426918 100644 --- a/front/src/modules/ui/view-bar/hooks/useFilterCurrentlyEdited.ts +++ b/front/src/modules/ui/view-bar/hooks/useFilterCurrentlyEdited.ts @@ -7,7 +7,7 @@ import { filtersScopedState } from '../states/filtersScopedState'; import { useViewBarContext } from './useViewBarContext'; -export function useFilterCurrentlyEdited() { +export const useFilterCurrentlyEdited = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [filters] = useRecoilScopedState( @@ -25,4 +25,4 @@ export function useFilterCurrentlyEdited() { (filter) => filter.key === filterDefinitionUsedInDropdown?.key, ); }, [filterDefinitionUsedInDropdown, filters]); -} +}; diff --git a/front/src/modules/ui/view-bar/hooks/useRemoveFilter.ts b/front/src/modules/ui/view-bar/hooks/useRemoveFilter.ts index 9f3bdeb06..e9962e9d9 100644 --- a/front/src/modules/ui/view-bar/hooks/useRemoveFilter.ts +++ b/front/src/modules/ui/view-bar/hooks/useRemoveFilter.ts @@ -5,7 +5,7 @@ import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoi import { ViewBarContext } from '../contexts/ViewBarContext'; import { filtersScopedState } from '../states/filtersScopedState'; -export function useRemoveFilter() { +export const useRemoveFilter = () => { const { ViewBarRecoilScopeContext } = useContext(ViewBarContext); const [, setFilters] = useRecoilScopedState( @@ -13,11 +13,13 @@ export function useRemoveFilter() { ViewBarRecoilScopeContext, ); - return function removeFilter(filterKey: string) { + const removeFilter = (filterKey: string) => { setFilters((filters) => { return filters.filter((filter) => { return filter.key !== filterKey; }); }); }; -} + + return removeFilter; +}; diff --git a/front/src/modules/ui/view-bar/hooks/useUpsertFilter.ts b/front/src/modules/ui/view-bar/hooks/useUpsertFilter.ts index 11a468ddf..a44e6f4fd 100644 --- a/front/src/modules/ui/view-bar/hooks/useUpsertFilter.ts +++ b/front/src/modules/ui/view-bar/hooks/useUpsertFilter.ts @@ -7,7 +7,7 @@ import { Filter } from '../types/Filter'; import { useViewBarContext } from './useViewBarContext'; -export function useUpsertFilter() { +export const useUpsertFilter = () => { const { ViewBarRecoilScopeContext } = useViewBarContext(); const [, setFilters] = useRecoilScopedState( @@ -15,7 +15,7 @@ export function useUpsertFilter() { ViewBarRecoilScopeContext, ); - return function upsertFilter(filterToUpsert: Filter) { + const upsertFilter = (filterToUpsert: Filter) => { setFilters((filters) => { return produce(filters, (filtersDraft) => { const index = filtersDraft.findIndex( @@ -30,4 +30,6 @@ export function useUpsertFilter() { }); }); }; -} + + return upsertFilter; +}; diff --git a/front/src/modules/ui/view-bar/utils/getOperandLabel.ts b/front/src/modules/ui/view-bar/utils/getOperandLabel.ts index f1e0b05c9..03d12ef1f 100644 --- a/front/src/modules/ui/view-bar/utils/getOperandLabel.ts +++ b/front/src/modules/ui/view-bar/utils/getOperandLabel.ts @@ -1,6 +1,6 @@ import { FilterOperand } from '../types/FilterOperand'; -export function getOperandLabel(operand: FilterOperand | null | undefined) { +export const getOperandLabel = (operand: FilterOperand | null | undefined) => { switch (operand) { case FilterOperand.Contains: return 'Contains'; @@ -17,10 +17,11 @@ export function getOperandLabel(operand: FilterOperand | null | undefined) { default: return ''; } -} -export function getOperandLabelShort( +}; + +export const getOperandLabelShort = ( operand: FilterOperand | null | undefined, -) { +) => { switch (operand) { case FilterOperand.Is: case FilterOperand.Contains: @@ -35,4 +36,4 @@ export function getOperandLabelShort( default: return ': '; } -} +}; diff --git a/front/src/modules/ui/view-bar/utils/getOperandsForFilterType.ts b/front/src/modules/ui/view-bar/utils/getOperandsForFilterType.ts index 10ff6f8dd..03140ee7a 100644 --- a/front/src/modules/ui/view-bar/utils/getOperandsForFilterType.ts +++ b/front/src/modules/ui/view-bar/utils/getOperandsForFilterType.ts @@ -1,9 +1,9 @@ import { FilterOperand } from '../types/FilterOperand'; import { FilterType } from '../types/FilterType'; -export function getOperandsForFilterType( +export const getOperandsForFilterType = ( filterType: FilterType | null | undefined, -): FilterOperand[] { +): FilterOperand[] => { switch (filterType) { case 'text': return [FilterOperand.Contains, FilterOperand.DoesNotContain]; @@ -15,4 +15,4 @@ export function getOperandsForFilterType( default: return []; } -} +}; diff --git a/front/src/modules/ui/view-bar/utils/turnFilterIntoWhereClause.ts b/front/src/modules/ui/view-bar/utils/turnFilterIntoWhereClause.ts index 07c7ef0e8..55431e2a8 100644 --- a/front/src/modules/ui/view-bar/utils/turnFilterIntoWhereClause.ts +++ b/front/src/modules/ui/view-bar/utils/turnFilterIntoWhereClause.ts @@ -3,7 +3,7 @@ import { QueryMode } from '~/generated/graphql'; import { Filter } from '../types/Filter'; import { FilterOperand } from '../types/FilterOperand'; -export function turnFilterIntoWhereClause(filter: Filter) { +export const turnFilterIntoWhereClause = (filter: Filter) => { switch (filter.type) { case 'text': switch (filter.operand) { @@ -88,4 +88,4 @@ export function turnFilterIntoWhereClause(filter: Filter) { default: throw new Error('Unknown filter type'); } -} +}; diff --git a/front/src/modules/users/components/Avatar.tsx b/front/src/modules/users/components/Avatar.tsx index e1c01e312..844912475 100644 --- a/front/src/modules/users/components/Avatar.tsx +++ b/front/src/modules/users/components/Avatar.tsx @@ -81,13 +81,13 @@ const StyledAvatar = styled.div` }}; `; -export function Avatar({ +export const Avatar = ({ avatarUrl, size = 'md', placeholder, colorId = placeholder, type = 'squared', -}: AvatarProps) { +}: AvatarProps) => { const noAvatarUrl = !isNonEmptyString(avatarUrl); const [isInvalidAvatarUrl, setIsInvalidAvatarUrl] = useState(false); @@ -116,4 +116,4 @@ export function Avatar({ placeholder[0]?.toLocaleUpperCase()} ); -} +}; diff --git a/front/src/modules/users/components/FilterDropdownUserSearchSelect.tsx b/front/src/modules/users/components/FilterDropdownUserSearchSelect.tsx index 3a1fc9183..720a9bb1f 100644 --- a/front/src/modules/users/components/FilterDropdownUserSearchSelect.tsx +++ b/front/src/modules/users/components/FilterDropdownUserSearchSelect.tsx @@ -9,11 +9,11 @@ import { filterDropdownSearchInputScopedState } from '@/ui/view-bar/states/filte import { filterDropdownSelectedEntityIdScopedState } from '@/ui/view-bar/states/filterDropdownSelectedEntityIdScopedState'; import { useSearchUserQuery } from '~/generated/graphql'; -export function FilterDropdownUserSearchSelect({ +export const FilterDropdownUserSearchSelect = ({ context, }: { context: Context; -}) { +}) => { const filterDropdownSearchInput = useRecoilScopedValue( filterDropdownSearchInputScopedState, context, @@ -48,4 +48,4 @@ export function FilterDropdownUserSearchSelect({ return ( ); -} +}; diff --git a/front/src/modules/users/components/UserChip.tsx b/front/src/modules/users/components/UserChip.tsx index 62108719f..88474a123 100644 --- a/front/src/modules/users/components/UserChip.tsx +++ b/front/src/modules/users/components/UserChip.tsx @@ -6,13 +6,11 @@ export type UserChipProps = { pictureUrl?: string; }; -export function UserChip({ id, name, pictureUrl }: UserChipProps) { - return ( - - ); -} +export const UserChip = ({ id, name, pictureUrl }: UserChipProps) => ( + +); diff --git a/front/src/modules/users/components/UserPicker.tsx b/front/src/modules/users/components/UserPicker.tsx index 07c26830d..8f6d8e87b 100644 --- a/front/src/modules/users/components/UserPicker.tsx +++ b/front/src/modules/users/components/UserPicker.tsx @@ -18,12 +18,12 @@ type UserForSelect = EntityForSelect & { entityType: Entity.User; }; -export function UserPicker({ +export const UserPicker = ({ userId, onSubmit, onCancel, width, -}: UserPickerProps) { +}: UserPickerProps) => { const [relationPickerSearchFilter] = useRecoilScopedState( relationPickerSearchFilterScopedState, ); @@ -47,11 +47,11 @@ export function UserPicker({ selectedIds: userId ? [userId] : [], }); - async function handleEntitySelected( + const handleEntitySelected = async ( selectedUser: UserForSelect | null | undefined, - ) { + ) => { onSubmit(selectedUser ?? null); - } + }; return ( ); -} +}; diff --git a/front/src/modules/users/components/UserProvider.tsx b/front/src/modules/users/components/UserProvider.tsx index 3e8aa31ac..df3fdd6df 100644 --- a/front/src/modules/users/components/UserProvider.tsx +++ b/front/src/modules/users/components/UserProvider.tsx @@ -4,7 +4,7 @@ import { useRecoilState } from 'recoil'; import { currentUserState } from '@/auth/states/currentUserState'; import { useGetCurrentUserQuery } from '~/generated/graphql'; -export function UserProvider({ children }: React.PropsWithChildren) { +export const UserProvider = ({ children }: React.PropsWithChildren) => { const [, setCurrentUser] = useRecoilState(currentUserState); const [isLoading, setIsLoading] = useState(true); @@ -26,4 +26,4 @@ export function UserProvider({ children }: React.PropsWithChildren) { }, [setCurrentUser, data, isLoading, loading]); return isLoading ? <> : <>{children}; -} +}; diff --git a/front/src/modules/users/utils/getProfilePictureAbsoluteURI.ts b/front/src/modules/users/utils/getProfilePictureAbsoluteURI.ts index b221047ab..77350d114 100644 --- a/front/src/modules/users/utils/getProfilePictureAbsoluteURI.ts +++ b/front/src/modules/users/utils/getProfilePictureAbsoluteURI.ts @@ -1,4 +1,4 @@ -export function getImageAbsoluteURIOrBase64(imageUrl?: string | null) { +export const getImageAbsoluteURIOrBase64 = (imageUrl?: string | null) => { if (!imageUrl) { return null; } @@ -16,4 +16,4 @@ export function getImageAbsoluteURIOrBase64(imageUrl?: string | null) { process.env.REACT_APP_SERVER_BASE_URL + '/files'; return `${serverFilesUrl}/${imageUrl}`; -} +}; diff --git a/front/src/modules/views/hooks/useBoardViews.ts b/front/src/modules/views/hooks/useBoardViews.ts index dc86082cf..acee26bb8 100644 --- a/front/src/modules/views/hooks/useBoardViews.ts +++ b/front/src/modules/views/hooks/useBoardViews.ts @@ -30,6 +30,12 @@ export const useBoardViews = ({ const filters = useRecoilScopedValue(filtersScopedState, RecoilScopeContext); const sorts = useRecoilScopedValue(sortsScopedState, RecoilScopeContext); + const handleViewCreate = async (viewId: string) => { + await createViewFields(boardCardFields, viewId); + await createViewFilters(filters, viewId); + await createViewSorts(sorts, viewId); + }; + const { createView, deleteView, isFetchingViews, updateView } = useViews({ objectId, onViewCreate: handleViewCreate, @@ -54,12 +60,6 @@ export const useBoardViews = ({ RecoilScopeContext, }); - async function handleViewCreate(viewId: string) { - await createViewFields(boardCardFields, viewId); - await createViewFilters(filters, viewId); - await createViewSorts(sorts, viewId); - } - const submitCurrentView = async () => { await persistCardFields(); await persistFilters(); diff --git a/front/src/modules/views/hooks/useTableViews.ts b/front/src/modules/views/hooks/useTableViews.ts index bddc3dfdb..35091c9da 100644 --- a/front/src/modules/views/hooks/useTableViews.ts +++ b/front/src/modules/views/hooks/useTableViews.ts @@ -29,32 +29,35 @@ export const useTableViews = ({ ); const sorts = useRecoilScopedValue(sortsScopedState, TableRecoilScopeContext); + const handleViewCreate = async (viewId: string) => { + await createViewFields(tableColumns, viewId); + await createViewFilters(filters, viewId); + await createViewSorts(sorts, viewId); + }; + const { createView, deleteView, isFetchingViews, updateView } = useViews({ objectId, onViewCreate: handleViewCreate, type: ViewType.Table, RecoilScopeContext: TableRecoilScopeContext, }); + const { createViewFields, persistColumns } = useTableViewFields({ objectId, columnDefinitions, skipFetch: isFetchingViews, }); + const { createViewFilters, persistFilters } = useViewFilters({ RecoilScopeContext: TableRecoilScopeContext, skipFetch: isFetchingViews, }); + const { createViewSorts, persistSorts } = useViewSorts({ RecoilScopeContext: TableRecoilScopeContext, skipFetch: isFetchingViews, }); - async function handleViewCreate(viewId: string) { - await createViewFields(tableColumns, viewId); - await createViewFilters(filters, viewId); - await createViewSorts(sorts, viewId); - } - const submitCurrentView = async () => { await persistColumns(); await persistFilters(); diff --git a/front/src/modules/workspace/components/WorkspaceInviteLink.tsx b/front/src/modules/workspace/components/WorkspaceInviteLink.tsx index 56c54b41e..e0096b508 100644 --- a/front/src/modules/workspace/components/WorkspaceInviteLink.tsx +++ b/front/src/modules/workspace/components/WorkspaceInviteLink.tsx @@ -21,7 +21,7 @@ type OwnProps = { inviteLink: string; }; -export function WorkspaceInviteLink({ inviteLink }: OwnProps) { +export const WorkspaceInviteLink = ({ inviteLink }: OwnProps) => { const theme = useTheme(); const { enqueueSnackBar } = useSnackBar(); @@ -47,4 +47,4 @@ export function WorkspaceInviteLink({ inviteLink }: OwnProps) { /> ); -} +}; diff --git a/front/src/modules/workspace/components/WorkspaceMemberCard.tsx b/front/src/modules/workspace/components/WorkspaceMemberCard.tsx index dbf7e1488..672481c23 100644 --- a/front/src/modules/workspace/components/WorkspaceMemberCard.tsx +++ b/front/src/modules/workspace/components/WorkspaceMemberCard.tsx @@ -40,22 +40,23 @@ type OwnProps = { accessory?: React.ReactNode; }; -export function WorkspaceMemberCard({ workspaceMember, accessory }: OwnProps) { - return ( - - - - {workspaceMember.user.displayName} - {workspaceMember.user.email} - +export const WorkspaceMemberCard = ({ + workspaceMember, + accessory, +}: OwnProps) => ( + + + + {workspaceMember.user.displayName} + {workspaceMember.user.email} + - {accessory} - - ); -} + {accessory} + +); diff --git a/front/src/pages/auth/CreateProfile.tsx b/front/src/pages/auth/CreateProfile.tsx index bfce6a0b2..e1ea3bbb1 100644 --- a/front/src/pages/auth/CreateProfile.tsx +++ b/front/src/pages/auth/CreateProfile.tsx @@ -51,7 +51,7 @@ const validationSchema = Yup.object() type Form = Yup.InferType; -export function CreateProfile() { +export const CreateProfile = () => { const navigate = useNavigate(); const { enqueueSnackBar } = useSnackBar(); @@ -190,4 +190,4 @@ export function CreateProfile() { ); -} +}; diff --git a/front/src/pages/auth/CreateWorkspace.tsx b/front/src/pages/auth/CreateWorkspace.tsx index bdec7ed66..2ec40e5a8 100644 --- a/front/src/pages/auth/CreateWorkspace.tsx +++ b/front/src/pages/auth/CreateWorkspace.tsx @@ -39,7 +39,7 @@ const validationSchema = Yup.object() type Form = Yup.InferType; -export function CreateWorkspace() { +export const CreateWorkspace = () => { const navigate = useNavigate(); const { enqueueSnackBar } = useSnackBar(); @@ -146,4 +146,4 @@ export function CreateWorkspace() { ); -} +}; diff --git a/front/src/pages/auth/SignInUp.tsx b/front/src/pages/auth/SignInUp.tsx index 907d9ba7e..8d4ffd3c2 100644 --- a/front/src/pages/auth/SignInUp.tsx +++ b/front/src/pages/auth/SignInUp.tsx @@ -1,5 +1,3 @@ import { SignInUpForm } from '../../modules/auth/sign-in-up/components/SignInUpForm'; -export function SignInUp() { - return ; -} +export const SignInUp = () => ; diff --git a/front/src/pages/auth/VerifyEffect.tsx b/front/src/pages/auth/VerifyEffect.tsx index ebbaa53b4..a8f00eb66 100644 --- a/front/src/pages/auth/VerifyEffect.tsx +++ b/front/src/pages/auth/VerifyEffect.tsx @@ -7,7 +7,7 @@ import { useIsLogged } from '@/auth/hooks/useIsLogged'; import { AppPath } from '../../modules/types/AppPath'; import { isNonEmptyString } from '../../utils/isNonEmptyString'; -export function VerifyEffect() { +export const VerifyEffect = () => { const [searchParams] = useSearchParams(); const loginToken = searchParams.get('loginToken'); @@ -17,7 +17,7 @@ export function VerifyEffect() { const { verify } = useAuth(); useEffect(() => { - async function getTokens() { + const getTokens = async () => { if (!loginToken) { navigate(AppPath.SignIn); } else { @@ -33,7 +33,7 @@ export function VerifyEffect() { navigate(AppPath.CreateWorkspace); } } - } + }; if (!isLogged) { getTokens(); @@ -43,4 +43,4 @@ export function VerifyEffect() { }, []); return <>; -} +}; diff --git a/front/src/pages/companies/Companies.tsx b/front/src/pages/companies/Companies.tsx index 119e1f95e..865e97722 100644 --- a/front/src/pages/companies/Companies.tsx +++ b/front/src/pages/companies/Companies.tsx @@ -26,13 +26,13 @@ const StyledTableContainer = styled.div` width: 100%; `; -export function Companies() { +export const Companies = () => { const [insertCompany] = useInsertOneCompanyMutation(); const upsertEntityTableItem = useUpsertEntityTableItem(); const upsertTableRowIds = useUpsertTableRowId(); const { triggerOptimisticEffects } = useOptimisticEffect(); - async function handleAddButtonClick() { + const handleAddButtonClick = async () => { const newCompanyId: string = v4(); await insertCompany({ variables: { @@ -52,7 +52,7 @@ export function Companies() { }, refetchQueries: [getOperationName(SEARCH_COMPANY_QUERY) ?? ''], }); - } + }; return ( @@ -78,4 +78,4 @@ export function Companies() { ); -} +}; diff --git a/front/src/pages/companies/CompaniesMockMode.tsx b/front/src/pages/companies/CompaniesMockMode.tsx index bb1b635bc..d46bae77e 100644 --- a/front/src/pages/companies/CompaniesMockMode.tsx +++ b/front/src/pages/companies/CompaniesMockMode.tsx @@ -13,7 +13,7 @@ const StyledTableContainer = styled.div` width: 100%; `; -export function CompaniesMockMode() { +export const CompaniesMockMode = () => { return ( @@ -26,4 +26,4 @@ export function CompaniesMockMode() { ); -} +}; diff --git a/front/src/pages/companies/CompanyShow.tsx b/front/src/pages/companies/CompanyShow.tsx index f7edf90e5..06916622e 100644 --- a/front/src/pages/companies/CompanyShow.tsx +++ b/front/src/pages/companies/CompanyShow.tsx @@ -32,7 +32,7 @@ import { ShowPageContainer } from '../../modules/ui/layout/components/ShowPageCo import { companyShowFieldDefinition } from './constants/companyShowFieldDefinition'; -export function CompanyShow() { +export const CompanyShow = () => { const companyId = useParams().companyId ?? ''; const { insertCompanyFavorite, deleteCompanyFavorite } = useFavorites(); const navigate = useNavigate(); @@ -50,10 +50,10 @@ export function CompanyShow() { const isFavorite = company.Favorite && company.Favorite?.length > 0 ? true : false; - async function handleFavoriteButtonClick() { + const handleFavoriteButtonClick = async () => { if (isFavorite) deleteCompanyFavorite(companyId); else insertCompanyFavorite(companyId); - } + }; return ( @@ -127,4 +127,4 @@ export function CompanyShow() { ); -} +}; diff --git a/front/src/pages/impersonate/ImpersonateEffect.tsx b/front/src/pages/impersonate/ImpersonateEffect.tsx index 6b8bb31df..3fdb43da3 100644 --- a/front/src/pages/impersonate/ImpersonateEffect.tsx +++ b/front/src/pages/impersonate/ImpersonateEffect.tsx @@ -10,7 +10,7 @@ import { useImpersonateMutation } from '~/generated/graphql'; import { AppPath } from '../../modules/types/AppPath'; import { isNonEmptyString } from '../../utils/isNonEmptyString'; -export function ImpersonateEffect() { +export const ImpersonateEffect = () => { const navigate = useNavigate(); const { userId } = useParams(); @@ -69,4 +69,4 @@ export function ImpersonateEffect() { }, [userId, currentUser, isLogged, handleImpersonate, navigate]); return <>; -} +}; diff --git a/front/src/pages/not-found/NotFound.tsx b/front/src/pages/not-found/NotFound.tsx index 2895b590e..99d776a41 100644 --- a/front/src/pages/not-found/NotFound.tsx +++ b/front/src/pages/not-found/NotFound.tsx @@ -46,7 +46,7 @@ const StyledInfo = styled.div` font-weight: ${({ theme }) => theme.font.weight.semiBold}; `; -export function NotFound() { +export const NotFound = () => { const navigate = useNavigate(); return ( @@ -67,4 +67,4 @@ export function NotFound() { ); -} +}; diff --git a/front/src/pages/opportunities/Opportunities.tsx b/front/src/pages/opportunities/Opportunities.tsx index 62f9bc0e0..9fbe1be21 100644 --- a/front/src/pages/opportunities/Opportunities.tsx +++ b/front/src/pages/opportunities/Opportunities.tsx @@ -12,17 +12,17 @@ import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope' import { useUpdatePipelineStageMutation } from '~/generated/graphql'; import { opportunitiesBoardOptions } from '~/pages/opportunities/opportunitiesBoardOptions'; -export function Opportunities() { +export const Opportunities = () => { const { handlePipelineStageAdd, handlePipelineStageDelete } = usePipelineStages(); const [updatePipelineStage] = useUpdatePipelineStageMutation(); - function handleEditColumnTitle( + const handleEditColumnTitle = ( boardColumnId: string, newTitle: string, newColor: string, - ) { + ) => { updatePipelineStage({ variables: { id: boardColumnId, @@ -38,7 +38,7 @@ export function Opportunities() { }, }, }); - } + }; return ( @@ -65,4 +65,4 @@ export function Opportunities() { ); -} +}; diff --git a/front/src/pages/people/People.tsx b/front/src/pages/people/People.tsx index 19d010d80..d5e2b6a27 100644 --- a/front/src/pages/people/People.tsx +++ b/front/src/pages/people/People.tsx @@ -24,13 +24,13 @@ const StyledTableContainer = styled.div` width: 100%; `; -export function People() { +export const People = () => { const [insertOnePerson] = useInsertOnePersonMutation(); const upsertEntityTableItem = useUpsertEntityTableItem(); const upsertTableRowIds = useUpsertTableRowId(); const { triggerOptimisticEffects } = useOptimisticEffect(); - async function handleAddButtonClick() { + const handleAddButtonClick = async () => { const newPersonId: string = v4(); await insertOnePerson({ variables: { @@ -48,7 +48,7 @@ export function People() { } }, }); - } + }; return ( @@ -74,4 +74,4 @@ export function People() { ); -} +}; diff --git a/front/src/pages/people/PersonShow.tsx b/front/src/pages/people/PersonShow.tsx index bb62aa75c..037f3785d 100644 --- a/front/src/pages/people/PersonShow.tsx +++ b/front/src/pages/people/PersonShow.tsx @@ -35,7 +35,7 @@ import { ShowPageContainer } from '../../modules/ui/layout/components/ShowPageCo import { personShowFieldDefinition } from './constants/personShowFieldDefinition'; -export function PersonShow() { +export const PersonShow = () => { const personId = useParams().personId ?? ''; const { insertPersonFavorite, deletePersonFavorite } = useFavorites(); const navigate = useNavigate(); @@ -56,7 +56,7 @@ export function PersonShow() { const isFavorite = person.Favorite && person.Favorite?.length > 0 ? true : false; - async function onUploadPicture(file: File) { + const onUploadPicture = async (file: File) => { if (!file || !person?.id) { return; } @@ -67,12 +67,12 @@ export function PersonShow() { }, refetchQueries: [getOperationName(GET_PERSON) ?? ''], }); - } + }; - async function handleFavoriteButtonClick() { + const handleFavoriteButtonClick = async () => { if (isFavorite) deletePersonFavorite(personId); else insertPersonFavorite(personId); - } + }; return ( @@ -160,4 +160,4 @@ export function PersonShow() { ); -} +}; diff --git a/front/src/pages/settings/SettingsExperience.tsx b/front/src/pages/settings/SettingsExperience.tsx index 83f0f8778..be538dfb0 100644 --- a/front/src/pages/settings/SettingsExperience.tsx +++ b/front/src/pages/settings/SettingsExperience.tsx @@ -16,7 +16,7 @@ const StyledContainer = styled.div` width: 350px; `; -export function SettingsExperience() { +export const SettingsExperience = () => { const { colorScheme, setColorScheme } = useColorScheme(); return ( @@ -30,4 +30,4 @@ export function SettingsExperience() { ); -} +}; diff --git a/front/src/pages/settings/SettingsProfile.tsx b/front/src/pages/settings/SettingsProfile.tsx index 56f770a7f..e426092ce 100644 --- a/front/src/pages/settings/SettingsProfile.tsx +++ b/front/src/pages/settings/SettingsProfile.tsx @@ -21,42 +21,40 @@ const StyledContainer = styled.div` width: 350px; `; -export function SettingsProfile() { - return ( - - <> - - -
- - -
-
- - -
-
- - -
-
- } - description="Grant Twenty support temporary access to your account so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time." - /> -
-
- -
-
- -
- ); -} +export const SettingsProfile = () => ( + + <> + + +
+ + +
+
+ + +
+
+ + +
+
+ } + description="Grant Twenty support temporary access to your account so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time." + /> +
+
+ +
+
+ +
+); diff --git a/front/src/pages/settings/SettingsWorkspace.tsx b/front/src/pages/settings/SettingsWorkspace.tsx index 7bce4c985..125d247cb 100644 --- a/front/src/pages/settings/SettingsWorkspace.tsx +++ b/front/src/pages/settings/SettingsWorkspace.tsx @@ -16,26 +16,24 @@ const StyledContainer = styled.div` width: 350px; `; -export function SettingsWorkspace() { - return ( - -
- - -
- - -
-
- - -
+export const SettingsWorkspace = () => ( + +
+ + +
+ + +
+
+ + +
-
- -
-
-
-
- ); -} +
+ +
+
+
+
+); diff --git a/front/src/pages/settings/SettingsWorkspaceMembers.tsx b/front/src/pages/settings/SettingsWorkspaceMembers.tsx index 01cd2bb91..7593ee833 100644 --- a/front/src/pages/settings/SettingsWorkspaceMembers.tsx +++ b/front/src/pages/settings/SettingsWorkspaceMembers.tsx @@ -31,7 +31,7 @@ const StyledButtonContainer = styled.div` margin-left: ${({ theme }) => theme.spacing(3)}; `; -export function SettingsWorkspaceMembers() { +export const SettingsWorkspaceMembers = () => { const [isConfirmationModalOpen, setIsConfirmationModalOpen] = useState(false); const [userToDelete, setUserToDelete] = useState(); @@ -141,4 +141,4 @@ export function SettingsWorkspaceMembers() { /> ); -} +}; diff --git a/front/src/pages/tasks/Tasks.tsx b/front/src/pages/tasks/Tasks.tsx index c6e1c55b5..ca8f80b1f 100644 --- a/front/src/pages/tasks/Tasks.tsx +++ b/front/src/pages/tasks/Tasks.tsx @@ -32,7 +32,7 @@ const StyledTabListContainer = styled.div` margin-left: ${({ theme }) => `-${theme.spacing(2)}`}; `; -export function Tasks() { +export const Tasks = () => { const TASK_TABS = [ { id: 'to-do', @@ -88,4 +88,4 @@ export function Tasks() { ); -} +}; diff --git a/front/src/pages/tasks/TasksEffect.tsx b/front/src/pages/tasks/TasksEffect.tsx index 113c25537..fb23d22c7 100644 --- a/front/src/pages/tasks/TasksEffect.tsx +++ b/front/src/pages/tasks/TasksEffect.tsx @@ -10,7 +10,7 @@ import { FilterOperand } from '@/ui/view-bar/types/FilterOperand'; import { tasksFilters } from './tasks-filters'; -export function TasksEffect() { +export const TasksEffect = () => { const [currentUser] = useRecoilState(currentUserState); const [, setFilters] = useRecoilScopedState( filtersScopedState, @@ -41,4 +41,4 @@ export function TasksEffect() { } }, [currentUser, setFilters]); return <>; -} +}; diff --git a/front/src/testing/ComponentStorybookLayout.tsx b/front/src/testing/ComponentStorybookLayout.tsx index cb6c0d443..984099497 100644 --- a/front/src/testing/ComponentStorybookLayout.tsx +++ b/front/src/testing/ComponentStorybookLayout.tsx @@ -19,6 +19,6 @@ type OwnProps = { children: JSX.Element; }; -export function ComponentStorybookLayout({ children }: OwnProps) { - return {children}; -} +export const ComponentStorybookLayout = ({ children }: OwnProps) => ( + {children} +); diff --git a/front/src/testing/FullHeightStorybookLayout.tsx b/front/src/testing/FullHeightStorybookLayout.tsx index fb8937a86..dacbf93c3 100644 --- a/front/src/testing/FullHeightStorybookLayout.tsx +++ b/front/src/testing/FullHeightStorybookLayout.tsx @@ -11,6 +11,6 @@ type OwnProps = { children: JSX.Element; }; -export function FullHeightStorybookLayout({ children }: OwnProps) { - return {children}; -} +export const FullHeightStorybookLayout = ({ children }: OwnProps) => ( + {children} +); diff --git a/front/src/testing/InitializeHotkeyStorybookHook.tsx b/front/src/testing/InitializeHotkeyStorybookHook.tsx index b0810baac..cdc765d16 100644 --- a/front/src/testing/InitializeHotkeyStorybookHook.tsx +++ b/front/src/testing/InitializeHotkeyStorybookHook.tsx @@ -3,7 +3,7 @@ import { useEffect } from 'react'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { AppHotkeyScope } from '@/ui/utilities/hotkey/types/AppHotkeyScope'; -export function InitializeHotkeyStorybookHookEffect() { +export const InitializeHotkeyStorybookHookEffect = () => { const setHotkeyScope = useSetHotkeyScope(); useEffect(() => { @@ -11,4 +11,4 @@ export function InitializeHotkeyStorybookHookEffect() { }, [setHotkeyScope]); return <>; -} +}; diff --git a/front/src/testing/decorators/PageDecorator.tsx b/front/src/testing/decorators/PageDecorator.tsx index faada17af..b7a8815ae 100644 --- a/front/src/testing/decorators/PageDecorator.tsx +++ b/front/src/testing/decorators/PageDecorator.tsx @@ -14,11 +14,8 @@ type RouteParams = { [param: string]: string; }; -function computeLocation(routePath: string, routeParams: RouteParams) { - return routePath.replace(/:(\w+)/g, (paramName) => { - return routeParams[paramName] ?? ''; - }); -} +const computeLocation = (routePath: string, routeParams: RouteParams) => + routePath.replace(/:(\w+)/g, (paramName) => routeParams[paramName] ?? ''); export const PageDecorator: Decorator<{ routePath: string; diff --git a/front/src/testing/mock-data/index.ts b/front/src/testing/mock-data/index.ts index 001c49277..1b2b5eb95 100644 --- a/front/src/testing/mock-data/index.ts +++ b/front/src/testing/mock-data/index.ts @@ -9,11 +9,11 @@ import { import { isDefined } from '../../utils/isDefined'; -function filterData( +const filterData = ( data: Array, where: Record, -): Array { - return data.filter((item) => { +): Array => + data.filter((item) => { // { firstName: {contains: '%string%' }} // { lastName: {equals: 'string' }} // { is: { company: { equals: 'string' }}} @@ -85,9 +85,8 @@ function filterData( return isMatch; }); -} -export function filterAndSortData( +export const filterAndSortData = ( data: Array, where?: Record, orderBy?: Array< @@ -96,7 +95,7 @@ export function filterAndSortData( UserOrderByWithRelationInput >, limit?: number, -): Array { +): Array => { let filteredData = data; if (where) { @@ -131,12 +130,12 @@ export function filterAndSortData( } return filteredData; -} +}; -export function fetchOneFromData( +export const fetchOneFromData = ( data: Array, id: string, -): DataT | undefined { +): DataT | undefined => { if (!isDefined(id)) { throw new Error( `id is not defined in updateOneFromData, check that you provided where.id if needed.`, @@ -144,13 +143,13 @@ export function fetchOneFromData( } return data.filter((item) => item.id === id)[0]; -} +}; -export function updateOneFromData( +export const updateOneFromData = ( data: Array, id: string | undefined, payload: GraphQLVariables, -): DataT | undefined { +): DataT | undefined => { if (!isDefined(id)) { throw new Error( `id is not defined in updateOneFromData, check that you provided where.id if needed.`, @@ -162,4 +161,4 @@ export function updateOneFromData( const newObject = Object.assign(object, payload); return newObject; -} +}; diff --git a/front/src/testing/sleep.ts b/front/src/testing/sleep.ts index ab5262d54..3604b7d44 100644 --- a/front/src/testing/sleep.ts +++ b/front/src/testing/sleep.ts @@ -1,5 +1,4 @@ -export async function sleep(ms: number) { - return new Promise((resolve) => { +export const sleep = async (ms: number) => + new Promise((resolve) => { setTimeout(resolve, ms); }); -} diff --git a/front/src/utils/assert.ts b/front/src/utils/assert.ts index 793ce6c97..5e6c5feca 100644 --- a/front/src/utils/assert.ts +++ b/front/src/utils/assert.ts @@ -1,3 +1,2 @@ -export function assertNotNull(item: T): item is NonNullable { - return item !== null && item !== undefined; -} +export const assertNotNull = (item: T): item is NonNullable => + item !== null && item !== undefined; diff --git a/front/src/utils/cast-as-integer-or-null.ts b/front/src/utils/cast-as-integer-or-null.ts index 0f95db43b..aa181ef70 100644 --- a/front/src/utils/cast-as-integer-or-null.ts +++ b/front/src/utils/cast-as-integer-or-null.ts @@ -1,8 +1,8 @@ const DEBUG_MODE = false; -export function canBeCastAsIntegerOrNull( +export const canBeCastAsIntegerOrNull = ( probableNumberOrNull: string | undefined | number | null, -): probableNumberOrNull is number | null { +): probableNumberOrNull is number | null => { if (probableNumberOrNull === undefined) { if (DEBUG_MODE) console.log('probableNumberOrNull === undefined'); @@ -43,11 +43,11 @@ export function canBeCastAsIntegerOrNull( } return false; -} +}; -export function castAsIntegerOrNull( +export const castAsIntegerOrNull = ( probableNumberOrNull: string | undefined | number | null, -): number | null { +): number | null => { if (canBeCastAsIntegerOrNull(probableNumberOrNull) === false) { throw new Error('Cannot cast to number or null'); } @@ -69,4 +69,4 @@ export function castAsIntegerOrNull( } return null; -} +}; diff --git a/front/src/utils/cast-as-positive-integer-or-null.ts b/front/src/utils/cast-as-positive-integer-or-null.ts index 1751fd4a3..1a95db9a5 100644 --- a/front/src/utils/cast-as-positive-integer-or-null.ts +++ b/front/src/utils/cast-as-positive-integer-or-null.ts @@ -1,6 +1,6 @@ -export function canBeCastAsPositiveIntegerOrNull( +export const canBeCastAsPositiveIntegerOrNull = ( probablePositiveNumberOrNull: string | undefined | number | null, -): probablePositiveNumberOrNull is number | null { +): probablePositiveNumberOrNull is number | null => { if (probablePositiveNumberOrNull === undefined) { return false; } @@ -33,11 +33,11 @@ export function canBeCastAsPositiveIntegerOrNull( } return false; -} +}; -export function castAsPositiveIntegerOrNull( +export const castAsPositiveIntegerOrNull = ( probablePositiveNumberOrNull: string | undefined | number | null, -): number | null { +): number | null => { if ( canBeCastAsPositiveIntegerOrNull(probablePositiveNumberOrNull) === false ) { @@ -61,4 +61,4 @@ export function castAsPositiveIntegerOrNull( } return null; -} +}; diff --git a/front/src/utils/date-utils.ts b/front/src/utils/date-utils.ts index 4b1cdd38b..9cb5d617f 100644 --- a/front/src/utils/date-utils.ts +++ b/front/src/utils/date-utils.ts @@ -5,7 +5,7 @@ import { logError } from './logError'; export const DEFAULT_DATE_LOCALE = 'en-EN'; -export function parseDate(dateToParse: Date | string | number) { +export const parseDate = (dateToParse: Date | string | number) => { let formattedDate: DateTime | null = null; if (!dateToParse) { @@ -27,13 +27,12 @@ export function parseDate(dateToParse: Date | string | number) { } return formattedDate.setLocale(DEFAULT_DATE_LOCALE); -} +}; -function isSameDay(a: DateTime, b: DateTime): boolean { - return a.hasSame(b, 'day') && a.hasSame(b, 'month') && a.hasSame(b, 'year'); -} +const isSameDay = (a: DateTime, b: DateTime): boolean => + a.hasSame(b, 'day') && a.hasSame(b, 'month') && a.hasSame(b, 'year'); -function formatDate(dateToFormat: Date | string | number, format: string) { +const formatDate = (dateToFormat: Date | string | number, format: string) => { try { const parsedDate = parseDate(dateToFormat); return parsedDate.toFormat(format); @@ -41,23 +40,25 @@ function formatDate(dateToFormat: Date | string | number, format: string) { logError(error); return ''; } -} +}; -export function beautifyExactDateTime(dateToBeautify: Date | string | number) { +export const beautifyExactDateTime = ( + dateToBeautify: Date | string | number, +) => { const isToday = isSameDay(parseDate(dateToBeautify), DateTime.local()); const dateFormat = isToday ? 'T' : 'DD · T'; return formatDate(dateToBeautify, dateFormat); -} +}; -export function beautifyExactDate(dateToBeautify: Date | string | number) { +export const beautifyExactDate = (dateToBeautify: Date | string | number) => { const isToday = isSameDay(parseDate(dateToBeautify), DateTime.local()); const dateFormat = isToday ? "'Today'" : 'DD'; return formatDate(dateToBeautify, dateFormat); -} +}; -export function beautifyPastDateRelativeToNow( +export const beautifyPastDateRelativeToNow = ( pastDate: Date | string | number, -) { +) => { try { const parsedDate = parseDate(pastDate); @@ -68,9 +69,9 @@ export function beautifyPastDateRelativeToNow( logError(error); return ''; } -} +}; -export function beautifyPastDateAbsolute(pastDate: Date | string | number) { +export const beautifyPastDateAbsolute = (pastDate: Date | string | number) => { try { const parsedPastDate = parseDate(pastDate); @@ -89,9 +90,9 @@ export function beautifyPastDateAbsolute(pastDate: Date | string | number) { logError(error); return ''; } -} +}; -export function hasDatePassed(date: Date | string | number) { +export const hasDatePassed = (date: Date | string | number) => { try { const parsedDate = parseDate(date); @@ -105,4 +106,4 @@ export function hasDatePassed(date: Date | string | number) { logError(error); return false; } -} +}; diff --git a/front/src/utils/format/number.ts b/front/src/utils/format/number.ts index 1029bc047..00cff9170 100644 --- a/front/src/utils/format/number.ts +++ b/front/src/utils/format/number.ts @@ -1,3 +1 @@ -export function formatNumber(value: number): string { - return value.toLocaleString(); -} +export const formatNumber = (value: number): string => value.toLocaleString(); diff --git a/front/src/utils/index.ts b/front/src/utils/index.ts index ed5a6745c..2bb4bbd20 100644 --- a/front/src/utils/index.ts +++ b/front/src/utils/index.ts @@ -1,6 +1,6 @@ import { parseDate } from './date-utils'; -export function formatToHumanReadableDate(date: Date | string) { +export const formatToHumanReadableDate = (date: Date | string) => { const parsedJSDate = parseDate(date).toJSDate(); return new Intl.DateTimeFormat(undefined, { @@ -8,17 +8,17 @@ export function formatToHumanReadableDate(date: Date | string) { day: 'numeric', year: 'numeric', }).format(parsedJSDate); -} +}; -export function sanitizeURL(link: string | null | undefined) { +export const sanitizeURL = (link: string | null | undefined) => { return link ? link.replace(/(https?:\/\/)|(www\.)/g, '').replace(/\/$/, '') : ''; -} +}; -export function getLogoUrlFromDomainName( +export const getLogoUrlFromDomainName = ( domainName?: string, -): string | undefined { +): string | undefined => { const sanitizedDomain = sanitizeURL(domainName); return `https://favicon.twenty.com/${sanitizedDomain}`; -} +}; diff --git a/front/src/utils/is-domain.ts b/front/src/utils/is-domain.ts index 000aea90a..7db972074 100644 --- a/front/src/utils/is-domain.ts +++ b/front/src/utils/is-domain.ts @@ -1,10 +1,7 @@ import { isDefined } from './isDefined'; -export function isDomain(url: string | undefined | null) { - return ( - isDefined(url) && - /^((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9-]{1,61}|[a-z0-9-]{1,30}\.[a-z]{2,})$/.test( - url, - ) +export const isDomain = (url: string | undefined | null) => + isDefined(url) && + /^((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9-]{1,61}|[a-z0-9-]{1,30}\.[a-z]{2,})$/.test( + url, ); -} diff --git a/front/src/utils/is-url.ts b/front/src/utils/is-url.ts index 482c3b30b..bb6e8f7ee 100644 --- a/front/src/utils/is-url.ts +++ b/front/src/utils/is-url.ts @@ -1,10 +1,7 @@ import { isDefined } from './isDefined'; -export function isURL(url: string | undefined | null) { - return ( - isDefined(url) && - url.match( - /^(https?:\/\/)?(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/i, - ) +export const isURL = (url: string | undefined | null) => + isDefined(url) && + url.match( + /^(https?:\/\/)?(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/i, ); -} diff --git a/front/src/utils/isDeeplyEqual.ts b/front/src/utils/isDeeplyEqual.ts index 1cdb73568..1a887595a 100644 --- a/front/src/utils/isDeeplyEqual.ts +++ b/front/src/utils/isDeeplyEqual.ts @@ -1,5 +1,3 @@ import deepEqual from 'deep-equal'; -export function isDeeplyEqual(a: T, b: T) { - return deepEqual(a, b); -} +export const isDeeplyEqual = (a: T, b: T) => deepEqual(a, b); diff --git a/front/src/utils/isDefined.ts b/front/src/utils/isDefined.ts index 14d6174a5..aad8908b6 100644 --- a/front/src/utils/isDefined.ts +++ b/front/src/utils/isDefined.ts @@ -1,5 +1,3 @@ -export function isDefined( +export const isDefined = ( value: T | undefined | null, -): value is NonNullable { - return value !== undefined && value !== null; -} +): value is NonNullable => value !== undefined && value !== null; diff --git a/front/src/utils/isNonEmptyArray.ts b/front/src/utils/isNonEmptyArray.ts index b378eec44..d3643e39b 100644 --- a/front/src/utils/isNonEmptyArray.ts +++ b/front/src/utils/isNonEmptyArray.ts @@ -1,6 +1,6 @@ -export function isNonEmptyArray( +export const isNonEmptyArray = ( probableArray: T[] | undefined | null, -): probableArray is NonNullable { +): probableArray is NonNullable => { if ( Array.isArray(probableArray) && probableArray.length && @@ -10,4 +10,4 @@ export function isNonEmptyArray( } return false; -} +}; diff --git a/front/src/utils/isNonEmptyString.ts b/front/src/utils/isNonEmptyString.ts index 3cb3fed3d..b5b42f151 100644 --- a/front/src/utils/isNonEmptyString.ts +++ b/front/src/utils/isNonEmptyString.ts @@ -1,8 +1,8 @@ import { isDefined } from './isDefined'; -export function isNonEmptyString( +export const isNonEmptyString = ( probableNonEmptyString: string | undefined | null, -): probableNonEmptyString is string { +): probableNonEmptyString is string => { if ( isDefined(probableNonEmptyString) && typeof probableNonEmptyString === 'string' && @@ -12,4 +12,4 @@ export function isNonEmptyString( } return false; -} +}; diff --git a/front/src/utils/logError.ts b/front/src/utils/logError.ts index b00e98bb2..a3e270564 100644 --- a/front/src/utils/logError.ts +++ b/front/src/utils/logError.ts @@ -1,3 +1,3 @@ -export function logError(message: any) { +export const logError = (message: any) => { console.error(message); -} +}; diff --git a/front/src/utils/measureTotalFrameLoad.ts b/front/src/utils/measureTotalFrameLoad.ts index f999ae136..8f7f8987d 100644 --- a/front/src/utils/measureTotalFrameLoad.ts +++ b/front/src/utils/measureTotalFrameLoad.ts @@ -1,6 +1,6 @@ import afterFrame from 'afterframe'; -export function measureTotalFrameLoad(id: string) { +export const measureTotalFrameLoad = (id: string) => { const timerId = `Total loading time for : ${id}`; console.time(timerId); @@ -8,4 +8,4 @@ export function measureTotalFrameLoad(id: string) { afterFrame(() => { console.timeEnd(timerId); }); -} +}; diff --git a/front/src/utils/string-to-hsl.ts b/front/src/utils/string-to-hsl.ts index 87ab93281..f03aeb002 100644 --- a/front/src/utils/string-to-hsl.ts +++ b/front/src/utils/string-to-hsl.ts @@ -1,8 +1,8 @@ -export function stringToHslColor( +export const stringToHslColor = ( str: string, saturation: number, lightness: number, -) { +) => { let hash = 0; for (let i = 0; i < str.length; i++) { hash = str.charCodeAt(i) + ((hash << 5) - hash); @@ -10,4 +10,4 @@ export function stringToHslColor( const h = hash % 360; return 'hsl(' + h + ', ' + saturation + '%, ' + lightness + '%)'; -} +}; diff --git a/front/src/utils/title-utils.ts b/front/src/utils/title-utils.ts index 1889a2623..b7e779cd1 100644 --- a/front/src/utils/title-utils.ts +++ b/front/src/utils/title-utils.ts @@ -2,7 +2,7 @@ import { AppBasePath } from '@/types/AppBasePath'; import { AppPath } from '@/types/AppPath'; import { SettingsPath } from '@/types/SettingsPath'; -export function getPageTitleFromPath(pathname: string): string { +export const getPageTitleFromPath = (pathname: string): string => { switch (pathname) { case AppPath.Verify: return 'Verify'; @@ -35,4 +35,4 @@ export function getPageTitleFromPath(pathname: string): string { default: return 'Twenty'; } -} +}; diff --git a/front/yarn.lock b/front/yarn.lock index 783115f01..5f58c1b99 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -9764,6 +9764,11 @@ eslint-plugin-n@^15.5.1: resolve "^1.22.1" semver "^7.3.8" +eslint-plugin-prefer-arrow@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" + integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== + eslint-plugin-prettier@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" diff --git a/packages/eslint-plugin-twenty-ts/src/rules/effect-components.ts b/packages/eslint-plugin-twenty-ts/src/rules/effect-components.ts index 84828e7a4..059029bf5 100644 --- a/packages/eslint-plugin-twenty-ts/src/rules/effect-components.ts +++ b/packages/eslint-plugin-twenty-ts/src/rules/effect-components.ts @@ -2,11 +2,11 @@ import { TSESTree, ESLintUtils } from "@typescript-eslint/utils"; const createRule = ESLintUtils.RuleCreator((name) => `https://docs.twenty.com`); -function checkIsPascalCase(input: string): boolean { +const checkIsPascalCase = (input: string): boolean => { const pascalCaseRegex = /^(?:\p{Uppercase_Letter}\p{Letter}*)+$/u; return pascalCaseRegex.test(input); -} +}; const effectComponentsRule = createRule({ create(context) { diff --git a/packages/eslint-plugin-twenty-ts/src/tests/all.spec.ts b/packages/eslint-plugin-twenty-ts/src/tests/all.spec.ts index fc7df2dee..2231edc3a 100644 --- a/packages/eslint-plugin-twenty-ts/src/tests/all.spec.ts +++ b/packages/eslint-plugin-twenty-ts/src/tests/all.spec.ts @@ -16,44 +16,32 @@ const ruleTester = new RuleTester({ ruleTester.run("effect-components", effectComponentsRule, { valid: [ { - code: `function TestComponentEffect() { - return <>; - }`, + code: `const TestComponentEffect = () => <>;`, }, { - code: `function TestComponent() { - return
; - }`, + code: `const TestComponent = () =>
;`, }, { - code: `export function useUpdateEffect() { - return null; - }`, + code: `export const useUpdateEffect = () => null;`, }, { - code: `export function useUpdateEffect() { - return <>; - }`, + code: `export const useUpdateEffect = () => <>;`, }, { - code: `function TestComponent() { - return <>
; - }`, + code: `const TestComponent = () => <>
;`, }, { - code: `function TestComponentEffect() { - return null; - }`, + code: `const TestComponentEffect = () => null;`, }, { - code: `function TestComponentEffect() { + code: `const TestComponentEffect = () => { useEffect(() => {}, []); return null; }`, }, { - code: `function TestComponentEffect() { + code: `const TestComponentEffect = () => { useEffect(() => {}, []); return <>; @@ -76,8 +64,8 @@ ruleTester.run("effect-components", effectComponentsRule, { ], invalid: [ { - code: "function TestComponent() { return <>; }", - output: 'function TestComponentEffect() { return <>; }', + code: "const TestComponent = () => <>;", + output: 'const TestComponentEffect = () => <>;', errors: [ { messageId: "effectSuffix", @@ -85,8 +73,8 @@ ruleTester.run("effect-components", effectComponentsRule, { ], }, { - code: "function TestComponentEffect() { return <>
; }", - output: 'function TestComponent() { return <>
; }', + code: "const TestComponentEffect = () => <>
;", + output: 'const TestComponent = () => <>
;', errors: [ { messageId: "noEffectSuffix", diff --git a/packages/eslint-plugin-twenty/rules/matching-state-variable.js b/packages/eslint-plugin-twenty/rules/matching-state-variable.js index 5e2a53762..0f28aaa39 100644 --- a/packages/eslint-plugin-twenty/rules/matching-state-variable.js +++ b/packages/eslint-plugin-twenty/rules/matching-state-variable.js @@ -12,89 +12,87 @@ module.exports = { fixable: "code", schema: [], }, - create: function (context) { - return { - VariableDeclarator(node) { - if ( - node?.init?.callee?.name && - typeof node.init.callee.name === "string" && - [ - 'useRecoilState', - 'useRecoilFamilyState', - 'useRecoilSelector', - 'useRecoilScopedState', - 'useRecoilScopedFamilyState', - 'useRecoilScopedSelector', - 'useRecoilValue', - ].includes(node.init.callee.name) - ) { - const stateNameBase = node.init.arguments?.[0].name; + create: (context) => ({ + VariableDeclarator(node) { + if ( + node?.init?.callee?.name && + typeof node.init.callee.name === "string" && + [ + "useRecoilState", + "useRecoilFamilyState", + "useRecoilSelector", + "useRecoilScopedState", + "useRecoilScopedFamilyState", + "useRecoilScopedSelector", + "useRecoilValue", + ].includes(node.init.callee.name) + ) { + const stateNameBase = node.init.arguments?.[0].name; - if (!stateNameBase) { + if (!stateNameBase) { + return; + } + + let expectedVariableNameBase = stateNameBase.replace( + /(State|FamilyState|Selector|ScopedState|ScopedFamilyState|ScopedSelector)$/, + "" + ); + + if (node.id.type === "Identifier") { + const actualVariableName = node.id.name; + if (actualVariableName !== expectedVariableNameBase) { + context.report({ + node, + message: `Invalid usage of ${node.init.callee.name}: the value should be named '${expectedVariableNameBase}' but found '${actualVariableName}'.`, + fix(fixer) { + return fixer.replaceText(node.id, expectedVariableNameBase); + }, + }); + } + return; + } + + if (node.id.type === "ArrayPattern") { + const actualVariableName = node.id.elements?.[0]?.name; + + if ( + actualVariableName && + actualVariableName !== expectedVariableNameBase + ) { + context.report({ + node, + message: `Invalid usage of ${node.init.callee.name}: the value should be named '${expectedVariableNameBase}' but found '${actualVariableName}'.`, + fix(fixer) { + return fixer.replaceText( + node.id.elements[0], + expectedVariableNameBase + ); + }, + }); return; } - let expectedVariableNameBase = stateNameBase.replace( - /(State|FamilyState|Selector|ScopedState|ScopedFamilyState|ScopedSelector)$/, - "" - ); + if (node.id.elements?.[1]?.name) { + const actualSetterName = node.id.elements[1].name; + const expectedSetterName = `set${expectedVariableNameBase + .charAt(0) + .toUpperCase()}${expectedVariableNameBase.slice(1)}`; - if (node.id.type === "Identifier") { - const actualVariableName = node.id.name; - if (actualVariableName !== expectedVariableNameBase) { + if (actualSetterName !== expectedSetterName) { context.report({ node, - message: `Invalid usage of ${node.init.callee.name}: the value should be named '${expectedVariableNameBase}' but found '${actualVariableName}'.`, - fix(fixer) { - return fixer.replaceText(node.id, expectedVariableNameBase); - }, - }); - } - return; - } - - if (node.id.type === "ArrayPattern") { - const actualVariableName = node.id.elements?.[0]?.name; - - if ( - actualVariableName && - actualVariableName !== expectedVariableNameBase - ) { - context.report({ - node, - message: `Invalid usage of ${node.init.callee.name}: the value should be named '${expectedVariableNameBase}' but found '${actualVariableName}'.`, + message: `Invalid usage of ${node.init.callee.name}: Expected setter '${expectedSetterName}' but found '${actualSetterName}'.`, fix(fixer) { return fixer.replaceText( - node.id.elements[0], - expectedVariableNameBase + node.id.elements[1], + expectedSetterName ); }, }); - return; - } - - if (node.id.elements?.[1]?.name) { - const actualSetterName = node.id.elements[1].name; - const expectedSetterName = `set${expectedVariableNameBase - .charAt(0) - .toUpperCase()}${expectedVariableNameBase.slice(1)}`; - - if (actualSetterName !== expectedSetterName) { - context.report({ - node, - message: `Invalid usage of ${node.init.callee.name}: Expected setter '${expectedSetterName}' but found '${actualSetterName}'.`, - fix(fixer) { - return fixer.replaceText( - node.id.elements[1], - expectedSetterName - ); - }, - }); - } } } } - }, - }; - }, + } + }, + }), }; diff --git a/packages/eslint-plugin-twenty/rules/no-hardcoded-colors.js b/packages/eslint-plugin-twenty/rules/no-hardcoded-colors.js index 470e6af4f..c4b169b4d 100644 --- a/packages/eslint-plugin-twenty/rules/no-hardcoded-colors.js +++ b/packages/eslint-plugin-twenty/rules/no-hardcoded-colors.js @@ -1,24 +1,22 @@ module.exports = { - create: function (context) { - return { - TaggedTemplateExpression(node) { - if (context.getFilename().endsWith('themes.ts')) { - return; + create: (context) => ({ + TaggedTemplateExpression(node) { + if (context.getFilename().endsWith("themes.ts")) { + return; + } + + node.quasi.quasis.forEach((quasi) => { + const colorRegex = + /(?:rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(,\s*\d+\.?\d*)?\))|(?:#[0-9a-fA-F]{6})/i; + + if (colorRegex.test(quasi.value.raw)) { + context.report({ + node, + message: + "Do not use hardcoded RGBA or Hex colors. Please use a color from the theme file.", + }); } - - node.quasi.quasis.forEach((quasi) => { - const colorRegex = - /(?:rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(,\s*\d+\.?\d*)?\))|(?:#[0-9a-fA-F]{6})/i; - - if (colorRegex.test(quasi.value.raw)) { - context.report({ - node, - message: - 'Do not use hardcoded RGBA or Hex colors. Please use a color from the theme file.', - }); - } - }); - }, - }; - }, + }); + }, + }), }; diff --git a/packages/eslint-plugin-twenty/rules/sort-css-properties-alphabetically.js b/packages/eslint-plugin-twenty/rules/sort-css-properties-alphabetically.js index 3b4c7bae1..3c062cb20 100644 --- a/packages/eslint-plugin-twenty/rules/sort-css-properties-alphabetically.js +++ b/packages/eslint-plugin-twenty/rules/sort-css-properties-alphabetically.js @@ -1,26 +1,22 @@ "use strict"; const postcss = require("postcss"); -function isStyledTagname(node) { - return ( - (node.tag.type === "Identifier" && node.tag.name === "css") || - (node.tag.type === "MemberExpression" && - node.tag.object.name === "styled") || - (node.tag.type === "CallExpression" && - (node.tag.callee.name === "styled" || - (node.tag.callee.object && - ((node.tag.callee.object.callee && - node.tag.callee.object.callee.name === "styled") || - (node.tag.callee.object.object && - node.tag.callee.object.object.name === "styled"))))) - ); -} +const isStyledTagname = (node) => + (node.tag.type === "Identifier" && node.tag.name === "css") || + (node.tag.type === "MemberExpression" && node.tag.object.name === "styled") || + (node.tag.type === "CallExpression" && + (node.tag.callee.name === "styled" || + (node.tag.callee.object && + ((node.tag.callee.object.callee && + node.tag.callee.object.callee.name === "styled") || + (node.tag.callee.object.object && + node.tag.callee.object.object.name === "styled"))))); /** * An atomic rule is a rule without nested rules. */ -function isValidAtomicRule(rule) { - const decls = rule.nodes.filter(node => node.type === "decl"); +const isValidAtomicRule = (rule) => { + const decls = rule.nodes.filter((node) => node.type === "decl"); if (decls.length < 0) { return { isValid: true }; } @@ -32,12 +28,12 @@ function isValidAtomicRule(rule) { const loc = { start: { line: decls[i - 1].source.start.line, - column: decls[i - 1].source.start.column - 1 + column: decls[i - 1].source.start.column - 1, }, end: { line: decls[i].source.end.line, - column: decls[i].source.end.column - 1 - } + column: decls[i].source.end.column - 1, + }, }; return { isValid: false, loc }; @@ -45,9 +41,9 @@ function isValidAtomicRule(rule) { } return { isValid: true }; -} +}; -function isValidRule(rule) { +const isValidRule = (rule) => { // check each rule recursively const { isValid, loc } = rule.nodes.reduce( (map, node) => { @@ -63,9 +59,9 @@ function isValidRule(rule) { // check declarations return isValidAtomicRule(rule); -} +}; -function getNodeStyles(node) { +const getNodeStyles = (node) => { const [firstQuasi, ...quasis] = node.quasi.quasis; // remove line break added to the first quasi const lineBreakCount = node.quasi.loc.start.line - 1; @@ -87,49 +83,47 @@ function getNodeStyles(node) { }); return styles; -} +}; -function create(context) { - return { - TaggedTemplateExpression(node) { - if (isStyledTagname(node)) { - try { - const root = postcss.parse(getNodeStyles(node)); +const create = (context) => ({ + TaggedTemplateExpression(node) { + if (isStyledTagname(node)) { + try { + const root = postcss.parse(getNodeStyles(node)); - const { isValid, loc } = isValidRule(root); + const { isValid, loc } = isValidRule(root); - if (!isValid) { - return context.report({ - node, - messageId: "sort-css-properties-alphabetically", - loc, - fix: fixer => - fix({ - rule: root, - fixer, - src: context.getSourceCode() - }) - }); - } - } catch (e) { - return true; + if (!isValid) { + return context.report({ + node, + messageId: "sort-css-properties-alphabetically", + loc, + fix: (fixer) => + fix({ + rule: root, + fixer, + src: context.getSourceCode(), + }), + }); } + } catch (e) { + return true; } } - }; -} + }, +}); -function fix({ rule, fixer, src }) { +const fix = ({ rule, fixer, src }) => { let fixings = []; // concat fixings recursively - rule.nodes.forEach(node => { + rule.nodes.forEach((node) => { if (node.type === "rule") { fixings = [...fixings, ...fix({ rule: node, fixer, src })]; } }); - const declarations = rule.nodes.filter(node => node.type === "decl"); + const declarations = rule.nodes.filter((node) => node.type === "decl"); const sortedDeclarations = sortDeclarations(declarations); declarations.forEach((decl, idx) => { @@ -138,7 +132,7 @@ function fix({ rule, fixer, src }) { const range = getDeclRange({ decl, src }); const sortedDeclText = getDeclText({ decl: sortedDeclarations[idx], - src + src, }); fixings.push(fixer.removeRange([range.startIdx, range.endIdx + 1])); @@ -154,55 +148,51 @@ function fix({ rule, fixer, src }) { } }); return fixings; -} +}; -function areSameDeclarations(a, b) { - return ( - a.source.start.line === b.source.start.line && - a.source.start.column === b.source.start.column - ); -} +const areSameDeclarations = (a, b) => + a.source.start.line === b.source.start.line && + a.source.start.column === b.source.start.column; -function getDeclRange({ decl, src }) { +const getDeclRange = ({ decl, src }) => { const loc = { start: { line: decl.source.start.line, - column: decl.source.start.column - 1 + column: decl.source.start.column - 1, }, end: { line: decl.source.end.line, - column: decl.source.end.column - 1 - } + column: decl.source.end.column - 1, + }, }; const startIdx = src.getIndexFromLoc(loc.start); const endIdx = src.getIndexFromLoc(loc.end); return { startIdx, endIdx }; -} +}; -function getDeclText({ decl, src }) { +const getDeclText = ({ decl, src }) => { const { startIdx, endIdx } = getDeclRange({ decl, src }); return src.getText().substring(startIdx, endIdx + 1); -} +}; -function sortDeclarations(declarations) { - return declarations +const sortDeclarations = (declarations) => + declarations .slice() .sort((declA, declB) => (declA.prop > declB.prop ? 1 : -1)); -} module.exports = { meta: { docs: { description: "Styles are sorted alphabetically.", category: "Fill me in", - recommended: false + recommended: false, }, messages: { "sort-css-properties-alphabetically": - "Declarations should be sorted alphabetically." + "Declarations should be sorted alphabetically.", }, - fixable: "code" + fixable: "code", }, - create -}; \ No newline at end of file + create, +}; diff --git a/packages/twenty-cli/src/config.ts b/packages/twenty-cli/src/config.ts index 9b45856ef..9ba24d065 100644 --- a/packages/twenty-cli/src/config.ts +++ b/packages/twenty-cli/src/config.ts @@ -1,7 +1,7 @@ import { exec } from 'child_process'; -export function execShell(cmd: string): Promise { - return new Promise((resolve, reject) => { +export const execShell = (cmd: string): Promise => + new Promise((resolve, reject) => { exec(cmd, (error, stdout, stderr) => { if (error) { console.warn(`Error: ${error.message}`); @@ -11,7 +11,6 @@ export function execShell(cmd: string): Promise { resolve(stdout ? stdout : stderr); }); }); -} export const REPO_URL = 'https://github.com/twentyhq/twenty.git'; export const CLONE_DIR = 'twenty'; diff --git a/packages/twenty-cli/src/install/index.ts b/packages/twenty-cli/src/install/index.ts index 67fba835e..4f80b2d66 100644 --- a/packages/twenty-cli/src/install/index.ts +++ b/packages/twenty-cli/src/install/index.ts @@ -2,7 +2,7 @@ import gradient from 'gradient-string'; import chalk from 'chalk'; import { PromptObject } from 'prompts'; -export function showWelcomeScreen() { +export const showWelcomeScreen = () => { const logo = ` &&&&&&&&&&&&& &&&&&&&&&&&&& @@ -31,7 +31,7 @@ export function showWelcomeScreen() { ); console.log(chalk.bold(`Let's get you started!\n\n`)); /* eslint-enable no-console */ -} +}; export const firstQuestion: PromptObject = { type: 'select', diff --git a/server/scripts/generate-model-select-map.js b/server/scripts/generate-model-select-map.js index 48135d2f0..41f245e10 100644 --- a/server/scripts/generate-model-select-map.js +++ b/server/scripts/generate-model-select-map.js @@ -3,7 +3,7 @@ const fs = require('fs'); const path = require('path'); const { getDMMF, getSchemaPath } = require('@prisma/internals'); -async function generateTypes() { +const generateTypes = async () => { const schemaPath = await getSchemaPath(); const dmmf = await getDMMF({ datamodel: fs.readFileSync(schemaPath, 'utf-8'), @@ -24,7 +24,7 @@ async function generateTypes() { path.join(__dirname, '../src/utils/prisma-select/model-select-map.ts'), content, ); -} +}; generateTypes().catch((e) => { console.error(e); diff --git a/server/src/ability/ability.util.ts b/server/src/ability/ability.util.ts index ebf45c7a2..abda5a306 100644 --- a/server/src/ability/ability.util.ts +++ b/server/src/ability/ability.util.ts @@ -117,12 +117,12 @@ const operationAbilityCheckers: Record = }; // Check relation nested abilities -export async function relationAbilityChecker( +export const relationAbilityChecker = async ( modelName: Prisma.ModelName, ability: AppAbility, prisma: PrismaClient, args: any, -) { +) => { // Extract models from Prisma const models = Prisma.dmmf.datamodel.models; // Find main model from options @@ -211,7 +211,7 @@ export async function relationAbilityChecker( } return true; -} +}; const isWhereInput = (input: any): boolean => { return Object.values(input).some((value) => typeof value === 'object'); diff --git a/server/src/core/file/file.utils.ts b/server/src/core/file/file.utils.ts index 5cc8559ea..94d1b0b99 100644 --- a/server/src/core/file/file.utils.ts +++ b/server/src/core/file/file.utils.ts @@ -11,7 +11,7 @@ import { FileFolder } from './interfaces/file-folder.interface'; type AllowedFolders = KebabCase; -export function checkFilePath(filePath: string): string { +export const checkFilePath = (filePath: string): string => { const allowedFolders = Object.values(FileFolder).map((value) => kebabCase(value), ); @@ -28,9 +28,9 @@ export function checkFilePath(filePath: string): string { } return sanitizedFilePath; -} +}; -export function checkFilename(filename: string) { +export const checkFilename = (filename: string) => { const sanitizedFilename = basename(filename.replace(/\0/g, '')); if ( @@ -43,4 +43,4 @@ export function checkFilename(filename: string) { } return basename(sanitizedFilename); -} +}; diff --git a/server/src/core/tenant/datasource/utils/datasource.util.ts b/server/src/core/tenant/datasource/utils/datasource.util.ts index 99952bd69..f337fd62c 100644 --- a/server/src/core/tenant/datasource/utils/datasource.util.ts +++ b/server/src/core/tenant/datasource/utils/datasource.util.ts @@ -5,12 +5,12 @@ * @param uuid * @returns */ -export function uuidToBase36(uuid: string): string { +export const uuidToBase36 = (uuid: string): string => { const hexString = uuid.replace(/-/g, ''); const base10Number = BigInt('0x' + hexString); const base36String = base10Number.toString(36); return base36String; -} +}; /** * Sanitizes a column name by replacing all non-alphanumeric characters with an underscore. @@ -19,9 +19,8 @@ export function uuidToBase36(uuid: string): string { * @param columnName * @returns string */ -export function sanitizeColumnName(columnName: string): string { - return columnName.replace(/[^a-zA-Z0-9]/g, '_'); -} +export const sanitizeColumnName = (columnName: string): string => + columnName.replace(/[^a-zA-Z0-9]/g, '_'); /** * Converts a field type to a postgres type. Field types are defined in the UI. @@ -29,7 +28,7 @@ export function sanitizeColumnName(columnName: string): string { * @param fieldType * @returns string */ -export function convertFieldTypeToPostgresType(fieldType: string): string { +export const convertFieldTypeToPostgresType = (fieldType: string): string => { switch (fieldType) { case 'text': return 'text'; @@ -44,4 +43,4 @@ export function convertFieldTypeToPostgresType(fieldType: string): string { default: return 'text'; } -} +}; diff --git a/server/src/core/user/user.resolver.ts b/server/src/core/user/user.resolver.ts index c9c0b6063..9e3a4b0ee 100644 --- a/server/src/core/user/user.resolver.ts +++ b/server/src/core/user/user.resolver.ts @@ -44,12 +44,12 @@ import { EnvironmentService } from 'src/integrations/environment/environment.ser import { UserService } from './user.service'; -function getHMACKey(email?: string, key?: string | null) { +const getHMACKey = (email?: string, key?: string | null) => { if (!email || !key) return null; const hmac = crypto.createHmac('sha256', key); return hmac.update(email).digest('hex'); -} +}; @UseGuards(JwtAuthGuard) @Resolver(() => User) diff --git a/server/src/integrations/environment/decorators/cast-to-boolean.decorator.ts b/server/src/integrations/environment/decorators/cast-to-boolean.decorator.ts index fee9e69bf..f358e0b21 100644 --- a/server/src/integrations/environment/decorators/cast-to-boolean.decorator.ts +++ b/server/src/integrations/environment/decorators/cast-to-boolean.decorator.ts @@ -1,8 +1,7 @@ import { Transform } from 'class-transformer'; -export function CastToBoolean() { - return Transform(({ value }: { value: string }) => toBoolean(value)); -} +export const CastToBoolean = () => + Transform(({ value }: { value: string }) => toBoolean(value)); const toBoolean = (value: any) => { if (typeof value === 'boolean') { diff --git a/server/src/integrations/environment/decorators/cast-to-log-level-array.decorator.ts b/server/src/integrations/environment/decorators/cast-to-log-level-array.decorator.ts index 857d5536b..35afda2f3 100644 --- a/server/src/integrations/environment/decorators/cast-to-log-level-array.decorator.ts +++ b/server/src/integrations/environment/decorators/cast-to-log-level-array.decorator.ts @@ -1,8 +1,7 @@ import { Transform } from 'class-transformer'; -export function CastToLogLevelArray() { - return Transform(({ value }: { value: string }) => toLogLevelArray(value)); -} +export const CastToLogLevelArray = () => + Transform(({ value }: { value: string }) => toLogLevelArray(value)); const toLogLevelArray = (value: any) => { if (typeof value === 'string') { diff --git a/server/src/integrations/environment/decorators/cast-to-positive-number.decorator.ts b/server/src/integrations/environment/decorators/cast-to-positive-number.decorator.ts index 4167957c7..b961f79e3 100644 --- a/server/src/integrations/environment/decorators/cast-to-positive-number.decorator.ts +++ b/server/src/integrations/environment/decorators/cast-to-positive-number.decorator.ts @@ -1,8 +1,7 @@ import { Transform } from 'class-transformer'; -export function CastToPositiveNumber() { - return Transform(({ value }: { value: string }) => toNumber(value)); -} +export const CastToPositiveNumber = () => + Transform(({ value }: { value: string }) => toNumber(value)); const toNumber = (value: any) => { if (typeof value === 'number') { diff --git a/server/src/integrations/environment/decorators/is-aws-region.decorator.ts b/server/src/integrations/environment/decorators/is-aws-region.decorator.ts index de1bf1c9d..57be66dfd 100644 --- a/server/src/integrations/environment/decorators/is-aws-region.decorator.ts +++ b/server/src/integrations/environment/decorators/is-aws-region.decorator.ts @@ -13,8 +13,9 @@ export class IsAWSRegionConstraint implements ValidatorConstraintInterface { } } -export function IsAWSRegion(validationOptions?: ValidationOptions) { - return function (object: object, propertyName: string) { +export const IsAWSRegion = + (validationOptions?: ValidationOptions) => + (object: object, propertyName: string) => { registerDecorator({ target: object.constructor, propertyName: propertyName, @@ -23,4 +24,3 @@ export function IsAWSRegion(validationOptions?: ValidationOptions) { validator: IsAWSRegionConstraint, }); }; -} diff --git a/server/src/integrations/environment/decorators/is-duration.decorator.ts b/server/src/integrations/environment/decorators/is-duration.decorator.ts index 138402005..9f1ea1668 100644 --- a/server/src/integrations/environment/decorators/is-duration.decorator.ts +++ b/server/src/integrations/environment/decorators/is-duration.decorator.ts @@ -14,8 +14,9 @@ export class IsDurationConstraint implements ValidatorConstraintInterface { } } -export function IsDuration(validationOptions?: ValidationOptions) { - return function (object: object, propertyName: string) { +export const IsDuration = + (validationOptions?: ValidationOptions) => + (object: object, propertyName: string) => { registerDecorator({ target: object.constructor, propertyName: propertyName, @@ -24,4 +25,3 @@ export function IsDuration(validationOptions?: ValidationOptions) { validator: IsDurationConstraint, }); }; -} diff --git a/server/src/integrations/environment/environment.validation.ts b/server/src/integrations/environment/environment.validation.ts index 30c630d01..fe8b4c3ed 100644 --- a/server/src/integrations/environment/environment.validation.ts +++ b/server/src/integrations/environment/environment.validation.ts @@ -143,11 +143,11 @@ export class EnvironmentVariables { SENTRY_DSN?: string; } -export function validate(config: Record) { +export const validate = (config: Record) => { const validatedConfig = plainToClass(EnvironmentVariables, config); const errors = validateSync(validatedConfig); assert(!errors.length, errors.toString()); return validatedConfig; -} +}; diff --git a/server/src/main.ts b/server/src/main.ts index c8b4c4f6b..b337f3b2e 100644 --- a/server/src/main.ts +++ b/server/src/main.ts @@ -11,7 +11,7 @@ import { settings } from './constants/settings'; import { LoggerService } from './integrations/logger/logger.service'; import { EnvironmentService } from './integrations/environment/environment.service'; -async function bootstrap() { +const bootstrap = async () => { const app = await NestFactory.create(AppModule, { cors: true, }); @@ -39,6 +39,6 @@ async function bootstrap() { app.useLogger(app.get(EnvironmentService).getLogLevels()); await app.listen(app.get(EnvironmentService).getPort()); -} +}; bootstrap(); diff --git a/server/src/utils/anonymize.ts b/server/src/utils/anonymize.ts index 3393a1f68..054203927 100644 --- a/server/src/utils/anonymize.ts +++ b/server/src/utils/anonymize.ts @@ -1,6 +1,6 @@ import crypto from 'crypto'; -export function anonymize(input: string) { +export const anonymize = (input: string) => { // md5 shorter than sha-256 and collisions are not a security risk in this use-case return crypto.createHash('md5').update(input).digest('hex'); -} +}; diff --git a/server/src/utils/assert.ts b/server/src/utils/assert.ts index 58702e51b..8ef03f2cb 100644 --- a/server/src/utils/assert.ts +++ b/server/src/utils/assert.ts @@ -23,6 +23,5 @@ export const assert: Assert = (condition, message, ErrorType) => { } }; -export function assertNotNull(item: T): item is NonNullable { - return item !== null && item !== undefined; -} +export const assertNotNull = (item: T): item is NonNullable => + item !== null && item !== undefined; diff --git a/server/src/utils/stream-to-buffer.ts b/server/src/utils/stream-to-buffer.ts index 80608a917..415b44d27 100644 --- a/server/src/utils/stream-to-buffer.ts +++ b/server/src/utils/stream-to-buffer.ts @@ -1,6 +1,6 @@ import { Readable } from 'stream'; -export async function streamToBuffer(stream: Readable): Promise { +export const streamToBuffer = async (stream: Readable): Promise => { const chunks: any[] = []; for await (const chunk of stream) { @@ -8,4 +8,4 @@ export async function streamToBuffer(stream: Readable): Promise { } return Buffer.concat(chunks); -} +}; diff --git a/server/test/utils/check-db.ts b/server/test/utils/check-db.ts index d73833cfe..e121f99f5 100644 --- a/server/test/utils/check-db.ts +++ b/server/test/utils/check-db.ts @@ -16,7 +16,7 @@ const schemaDatabaseExists = async (databaseName: string) => { } }; -async function main() { +const main = async () => { const databaseName = 'tests'; // Check if schema exists const databaseExistsResult = await schemaDatabaseExists(databaseName); @@ -27,7 +27,7 @@ async function main() { // Check if database is initialized await prisma.$queryRaw`SELECT 1 FROM pg_tables WHERE tablename='_prisma_migrations';`; -} +}; main() .then(() => { diff --git a/server/test/utils/create-app.ts b/server/test/utils/create-app.ts index fc64d61a8..f5f78f64b 100644 --- a/server/test/utils/create-app.ts +++ b/server/test/utils/create-app.ts @@ -21,12 +21,12 @@ export type TestingAppCreatePreHook = ( /** * Sets basic e2e testing module of app */ -export async function createApp( +export const createApp = async ( config: { moduleBuilderHook?: TestingModuleCreatePreHook; appInitHook?: TestingAppCreatePreHook; } = {}, -): Promise<[NestExpressApplication, TestingModule]> { +): Promise<[NestExpressApplication, TestingModule]> => { let moduleBuilder: TestingModuleBuilder = Test.createTestingModule({ imports: [AppModule], }); @@ -53,4 +53,4 @@ export async function createApp( app.use(mockAuthHandler); return [await app.init(), moduleFixture]; -} +};