Give the onboarding window minimize/maximize/close controls
This commit is contained in:
1 parent
350333b284
commit
6f1ef18b25
2 files changed
+29
-3
No files matched your search
@@ -4,7 +4,7 @@ import {
|
||||
type AppSnapshot,
|
||||
type ProviderCatalogEntry,
|
||||
} from "../../../shared/domain";
|
||||
import { Button, Field, Icon, Pill } from "../shared/ui";
|
||||
import { Button, Field, Icon, IconButton, Pill } from "../shared/ui";
|
||||
import type { SnapshotActions } from "./useSnapshot";
|
||||
|
||||
type Step = "welcome" | "provider" | "company" | "mode" | "mission";
|
||||
@@ -65,6 +65,7 @@ export function Onboarding({
|
||||
const [submitting, setSubmitting] = useState(false);
|
||||
|
||||
const selectedProvider = requireProvider(availableProviders, draft.providerKey);
|
||||
const isMac = window.agentCompany.platform === "darwin";
|
||||
const update = (patch: Partial<Draft>) => setDraft((current) => ({ ...current, ...patch }));
|
||||
|
||||
const guard = (validator: () => string | null, next: Step) => () => {
|
||||
@@ -115,7 +116,17 @@ export function Onboarding({
|
||||
};
|
||||
|
||||
return (
|
||||
<main className="onboarding-shell">
|
||||
<>
|
||||
<header className="onboarding-titlebar">
|
||||
{!isMac && (
|
||||
<span className="window-controls">
|
||||
<IconButton icon="minus" label="Minimize" onClick={() => void window.agentCompany.windowMinimize()} />
|
||||
<IconButton icon="grid" label="Maximize" onClick={() => void window.agentCompany.windowMaximize()} />
|
||||
<IconButton icon="x" label="Close" onClick={() => void window.agentCompany.windowClose()} />
|
||||
</span>
|
||||
)}
|
||||
</header>
|
||||
<main className="onboarding-shell">
|
||||
<section className="onboarding-hero">
|
||||
<div>
|
||||
<div className="row" style={{ gap: 8 }}>
|
||||
@@ -184,7 +195,8 @@ export function Onboarding({
|
||||
)}
|
||||
{error && <div style={{ color: "var(--red)", marginTop: 14, fontSize: 12.5 }}>{error}</div>}
|
||||
</form>
|
||||
</main>
|
||||
</main>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,20 @@
|
||||
padding: 48px;
|
||||
background: var(--panel);
|
||||
}
|
||||
.onboarding-titlebar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 44px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
padding: 0 12px;
|
||||
-webkit-app-region: drag;
|
||||
z-index: 20;
|
||||
}
|
||||
.onboarding-titlebar .window-controls { -webkit-app-region: no-drag; }
|
||||
.onboarding-steps { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 28px; }
|
||||
.step-chip {
|
||||
height: 24px;
|
||||
|
||||
Reference in new issue
Block a user