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:
@@ -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
|
||||||
|
Reference in New Issue
Block a user