@@ -187,12 +187,6 @@ const ScriptMenuList = React.memo(
187187 window . close ( ) ;
188188 } , [ ] ) ;
189189
190- const handleExcludeUrl = useCallback ( ( item : ScriptMenu , excludePattern : string , isExclude : boolean ) => {
191- scriptClient . excludeUrl ( item . uuid , excludePattern , isExclude ) . finally ( ( ) => {
192- window . close ( ) ;
193- } ) ;
194- } , [ ] ) ;
195-
196190 const handleDeleteScript = useCallback ( ( uuid : string ) => {
197191 setList ( ( prevList ) => prevList . filter ( ( i ) => i . uuid !== uuid ) ) ;
198192 scriptClient . delete ( uuid ) . catch ( ( e ) => {
@@ -259,6 +253,8 @@ const ScriptMenuList = React.memo(
259253 CollapseHeader . displayName = "CollapseHeader" ;
260254
261255 const ListMenuItem = React . memo ( ( { item, index } : { item : ScriptMenu ; index : number } ) => {
256+ const [ isEffective , setIsEffective ] = useState < boolean | null > ( item . isEffective ) ;
257+
262258 const visibleMenus = useMemo ( ( ) => {
263259 return item . menus . length > menuExpandNum && ! expandMenuIndex [ index ]
264260 ? item . menus . slice ( 0 , menuExpandNum )
@@ -269,6 +265,15 @@ const ScriptMenuList = React.memo(
269265
270266 const shouldShowMore = useMemo ( ( ) => item . menus . length > menuExpandNum , [ item . menus , menuExpandNum ] ) ;
271267
268+ const handleExcludeUrl = useCallback (
269+ ( item : ScriptMenu , excludePattern : string , isExclude : boolean ) => {
270+ scriptClient . excludeUrl ( item . uuid , excludePattern , isExclude ) . finally ( ( ) => {
271+ setIsEffective ( ! isEffective ) ;
272+ } ) ;
273+ } ,
274+ [ item , isEffective ]
275+ ) ;
276+
272277 return (
273278 < Collapse bordered = { false } expandIconPosition = "right" key = { item . uuid } >
274279 < CollapseItem
@@ -295,15 +300,15 @@ const ScriptMenuList = React.memo(
295300 >
296301 { t ( "edit" ) }
297302 </ Button >
298- { url && item . isEffective !== null && (
303+ { url && isEffective !== null && (
299304 < Button
300305 className = "text-left"
301306 status = "warning"
302307 type = "secondary"
303308 icon = { < IconMinus /> }
304- onClick = { ( ) => handleExcludeUrl ( item , `*://${ url . host } /*` , ! item . isEffective ) }
309+ onClick = { ( ) => handleExcludeUrl ( item , `*://${ url . host } /*` , ! isEffective ) }
305310 >
306- { ( ! item . isEffective ? t ( "exclude_on" ) : t ( "exclude_off" ) ) . replace ( "$0" , `${ url . host } ` ) }
311+ { ( ! isEffective ? t ( "exclude_on" ) : t ( "exclude_off" ) ) . replace ( "$0" , `${ url . host } ` ) }
307312 </ Button >
308313 ) }
309314 < Popconfirm
0 commit comments