fix(webui): align automation settings layout

Maintainer edit: reuse the same standalone SettingsView shell as Apps and Skills for Automations while keeping the automation queue height constrained.
This commit is contained in:
chengyongru
2026-06-16 16:31:24 +08:00
parent e9f982785e
commit 2b741ad4e5
+10 -24
View File
@@ -1675,9 +1675,9 @@ export function SettingsView({
<div <div
className={cn( className={cn(
"flex min-h-0 flex-1 flex-col overflow-hidden md:flex-row", "flex min-h-0 flex-1 flex-col overflow-hidden md:flex-row",
activeSection === "automations" showSidebar
? "bg-background" ? "bg-[radial-gradient(circle_at_50%_0%,hsl(var(--muted))_0%,hsl(var(--background))_42%)]"
: "bg-[radial-gradient(circle_at_50%_0%,hsl(var(--muted))_0%,hsl(var(--background))_42%)]", : "bg-background",
)} )}
> >
{showSidebar ? ( {showSidebar ? (
@@ -1719,22 +1719,14 @@ export function SettingsView({
onSave={handleAutomationEdit} onSave={handleAutomationEdit}
/> />
<main <main className="min-w-0 flex-1 overflow-y-auto [scrollbar-gutter:stable]">
className={cn(
"min-w-0 flex-1 [scrollbar-gutter:stable]",
activeSection === "automations" ? "overflow-y-auto xl:overflow-hidden" : "overflow-y-auto",
)}
>
<div <div
className={cn( className={cn(
"mx-auto w-full px-4 py-6 sm:px-8 sm:py-8 lg:py-12", "mx-auto w-full max-w-[920px] px-4 py-6 sm:px-8 sm:py-8 lg:py-12",
activeSection === "automations"
? "xl:flex xl:h-full xl:max-w-[70rem] xl:flex-col xl:overflow-hidden xl:py-6"
: "max-w-[920px]",
hostChromeInset && "pt-[4.25rem] sm:pt-[4.25rem] lg:pt-[4.75rem]", hostChromeInset && "pt-[4.25rem] sm:pt-[4.25rem] lg:pt-[4.75rem]",
)} )}
> >
<div className={cn("mb-7", activeSection === "automations" && "xl:mb-4")}> <div className="mb-7">
{!showSidebar ? ( {!showSidebar ? (
<button <button
type="button" type="button"
@@ -1767,13 +1759,7 @@ export function SettingsView({
</SettingsRow> </SettingsRow>
</SettingsGroup> </SettingsGroup>
) : settings ? ( ) : settings ? (
<div <div className="space-y-5">
className={cn(
"space-y-5",
activeSection === "automations" &&
"xl:flex xl:min-h-0 xl:flex-1 xl:flex-col xl:gap-3 xl:space-y-0 xl:overflow-hidden",
)}
>
{error ? ( {error ? (
<div className="rounded-[18px] border border-destructive/20 bg-destructive/5 px-4 py-3 text-[13px] text-destructive"> <div className="rounded-[18px] border border-destructive/20 bg-destructive/5 px-4 py-3 text-[13px] text-destructive">
{error} {error}
@@ -3496,7 +3482,7 @@ function AutomationsSettings({
}, [filtered, selectedJobId]); }, [filtered, selectedJobId]);
return ( return (
<div className="flex min-h-0 flex-col gap-2 xl:flex-1 xl:overflow-hidden"> <div className="space-y-5">
<section className="shrink-0"> <section className="shrink-0">
<div className="mx-auto flex w-full max-w-[56rem] flex-col gap-3"> <div className="mx-auto flex w-full max-w-[56rem] flex-col gap-3">
<div className="-mx-1 overflow-x-auto px-1 pb-0.5"> <div className="-mx-1 overflow-x-auto px-1 pb-0.5">
@@ -3571,7 +3557,7 @@ function AutomationsSettings({
{tx("settings.automations.loading", "Loading automations...")} {tx("settings.automations.loading", "Loading automations...")}
</div> </div>
) : filtered.length && selectedJob ? ( ) : filtered.length && selectedJob ? (
<section className="grid min-h-0 overflow-hidden rounded-[22px] border border-border/45 bg-transparent shadow-none dark:border-white/10 xl:flex-1 xl:grid-cols-[minmax(16rem,18rem)_minmax(0,1fr)] xl:items-stretch"> <section className="grid min-h-0 overflow-hidden rounded-[22px] border border-border/45 bg-transparent shadow-none dark:border-white/10 xl:grid-cols-[minmax(16rem,18rem)_minmax(0,1fr)] xl:items-stretch">
<aside className="flex min-h-0 flex-col overflow-hidden border-b border-border/35 bg-background/36 dark:border-white/10 dark:bg-background/18 xl:border-b-0 xl:border-r"> <aside className="flex min-h-0 flex-col overflow-hidden border-b border-border/35 bg-background/36 dark:border-white/10 dark:bg-background/18 xl:border-b-0 xl:border-r">
<div className="flex shrink-0 items-center justify-between gap-3 px-4 py-3"> <div className="flex shrink-0 items-center justify-between gap-3 px-4 py-3">
<h2 className="text-[13px] font-semibold tracking-[-0.01em] text-foreground/85"> <h2 className="text-[13px] font-semibold tracking-[-0.01em] text-foreground/85">
@@ -3582,7 +3568,7 @@ function AutomationsSettings({
</span> </span>
</div> </div>
<div <div
className="max-h-[22rem] space-y-1 overflow-y-auto overscroll-contain px-2 pb-2 xl:max-h-none xl:min-h-0 xl:flex-1" className="max-h-[28rem] space-y-1 overflow-y-auto overscroll-contain px-2 pb-2 xl:max-h-[calc(100vh-24rem)]"
role="list" role="list"
aria-label={tx("settings.automations.queue", "Queue")} aria-label={tx("settings.automations.queue", "Queue")}
> >