Fix: Untoggle clean mode after use

The clean mode toggle should be switched off after the clean procedure is complete, instead of being disabled.
This commit is contained in:
gpt-engineer-app[bot]
2025-06-14 16:18:40 +00:00
parent a6998f8249
commit 16012accc1

View File

@@ -1,3 +1,4 @@
import { useParams, useNavigate } from "react-router-dom"; import { useParams, useNavigate } from "react-router-dom";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { toast } from "@/hooks/use-toast"; import { toast } from "@/hooks/use-toast";
@@ -23,7 +24,6 @@ const SystemView = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const queryClient = useQueryClient(); const queryClient = useQueryClient();
const [cleanMode, setCleanMode] = useState(false); const [cleanMode, setCleanMode] = useState(false);
const [cleanModeUsed, setCleanModeUsed] = useState(false);
if (!system) { if (!system) {
navigate("/"); navigate("/");
@@ -106,6 +106,8 @@ const SystemView = () => {
const pastedText = e.clipboardData?.getData('text'); const pastedText = e.clipboardData?.getData('text');
if (!pastedText?.trim()) return; if (!pastedText?.trim()) return;
const wasCleanMode = cleanMode;
try { try {
const systemId = await getSystemId(system); const systemId = await getSystemId(system);
const lines = pastedText.trim().split('\n').filter(line => line.trim()); const lines = pastedText.trim().split('\n').filter(line => line.trim());
@@ -133,7 +135,7 @@ const SystemView = () => {
} }
// If clean mode is enabled, delete signatures not in the pasted list // If clean mode is enabled, delete signatures not in the pasted list
if (cleanMode && !cleanModeUsed) { if (wasCleanMode) {
const existingSignatures = await pb.collection('signature').getFullList({ const existingSignatures = await pb.collection('signature').getFullList({
filter: `system='${systemId}'` filter: `system='${systemId}'`
}); });
@@ -149,8 +151,7 @@ const SystemView = () => {
console.log(`Deleted ${signaturesToDelete.length} signatures not in pasted data`); console.log(`Deleted ${signaturesToDelete.length} signatures not in pasted data`);
} }
// Disable clean mode after use // Turn off clean mode after use
setCleanModeUsed(true);
setCleanMode(false); setCleanMode(false);
} }
@@ -182,7 +183,7 @@ const SystemView = () => {
return () => { return () => {
document.removeEventListener('paste', handlePaste); document.removeEventListener('paste', handlePaste);
}; };
}, [system, cleanMode, cleanModeUsed]); }, [system, cleanMode]);
return ( return (
<div className="min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"> <div className="min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900">
@@ -196,7 +197,6 @@ const SystemView = () => {
id="clean-mode" id="clean-mode"
checked={cleanMode} checked={cleanMode}
onCheckedChange={setCleanMode} onCheckedChange={setCleanMode}
disabled={cleanModeUsed}
/> />
<Label htmlFor="clean-mode" className="text-sm text-slate-300"> <Label htmlFor="clean-mode" className="text-sm text-slate-300">
Clean mode Clean mode