feat(frontend): show inactive tasks on entity page

Return all tasks for an entity so inactive items remain visible in the entity detail view while global task listings stay active-only.

Add inactive task styling and coverage for the entity page state.
This commit is contained in:
2026-03-27 01:10:15 -03:00
parent 10c83d4e5a
commit 1a7f5d706a
4 changed files with 223 additions and 163 deletions

View File

@@ -61,16 +61,34 @@ export default function EntityDetailPage() {
<h2 className="text-lg font-semibold text-slate-100">Scheduled Tasks</h2>
<ul className="mt-3 divide-y divide-slate-800 overflow-hidden rounded-xl border border-slate-800 bg-slate-900/70">
{tasks.map((task) => (
<li key={task.id} className="space-y-1 px-4 py-3">
<p className="font-medium text-slate-100">{task.name}</p>
<p className="text-sm text-slate-300">Schedule: {task.scheduleCron}</p>
<p className="text-sm text-slate-400">
<li
key={task.id}
className={`space-y-1 px-4 py-3 ${task.active ? '' : 'bg-slate-950/30 text-slate-500'}`}
>
<div className="flex items-center gap-2">
<p className={`font-medium ${task.active ? 'text-slate-100' : 'text-slate-400'}`}>
{task.name}
</p>
{!task.active && (
<span className="inline-flex rounded-full border border-amber-500/30 bg-amber-500/10 px-2 py-0.5 text-xs font-medium uppercase tracking-wide text-amber-200">
Inactive
</span>
)}
</div>
<p className={`text-sm ${task.active ? 'text-slate-300' : 'text-slate-500'}`}>
Schedule: {task.scheduleCron}
</p>
<p className={`text-sm ${task.active ? 'text-slate-400' : 'text-slate-500'}`}>
Email context: {getEmailLookbackLabel(task.emailLookback)}
</p>
<div className="pt-2">
<Link
to={`/entities/${entityId}/tasks/${task.id}`}
className="inline-flex rounded-md border border-slate-700 px-3 py-1.5 text-sm text-slate-200 hover:border-cyan-500 hover:text-cyan-300"
className={`inline-flex rounded-md border px-3 py-1.5 text-sm ${
task.active
? 'border-slate-700 text-slate-200 hover:border-cyan-500 hover:text-cyan-300'
: 'border-slate-800 text-slate-400 hover:border-amber-500/60 hover:text-amber-200'
}`}
>
Details
</Link>