@@ -145,20 +145,25 @@ function useLocationFilterId(page: CardProps['page']): string | undefined {
145
145
146
146
function Card ( props : CardProps ) {
147
147
const locationFilterId = useLocationFilterId ( props . page ) ;
148
+ const [ highlightRemoved , setHighlightRemoved ] = React . useState < boolean > (
149
+ false
150
+ ) ;
148
151
const computedProps = useComputedProps ( props ) ;
149
152
150
153
if (
151
154
! props . highlight . range ||
152
155
! props . page ||
153
156
! props . book ||
154
- ! locationFilterId
157
+ ! locationFilterId ||
158
+ highlightRemoved
155
159
) {
156
160
return null ;
157
161
}
158
162
159
163
return (
160
164
< NoteOrCard
161
165
props = { props as CardPropsWithBookAndPage }
166
+ setHighlightRemoved = { setHighlightRemoved }
162
167
locationFilterId = { locationFilterId }
163
168
computedProps = { computedProps }
164
169
/>
@@ -167,10 +172,12 @@ function Card(props: CardProps) {
167
172
168
173
function NoteOrCard ( {
169
174
props,
175
+ setHighlightRemoved,
170
176
locationFilterId,
171
177
computedProps,
172
178
} : {
173
179
props : CardPropsWithBookAndPage ;
180
+ setHighlightRemoved : React . Dispatch < React . SetStateAction < boolean > > ;
174
181
locationFilterId : string ;
175
182
computedProps : ReturnType < typeof useComputedProps > ;
176
183
} ) {
@@ -185,6 +192,7 @@ function NoteOrCard({
185
192
const showToast = useConfirmationToastContext ( ) ;
186
193
const onRemove = React . useCallback ( ( ) => {
187
194
if ( props . data ) {
195
+ setHighlightRemoved ( true ) ;
188
196
props . remove ( props . data , {
189
197
locationFilterId,
190
198
pageId : props . page . id ,
@@ -193,7 +201,7 @@ function NoteOrCard({
193
201
message : 'Highlight removed' ,
194
202
} ) ;
195
203
}
196
- } , [ locationFilterId , props , showToast ] ) ;
204
+ } , [ locationFilterId , props , showToast , setHighlightRemoved ] ) ;
197
205
const style = highlightStyles . find (
198
206
search => props . data && search . label === props . data . color
199
207
) ;
0 commit comments