Adopt shared WebUI layout primitives

This commit is contained in:
2026-08-18 10:42:54 +02:00
parent 64bdc3dd6b
commit 25b4c0c2f6
3 changed files with 8 additions and 12 deletions
@@ -14,7 +14,7 @@ import {
Send, Send,
XCircle XCircle
} from "lucide-react"; } from "lucide-react";
import { import { ContentGrid, FormGrid,
ActionBlockerHint, ActionBlockerHint,
Button, Button,
Card, Card,
@@ -994,7 +994,7 @@ export default function SchedulingPage({ settings, auth }: { settings: ApiSettin
void persistDraft(); void persistDraft();
}}> }}>
<Card title={I18N.basicInformation}> <Card title={I18N.basicInformation}>
<div className="form-grid"> <FormGrid columns={1} collapseAt="standard" className="">
<FormField label={I18N.title}> <FormField label={I18N.title}>
<input required maxLength={500} value={title} onChange={(event) => changeDraft(setTitle, event.target.value)} /> <input required maxLength={500} value={title} onChange={(event) => changeDraft(setTitle, event.target.value)} />
</FormField> </FormField>
@@ -1004,7 +1004,7 @@ export default function SchedulingPage({ settings, auth }: { settings: ApiSettin
<FormField label={I18N.location}> <FormField label={I18N.location}>
<input maxLength={500} value={location} onChange={(event) => changeDraft(setLocation, event.target.value)} /> <input maxLength={500} value={location} onChange={(event) => changeDraft(setLocation, event.target.value)} />
</FormField> </FormField>
</div> </FormGrid>
</Card> </Card>
<Card title={I18N.calendarIntegration}> <Card title={I18N.calendarIntegration}>
@@ -1609,7 +1609,7 @@ function SchedulingSettings({
}) { }) {
return ( return (
<Card title={I18N.generalSettings}> <Card title={I18N.generalSettings}>
<div className="settings-grid"> <ContentGrid columns={2} collapseAt="workspace" className="">
<ToggleSwitch <ToggleSwitch
label={I18N.notifyOnAnswers} label={I18N.notifyOnAnswers}
help={I18N.notifyOnAnswersHelp} help={I18N.notifyOnAnswersHelp}
@@ -1677,7 +1677,7 @@ function SchedulingSettings({
onValueChange={(value) => onChange("anonymousPassword", value)} /> onValueChange={(value) => onChange("anonymousPassword", value)} />
</FormField> </FormField>
</div> </div>
</div> </ContentGrid>
{policyLocked ? ( {policyLocked ? (
<DismissibleAlert tone="info" dismissible={false} compact> <DismissibleAlert tone="info" dismissible={false} compact>
{I18N.policyLocked} {I18N.policyLocked}
@@ -1,6 +1,6 @@
import { useEffect, useMemo, useState, type FormEvent } from "react"; import { useEffect, useMemo, useState, type FormEvent } from "react";
import { Link, useParams } from "react-router"; import { Link, useParams } from "react-router";
import { import { FormGrid,
Button, Button,
Card, Card,
DismissibleAlert, DismissibleAlert,
@@ -181,7 +181,7 @@ export default function SchedulingPublicPage({ settings, auth }: SchedulingPubli
<form className="scheduling-public-access-form" onSubmit={openRequest}> <form className="scheduling-public-access-form" onSubmit={openRequest}>
<p className="muted">{I18N.accessHelp}</p> <p className="muted">{I18N.accessHelp}</p>
{accessAttempted && error && <DismissibleAlert tone="danger">{error}</DismissibleAlert>} {accessAttempted && error && <DismissibleAlert tone="danger">{error}</DismissibleAlert>}
<div className="form-grid two-col"> <FormGrid columns={2} collapseAt="standard" className="">
<FormField label={I18N.email}> <FormField label={I18N.email}>
<input <input
type="email" type="email"
@@ -196,7 +196,7 @@ export default function SchedulingPublicPage({ settings, auth }: SchedulingPubli
value={password} value={password}
onValueChange={setPassword} /> onValueChange={setPassword} />
</FormField> </FormField>
</div> </FormGrid>
<div className="scheduling-public-actions"> <div className="scheduling-public-actions">
<Button <Button
type="submit" type="submit"
-4
View File
@@ -102,10 +102,6 @@
padding-top: 12px; padding-top: 12px;
} }
.scheduling-public-page .form-grid.two-col {
grid-template-columns: 1fr;
}
.scheduling-public-summary { .scheduling-public-summary {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }