import React from 'react' import { Head, Link, router, usePage } from '@inertiajs/react' import EnhanceStatusBadge from '../../../components/enhance/EnhanceStatusBadge' import EnhanceStubWarning from '../../../components/enhance/EnhanceStubWarning' import { formatEnhanceDate } from '../../../utils/enhanceFormatting' function formatDate(value) { return formatEnhanceDate(value) } export default function ModerationEnhanceIndex() { const { props } = usePage() const [filters, setFilters] = React.useState(props.filters || {}) const jobs = props.jobs?.data || [] const flash = props.flash || {} React.useEffect(() => { setFilters(props.filters || {}) }, [props.filters]) function applyFilters(event) { event.preventDefault() router.get(props.indexUrl, filters, { preserveScroll: true, preserveState: true, replace: true }) } return (

Moderation surface

Enhance Jobs

Review queued, processing, failed, and completed image upscale jobs without changing original artwork assets.

setFilters((current) => ({ ...current, user: event.target.value }))} placeholder="User name or username" className="rounded-2xl border border-white/10 bg-slate-950/70 px-4 py-3 text-sm text-white outline-none" /> setFilters((current) => ({ ...current, date_from: event.target.value }))} className="rounded-2xl border border-white/10 bg-slate-950/70 px-4 py-3 text-sm text-white outline-none" /> setFilters((current) => ({ ...current, date_to: event.target.value }))} className="rounded-2xl border border-white/10 bg-slate-950/70 px-4 py-3 text-sm text-white outline-none" />
{flash.success ?
{flash.success}
: null} {flash.error ?
{flash.error}
: null}
{jobs.length === 0 ? : null} {jobs.map((job) => ( ))}
Preview Job User Artwork Status Mode Scale Dimensions Created Actions
No enhance jobs match the current filters.
{job.preview_url || job.source_url ? {`Enhance : null}
#{job.id}
{job.engine}
{job.user?.name || '—'}{job.user?.username ?
@{job.user.username}
: null}
{job.artwork?.title ? {job.artwork.title} : '—'} {job.mode} {job.scale}x {job.input_width} × {job.input_height}{job.output_width && job.output_height ?
→ {job.output_width} × {job.output_height}
: null}
{formatDate(job.created_at)} Open
) }