@@ -2,10 +2,11 @@ import { useEffect, useState } from "react";
2
2
import { cn } from "../../utils/cn" ;
3
3
import IconButton from "../../components/IconButton" ;
4
4
import { Stage } from "../../core/stage/Stage" ;
5
- import { CaseSensitive , CaseUpper } from "lucide-react" ;
5
+ import { CaseSensitive , CaseUpper , SquareDashedMousePointer } from "lucide-react" ;
6
6
import Input from "../../components/Input" ;
7
7
import { StageManager } from "../../core/stage/stageManager/StageManager" ;
8
8
import { Camera } from "../../core/stage/Camera" ;
9
+ import { TextRiseEffect } from "../../core/service/feedbackService/effectEngine/concrete/TextRiseEffect" ;
9
10
10
11
/**
11
12
* 搜索内容的面板
@@ -30,6 +31,16 @@ export default function SearchingContentPanel({ open = false, className = "" }:
30
31
}
31
32
} , [ open ] ) ;
32
33
34
+ const selectAllResult = ( ) => {
35
+ for ( const result of searchResults ) {
36
+ const node = StageManager . getStageObjectByUUID ( result . uuid ) ;
37
+ if ( node ) {
38
+ node . isSelected = true ;
39
+ }
40
+ }
41
+ Stage . effectMachine . addEffect ( TextRiseEffect . default ( `${ searchResults . length } 个结果已全部选中` ) ) ;
42
+ } ;
43
+
33
44
return (
34
45
< div
35
46
className = { cn (
@@ -40,13 +51,11 @@ export default function SearchingContentPanel({ open = false, className = "" }:
40
51
className ,
41
52
) }
42
53
>
43
- < div className = "flex items-center justify-between" >
44
- < h1 > 搜索内容</ h1 >
45
- < div className = "text-panel-details-text flex h-8 items-center justify-center text-xs" >
46
- { isCaseSensitive ? "大小写敏感" : "大小写不敏感" }
47
- </ div >
48
- </ div >
49
-
54
+ { searchResults . length > 0 && (
55
+ < IconButton onClick = { selectAllResult } tooltip = { "将全部结果选中" } >
56
+ < SquareDashedMousePointer />
57
+ </ IconButton >
58
+ ) }
50
59
< div className = "flex items-center justify-between" >
51
60
< Input
52
61
placeholder = "请输入要搜索的内容"
@@ -81,6 +90,7 @@ export default function SearchingContentPanel({ open = false, className = "" }:
81
90
setIsCaseSensitive ( currentResult ) ;
82
91
Stage . contentSearchEngine . isCaseSensitive = currentResult ;
83
92
} }
93
+ tooltip = { isCaseSensitive ? "当前状态:大小写敏感" : "当前状态:大小写不敏感" }
84
94
>
85
95
{ isCaseSensitive ? < CaseSensitive /> : < CaseUpper /> }
86
96
</ IconButton >
0 commit comments