Skip to content

Commit 520eb45

Browse files
committed
fix: cut search results uses the main active node
1 parent 3561d33 commit 520eb45

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/stores/document/reducers/delete-node/delete-node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const deleteNode = (
2222
) => {
2323
invariant(nodeId);
2424

25-
const isSelection = selectedNodes && selectedNodes.size > 1;
25+
const isSelection = selectedNodes && selectedNodes.size > 0;
2626
const nodes: string[] = isSelection ? [...selectedNodes] : [nodeId];
2727

2828
let nextNode: string | undefined = undefined;

src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/clipboard/cut-search-results.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
import { LineageView } from 'src/view/view';
22
import { copySearchResultsToClipboard } from 'src/view/actions/keyboard-shortcuts/helpers/commands/commands/helpers/clipboard/copy-search-results-to-clipboard';
33
import { sortNodeIdsByDepthDesc } from 'src/lib/tree-utils/sort/sort-node-ids-by-depth-desc';
4+
import { sortNodeIdsBySectionNumber } from 'src/lib/tree-utils/sort/sort-node-ids-by-section-number';
45

56
export const cutSearchResults = async (view: LineageView) => {
67
copySearchResultsToClipboard(view);
78
const viewState = view.viewStore.getValue();
89
const documentState = view.documentStore.getValue();
910
const results = Array.from(viewState.search.results.keys());
11+
if (results.length === 0) return;
1012
const sections = documentState.sections;
1113
const sortedByDepth = sortNodeIdsByDepthDesc(sections, results);
14+
const activeNodeIsAMatch = viewState.search.results.has(
15+
viewState.document.activeNode,
16+
);
17+
const activeSearchNode = activeNodeIsAMatch
18+
? viewState.document.activeNode
19+
: sortNodeIdsBySectionNumber(sections, results)[0];
1220
view.documentStore.dispatch({
1321
type: 'DOCUMENT/CUT_NODE',
1422
payload: {
15-
nodeId: viewState.document.activeNode,
23+
nodeId: activeSearchNode,
1624
selectedNodes: new Set(sortedByDepth),
1725
},
1826
});

0 commit comments

Comments
 (0)