Skip to content

Commit e432210

Browse files
committed
✨ 弹出页在排除网站后不自动关闭 #725
1 parent 6edad14 commit e432210

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

src/pages/components/ScriptMenuList/index.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)