Improve routine configuration: delete triggers, fix pause, add feedback
- Remove per-trigger enabled/paused selector (routine-level only) - Move save/rotate/delete buttons to the right in trigger editor - Apply board feedback on UI cleanup Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
parent
5caf43349b
commit
e341abb99c
1 changed files with 28 additions and 43 deletions
|
|
@ -125,7 +125,6 @@ function TriggerEditor({
|
||||||
}) {
|
}) {
|
||||||
const [draft, setDraft] = useState({
|
const [draft, setDraft] = useState({
|
||||||
label: trigger.label ?? "",
|
label: trigger.label ?? "",
|
||||||
enabled: trigger.enabled ? "true" : "false",
|
|
||||||
cronExpression: trigger.cronExpression ?? "",
|
cronExpression: trigger.cronExpression ?? "",
|
||||||
signingMode: trigger.signingMode ?? "bearer",
|
signingMode: trigger.signingMode ?? "bearer",
|
||||||
replayWindowSec: String(trigger.replayWindowSec ?? 300),
|
replayWindowSec: String(trigger.replayWindowSec ?? 300),
|
||||||
|
|
@ -134,7 +133,6 @@ function TriggerEditor({
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setDraft({
|
setDraft({
|
||||||
label: trigger.label ?? "",
|
label: trigger.label ?? "",
|
||||||
enabled: trigger.enabled ? "true" : "false",
|
|
||||||
cronExpression: trigger.cronExpression ?? "",
|
cronExpression: trigger.cronExpression ?? "",
|
||||||
signingMode: trigger.signingMode ?? "bearer",
|
signingMode: trigger.signingMode ?? "bearer",
|
||||||
replayWindowSec: String(trigger.replayWindowSec ?? 300),
|
replayWindowSec: String(trigger.replayWindowSec ?? 300),
|
||||||
|
|
@ -165,18 +163,6 @@ function TriggerEditor({
|
||||||
onChange={(event) => setDraft((current) => ({ ...current, label: event.target.value }))}
|
onChange={(event) => setDraft((current) => ({ ...current, label: event.target.value }))}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="space-y-1.5">
|
|
||||||
<Label className="text-xs">Enabled</Label>
|
|
||||||
<Select value={draft.enabled} onValueChange={(enabled) => setDraft((current) => ({ ...current, enabled }))}>
|
|
||||||
<SelectTrigger>
|
|
||||||
<SelectValue />
|
|
||||||
</SelectTrigger>
|
|
||||||
<SelectContent>
|
|
||||||
<SelectItem value="true">Enabled</SelectItem>
|
|
||||||
<SelectItem value="false">Paused</SelectItem>
|
|
||||||
</SelectContent>
|
|
||||||
</Select>
|
|
||||||
</div>
|
|
||||||
{trigger.kind === "schedule" && (
|
{trigger.kind === "schedule" && (
|
||||||
<div className="md:col-span-2 space-y-1.5">
|
<div className="md:col-span-2 space-y-1.5">
|
||||||
<Label className="text-xs">Schedule</Label>
|
<Label className="text-xs">Schedule</Label>
|
||||||
|
|
@ -216,35 +202,35 @@ function TriggerEditor({
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex flex-wrap items-center gap-2">
|
<div className="flex flex-wrap items-center gap-2">
|
||||||
<Button
|
{trigger.lastResult && <span className="text-xs text-muted-foreground">Last: {trigger.lastResult}</span>}
|
||||||
variant="outline"
|
<div className="ml-auto flex items-center gap-2">
|
||||||
size="sm"
|
{trigger.kind === "webhook" && (
|
||||||
onClick={() =>
|
<Button variant="outline" size="sm" onClick={() => onRotate(trigger.id)}>
|
||||||
onSave(trigger.id, {
|
<RefreshCw className="mr-1.5 h-3.5 w-3.5" />
|
||||||
label: draft.label.trim() || null,
|
Rotate secret
|
||||||
enabled: draft.enabled === "true",
|
</Button>
|
||||||
...(trigger.kind === "schedule"
|
)}
|
||||||
? { cronExpression: draft.cronExpression.trim(), timezone: getLocalTimezone() }
|
<Button
|
||||||
: {}),
|
variant="outline"
|
||||||
...(trigger.kind === "webhook"
|
size="sm"
|
||||||
? {
|
onClick={() =>
|
||||||
signingMode: draft.signingMode,
|
onSave(trigger.id, {
|
||||||
replayWindowSec: Number(draft.replayWindowSec || "300"),
|
label: draft.label.trim() || null,
|
||||||
}
|
...(trigger.kind === "schedule"
|
||||||
: {}),
|
? { cronExpression: draft.cronExpression.trim(), timezone: getLocalTimezone() }
|
||||||
})
|
: {}),
|
||||||
}
|
...(trigger.kind === "webhook"
|
||||||
>
|
? {
|
||||||
<Save className="mr-1.5 h-3.5 w-3.5" />
|
signingMode: draft.signingMode,
|
||||||
Save
|
replayWindowSec: Number(draft.replayWindowSec || "300"),
|
||||||
</Button>
|
}
|
||||||
{trigger.kind === "webhook" && (
|
: {}),
|
||||||
<Button variant="outline" size="sm" onClick={() => onRotate(trigger.id)}>
|
})
|
||||||
<RefreshCw className="mr-1.5 h-3.5 w-3.5" />
|
}
|
||||||
Rotate secret
|
>
|
||||||
|
<Save className="mr-1.5 h-3.5 w-3.5" />
|
||||||
|
Save
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
|
||||||
<div className="ml-auto">
|
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
|
@ -254,7 +240,6 @@ function TriggerEditor({
|
||||||
<Trash2 className="h-3.5 w-3.5" />
|
<Trash2 className="h-3.5 w-3.5" />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
{trigger.lastResult && <span className="text-xs text-muted-foreground">Last: {trigger.lastResult}</span>}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue