@@ -35,8 +35,9 @@ function Card({
35
35
color,
36
36
className,
37
37
compact = false ,
38
+ forceOpen = false ,
38
39
} ) {
39
- const [ isExpanded , setIsExpanded ] = useState ( false ) ;
40
+ const [ isExpanded , setIsExpanded ] = useState ( forceOpen ) ;
40
41
41
42
function getExpandedCards ( ) {
42
43
if ( ! localStorage ) {
@@ -53,6 +54,10 @@ function Card({
53
54
}
54
55
55
56
function toggleExpanded ( ) {
57
+ if ( forceOpen ) {
58
+ return ;
59
+ }
60
+
56
61
setIsExpanded ( ! isExpanded ) ;
57
62
58
63
if ( ! localStorage ) {
@@ -73,12 +78,16 @@ function Card({
73
78
}
74
79
75
80
useEffect ( ( ) => {
81
+ if ( ! forceOpen ) {
82
+ return ;
83
+ }
84
+
76
85
const expandedCards = getExpandedCards ( ) ;
77
86
78
87
setIsExpanded (
79
88
expandedCards . filter ( ( cardId ) => cardId === id ) . length > 0 ,
80
89
) ;
81
- } , [ id ] ) ;
90
+ } , [ id , forceOpen ] ) ;
82
91
83
92
const colorClassName = {
84
93
default : 'border border-gray-200 dark:border-gray-600' ,
@@ -118,9 +127,12 @@ function Card({
118
127
{ preview }
119
128
</ div >
120
129
) }
121
- < div >
122
- < ChevronDownIcon className = { classNames ( isExpanded && 'rotate-180' , 'size-6 transition-transform opacity-70' ) } />
123
- </ div >
130
+
131
+ { ! forceOpen && (
132
+ < div >
133
+ < ChevronDownIcon className = { classNames ( isExpanded && 'rotate-180' , 'size-6 transition-transform opacity-70' ) } />
134
+ </ div >
135
+ ) }
124
136
</ div >
125
137
</ button >
126
138
@@ -171,6 +183,7 @@ Card.propTypes = {
171
183
titleCompact : PropTypes . string ,
172
184
preview : PropTypes . string ,
173
185
compact : PropTypes . bool ,
186
+ forceOpen : PropTypes . bool ,
174
187
} ;
175
188
176
189
Card . defaultProps = {
0 commit comments