Migrate more to Jotai (#17903)

Here we go again
This commit is contained in:
Charles Bochet
2026-02-12 18:13:31 +01:00
committed by GitHub
parent 3075707bf8
commit d5a8cc2085
48 changed files with 134 additions and 105 deletions
@@ -1,5 +1,4 @@
import { useLingui } from '@lingui/react/macro';
import { useRecoilValue, useSetRecoilState } from 'recoil';
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
import { useMergeManyRecords } from '@/object-record/hooks/useMergeManyRecords';
@@ -9,6 +8,8 @@ import { AppPath } from 'twenty-shared/types';
import { useNavigateApp } from '~/hooks/useNavigateApp';
import { isMergeInProgressState } from '@/object-record/record-merge/states/mergeInProgressState';
import { mergeSettingsState } from '@/object-record/record-merge/states/mergeSettingsState';
import { useSetRecoilStateV2 } from '@/ui/utilities/state/jotai/hooks/useSetRecoilStateV2';
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
type UseMergeRecordsActionsProps = {
objectNameSingular: string;
@@ -17,7 +18,7 @@ type UseMergeRecordsActionsProps = {
export const useMergeRecordsActions = ({
objectNameSingular,
}: UseMergeRecordsActionsProps) => {
const mergeSettings = useRecoilValue(mergeSettingsState);
const mergeSettings = useRecoilValueV2(mergeSettingsState);
const { selectedRecords } = useMergeRecordsSelectedRecords();
@@ -25,7 +26,7 @@ export const useMergeRecordsActions = ({
objectNameSingular,
});
const setMergeInProgress = useSetRecoilState(isMergeInProgressState);
const setMergeInProgress = useSetRecoilStateV2(isMergeInProgressState);
const { t } = useLingui();
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
@@ -1,10 +1,10 @@
import { useRecoilState } from 'recoil';
import { type MergeManySettings } from '@/object-record/hooks/useMergeManyRecords';
import { mergeSettingsState } from '@/object-record/record-merge/states/mergeSettingsState';
import { useRecoilStateV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilStateV2';
export const useMergeRecordsSettings = () => {
const [mergeSettings, setMergeSettings] = useRecoilState(mergeSettingsState);
const [mergeSettings, setMergeSettings] =
useRecoilStateV2(mergeSettingsState);
const updateMergeSettings = (settings: MergeManySettings) => {
setMergeSettings(settings);
@@ -4,9 +4,9 @@ import { useMergeRecordsSelectedRecords } from '@/object-record/record-merge/hoo
import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore';
import { type ObjectRecord } from '@/object-record/types/ObjectRecord';
import { useEffect, useState } from 'react';
import { useRecoilValue } from 'recoil';
import { isMergeInProgressState } from '@/object-record/record-merge/states/mergeInProgressState';
import { mergeSettingsState } from '@/object-record/record-merge/states/mergeSettingsState';
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
type UseMergePreviewProps = {
objectNameSingular: string;
@@ -20,8 +20,8 @@ export const usePerformMergePreview = ({
const [isGeneratingPreview, setIsGeneratingPreview] = useState(false);
const [isInitialized, setIsInitialized] = useState(false);
const mergeSettings = useRecoilValue(mergeSettingsState);
const isMergeInProgress = useRecoilValue(isMergeInProgressState);
const mergeSettings = useRecoilValueV2(mergeSettingsState);
const isMergeInProgress = useRecoilValueV2(isMergeInProgressState);
const { mergeManyRecords } = useMergeManyRecords({
objectNameSingular,
@@ -1,6 +1,6 @@
import { createState } from '@/ui/utilities/state/utils/createState';
import { createStateV2 } from '@/ui/utilities/state/jotai/utils/createStateV2';
export const isMergeInProgressState = createState<boolean>({
export const isMergeInProgressState = createStateV2<boolean>({
key: 'isMergeInProgress',
defaultValue: false,
});
@@ -1,7 +1,7 @@
import { type MergeManySettings } from '@/object-record/hooks/useMergeManyRecords';
import { createState } from '@/ui/utilities/state/utils/createState';
import { createStateV2 } from '@/ui/utilities/state/jotai/utils/createStateV2';
export const mergeSettingsState = createState<MergeManySettings>({
export const mergeSettingsState = createStateV2<MergeManySettings>({
key: 'mergeSettingsState',
defaultValue: {
conflictPriorityIndex: 0,