fix: 所有数值输入框添加NaN校验(width/height/border_radius/opacity/start_time/duration)
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 46s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m29s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m20s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 41s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m23s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m15s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m20s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m20s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Failing after 4m8s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m1s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 3m14s
CI/CD Pipeline / CI Gate (pull_request) Failing after 11s

This commit is contained in:
2026-07-30 10:48:44 +08:00
parent 3221c170e9
commit b645e9ceea
@@ -117,7 +117,10 @@ export const LayerConfig: React.FC<LayerConfigProps> = ({
min={10}
max={80}
value={layer.width}
onChange={(e) => onWidthChange(Number(e.target.value))}
onChange={(e) => {
const val = Number(e.target.value)
if (!isNaN(val)) onWidthChange(val)
}}
/>
<span className="pip-slider-value">{layer.width}%</span>
</div>
@@ -129,7 +132,10 @@ export const LayerConfig: React.FC<LayerConfigProps> = ({
min={10}
max={80}
value={layer.height}
onChange={(e) => onHeightChange(Number(e.target.value))}
onChange={(e) => {
const val = Number(e.target.value)
if (!isNaN(val)) onHeightChange(val)
}}
/>
<span className="pip-slider-value">{layer.height}%</span>
</div>
@@ -153,7 +159,10 @@ export const LayerConfig: React.FC<LayerConfigProps> = ({
min={0}
max={50}
value={layer.border_radius}
onChange={(e) => onUpdate(layer.id, { border_radius: Number(e.target.value) })}
onChange={(e) => {
const val = Number(e.target.value)
if (!isNaN(val)) onUpdate(layer.id, { border_radius: val })
}}
/>
<span className="pip-slider-value">{layer.border_radius}%</span>
</div>
@@ -169,7 +178,10 @@ export const LayerConfig: React.FC<LayerConfigProps> = ({
min={0}
max={100}
value={layer.opacity}
onChange={(e) => onUpdate(layer.id, { opacity: Number(e.target.value) })}
onChange={(e) => {
const val = Number(e.target.value)
if (!isNaN(val)) onUpdate(layer.id, { opacity: val })
}}
/>
<span className="pip-slider-value">{layer.opacity}%</span>
</div>
@@ -188,7 +200,10 @@ export const LayerConfig: React.FC<LayerConfigProps> = ({
max={totalDuration || 999}
step={0.1}
value={layer.start_time}
onChange={(e) => onUpdate(layer.id, { start_time: Number(e.target.value) })}
onChange={(e) => {
const val = Number(e.target.value)
if (!isNaN(val)) onUpdate(layer.id, { start_time: val })
}}
/>
</div>
<div>
@@ -200,7 +215,10 @@ export const LayerConfig: React.FC<LayerConfigProps> = ({
max={totalDuration || 999}
step={0.1}
value={layer.duration}
onChange={(e) => onUpdate(layer.id, { duration: Number(e.target.value) })}
onChange={(e) => {
const val = Number(e.target.value)
if (!isNaN(val)) onUpdate(layer.id, { duration: val })
}}
/>
</div>
</div>