Skip to content

Commit 8730cbe

Browse files
fix: reset conflict state after close popup
1 parent eec9ce9 commit 8730cbe

File tree

1 file changed

+38
-20
lines changed

1 file changed

+38
-20
lines changed

src/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.tsx

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
import { DialPopup } from '@/components/Popup/Popup';
2-
import { PopupSize } from '@/types/popup';
31
import {
4-
DialPrimaryButton,
52
DialNeutralButton,
3+
DialPrimaryButton,
64
} from '@/components/Button/ButtonWrappers';
7-
import { type FC, useState, useMemo, useCallback } from 'react';
8-
import type { DialFile } from '@/models/file';
9-
import { DialFileNodeType } from '@/models/file';
10-
import { DialRadioGroup } from '@/components/RadioGroup/RadioGroup';
11-
import { RadioGroupOrientation } from '@/types/radio-group';
12-
import type { RadioButtonWithContent } from '@/models/radio';
135
import { DialDropdown } from '@/components/Dropdown/Dropdown';
14-
import type { DropdownItem } from '@/models/dropdown';
15-
import { DialGrid } from '@/components/Grid/Grid';
16-
import type { ColDef } from 'ag-grid-community';
6+
import { BASE_FILE_MANAGER_ICON_SIZE } from '@/components/FileManager/constants';
177
import { DialFileName } from '@/components/FileName/FileName';
188
import { DialFolderName } from '@/components/FolderName/FolderName';
19-
import { BASE_FILE_MANAGER_ICON_SIZE } from '@/components/FileManager/constants';
9+
import { DialGrid } from '@/components/Grid/Grid';
10+
import { DialPopup } from '@/components/Popup/Popup';
11+
import { DialRadioGroup } from '@/components/RadioGroup/RadioGroup';
12+
import { DIAL_ICON_SIZE } from '@/constants/icon';
13+
import type { DropdownItem } from '@/models/dropdown';
14+
import type { DialFile } from '@/models/file';
15+
import { DialFileNodeType } from '@/models/file';
16+
import type { RadioButtonWithContent } from '@/models/radio';
2017
import { DropdownTrigger } from '@/types/dropdown';
21-
import { IconChevronDown, IconCircleFilled } from '@tabler/icons-react';
22-
import classNames from 'classnames';
2318
import {
2419
DialFileManagerConflictActions,
2520
DialFileManagerConflictStrategies,
2621
} from '@/types/file-manager';
27-
import { DIAL_ICON_SIZE } from '@/constants/icon';
22+
import { PopupSize } from '@/types/popup';
23+
import { RadioGroupOrientation } from '@/types/radio-group';
24+
import { IconChevronDown, IconCircleFilled } from '@tabler/icons-react';
25+
import type { ColDef } from 'ag-grid-community';
26+
import classNames from 'classnames';
27+
import { type FC, useCallback, useMemo, useState } from 'react';
2828

2929
export interface FileConflictDecision {
3030
file: DialFile;
@@ -384,7 +384,24 @@ export const ConflictResolutionPopup: FC<ConflictResolutionPopupProps> = ({
384384
],
385385
);
386386

387+
const resetState = useCallback(() => {
388+
setFileDecisions(
389+
new Map(
390+
conflictingFiles.map((file) => [
391+
file.path,
392+
DialFileManagerConflictActions.Replace,
393+
]),
394+
),
395+
);
396+
}, [conflictingFiles]);
397+
398+
const handleClose = useCallback(() => {
399+
resetState();
400+
onClose();
401+
}, [resetState, onClose]);
402+
387403
const handleConfirm = useCallback(() => {
404+
resetState();
388405
if (isSingleFile) {
389406
if (singleFileMode === DialFileManagerConflictActions.Replace) {
390407
onReplace();
@@ -412,20 +429,21 @@ export const ConflictResolutionPopup: FC<ConflictResolutionPopupProps> = ({
412429
}
413430
}
414431
}, [
432+
resetState,
415433
isSingleFile,
416434
singleFileMode,
417-
strategy,
418-
fileDecisions,
419-
conflictingFiles,
420435
onReplace,
421436
onDuplicate,
437+
strategy,
422438
onDecideForEach,
439+
conflictingFiles,
440+
fileDecisions,
423441
]);
424442

425443
return (
426444
<DialPopup
427445
open={open}
428-
onClose={onClose}
446+
onClose={handleClose}
429447
size={isSingleFile ? PopupSize.Sm : PopupSize.Md}
430448
className={classNames([!isSingleFile && 'w-[600px]'])}
431449
header={title}

0 commit comments

Comments
 (0)