Improve Jotai work (#18205)

This commit is contained in:
Charles Bochet
2026-02-24 20:38:30 +01:00
committed by GitHub
parent b339c93699
commit eaf9fe27b2
210 changed files with 1714 additions and 1662 deletions
@@ -8,9 +8,10 @@ import {
import { suggestedFieldsByColumnHeaderState } from '@/spreadsheet-import/steps/components/MatchColumnsStep/components/states/suggestedFieldsByColumnHeaderState';
import { type ImportedRow } from '@/spreadsheet-import/types';
import { getMatchedColumnsWithFuse } from '@/spreadsheet-import/utils/getMatchedColumnsWithFuse';
import { jotaiStore } from '@/ui/utilities/state/jotai/jotaiStore';
import { useStore } from 'jotai';
export const useComputeColumnSuggestionsAndAutoMatch = () => {
const store = useStore();
const { spreadsheetImportFields: fields, autoMapHeaders } =
useSpreadsheetImportInternal();
@@ -23,21 +24,21 @@ export const useComputeColumnSuggestionsAndAutoMatch = () => {
data: ImportedRow[];
}) => {
if (autoMapHeaders) {
const columns = jotaiStore.get(
const columns = store.get(
initialComputedColumnsSelector.selectorFamily(headerValues),
);
const { matchedColumns, suggestedFieldsByColumnHeader } =
getMatchedColumnsWithFuse({ columns, fields, data });
jotaiStore.set(matchColumnsState.atom, matchedColumns);
jotaiStore.set(
store.set(matchColumnsState.atom, matchedColumns);
store.set(
suggestedFieldsByColumnHeaderState.atom,
suggestedFieldsByColumnHeader,
);
}
},
[autoMapHeaders, fields],
[autoMapHeaders, fields, store],
);
return computeColumnSuggestionsAndAutoMatch;
@@ -1,20 +1,21 @@
import { spreadsheetImportDialogState } from '@/spreadsheet-import/states/spreadsheetImportDialogState';
import { jotaiStore } from '@/ui/utilities/state/jotai/jotaiStore';
import { useCallback } from 'react';
import { useStore } from 'jotai';
export const useHideStepBar = () => {
const store = useStore();
const hideStepBar = useCallback(() => {
const isStepBarVisible = jotaiStore.get(
const isStepBarVisible = store.get(
spreadsheetImportDialogState.atom,
).isStepBarVisible;
if (isStepBarVisible) {
jotaiStore.set(spreadsheetImportDialogState.atom, (state) => ({
store.set(spreadsheetImportDialogState.atom, (state) => ({
...state,
isStepBarVisible: false,
}));
}
}, []);
}, [store]);
return hideStepBar;
};