1.0.0-rc4 rc4
This commit is contained in:
@@ -1614,7 +1614,7 @@ export default function RipperPage({
|
||||
// Detects when a background job reaches an interactive review/selection state via
|
||||
// PIPELINE_PROGRESS (e.g. METADATA_LOOKUP, METADATA_SELECTION, READY_TO_ENCODE, WAITING_FOR_USER_DECISION),
|
||||
// triggering a ripper jobs reload.
|
||||
const jobProgressInteractiveKey = useMemo(() => Object.entries(pipeline?.jobProgress || {})
|
||||
const jobProgressInteractiveSignature = useMemo(() => Object.entries(pipeline?.jobProgress || {})
|
||||
.filter(([, v]) => {
|
||||
const s = String(v?.state || '').toUpperCase();
|
||||
return s === 'METADATA_LOOKUP'
|
||||
@@ -1622,7 +1622,7 @@ export default function RipperPage({
|
||||
|| s === 'READY_TO_ENCODE'
|
||||
|| s === 'WAITING_FOR_USER_DECISION';
|
||||
})
|
||||
.map(([id]) => id)
|
||||
.map(([id, value]) => `${id}:${String(value?.state || '').trim().toUpperCase()}`)
|
||||
.sort()
|
||||
.join(','),
|
||||
[pipeline?.jobProgress]);
|
||||
@@ -1918,7 +1918,17 @@ export default function RipperPage({
|
||||
|
||||
useEffect(() => {
|
||||
void loadRipperJobs();
|
||||
}, [pipeline?.state, pipeline?.activeJobId, pipeline?.context?.jobId, cdDriveLifecycleKey, jobsRefreshToken, jobProgressInteractiveKey]);
|
||||
}, [pipeline?.state, pipeline?.activeJobId, pipeline?.context?.jobId, cdDriveLifecycleKey, jobsRefreshToken, jobProgressInteractiveSignature]);
|
||||
|
||||
useEffect(() => {
|
||||
const normalizedPipelineState = String(pipeline?.state || '').trim().toUpperCase();
|
||||
const isReviewState = normalizedPipelineState === 'READY_TO_ENCODE'
|
||||
|| normalizedPipelineState === 'WAITING_FOR_USER_DECISION';
|
||||
if (!isReviewState || !currentPipelineJobId) {
|
||||
return;
|
||||
}
|
||||
setExpandedJobId(currentPipelineJobId);
|
||||
}, [pipeline?.state, currentPipelineJobId]);
|
||||
|
||||
useEffect(() => {
|
||||
api.getDetectedDrives()
|
||||
|
||||
Reference in New Issue
Block a user