未签名按钮置灰

This commit is contained in:
xianyi
2025-11-28 18:02:30 +08:00
parent 66e01c3446
commit 072a664301
3 changed files with 41 additions and 2 deletions

View File

@@ -32,4 +32,20 @@
text-align: center;
white-space: nowrap;
line-height: 51px;
}
.confirm-button--disabled {
filter: grayscale(1);
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
}
.confirm-button--disabled:hover {
transform: none;
opacity: 0.5;
}
.confirm-button--disabled:active {
transform: none;
}

View File

@@ -4,11 +4,26 @@ import "./ConfirmButton.css";
interface ConfirmButtonProps {
text: string;
onClick?: () => void;
disabled?: boolean;
}
const ConfirmButton: React.FC<ConfirmButtonProps> = ({ text, onClick }) => {
const ConfirmButton: React.FC<ConfirmButtonProps> = ({
text,
onClick,
disabled = false,
}) => {
const handleClick = () => {
if (!disabled && onClick) {
onClick();
}
};
return (
<div className="confirm-button" onClick={onClick}>
<div
className={`confirm-button${disabled ? " confirm-button--disabled" : ""}`}
onClick={handleClick}
aria-disabled={disabled}
>
<span className="confirm-button-text">{text}</span>
</div>
);

View File

@@ -101,6 +101,7 @@ const UI7: React.FC = () => {
const [isDrawing, setIsDrawing] = useState(false);
const [isSubmitting, setIsSubmitting] = useState(false);
const [currentStep, setCurrentStep] = useState(0);
const [hasSignature, setHasSignature] = useState(false);
const [currentPdfPageCount, setCurrentPdfPageCount] = useState(0);
const totalRequiredSignatures = pdfInfoList.length + 1;
@@ -240,6 +241,10 @@ const UI7: React.FC = () => {
setCurrentPdfPageCount(0);
}, [currentStep, currentPdfFile]);
useEffect(() => {
setHasSignature(false);
}, [currentStep]);
const resetCountdown = useCallback(() => {
setCountdown(5);
setShowWaitButton(true);
@@ -327,6 +332,7 @@ const UI7: React.FC = () => {
ctx.quadraticCurveTo(lastPoint.x, lastPoint.y, midX, midY);
ctx.stroke();
lastPointRef.current = { x, y };
setHasSignature(true);
},
[getCoordinates, isDrawing]
);
@@ -355,6 +361,7 @@ const UI7: React.FC = () => {
ctx.lineWidth = 10;
ctx.lineCap = "round";
ctx.lineJoin = "round";
setHasSignature(false);
}, []);
const isCanvasBlank = useCallback(() => {
@@ -586,6 +593,7 @@ const UI7: React.FC = () => {
<ConfirmButton
text={isSubmitting ? "提交中..." : "确定"}
onClick={handleConfirm}
disabled={!hasSignature || isSubmitting}
/>
)}
</div>