- {event.imageUrl && !event.logoUrl ? (
+ {showBanner ? (
-

+
) : null}
- {event.logoUrl ?

: null}
-
-
{event.name}
- {event.subtitle ?
{event.subtitle}
: null}
-
-
{dateLine}
- {typeLabel ? (
- <>
-
- ·
-
-
{typeLabel}
- >
- ) : null}
-
- ·
-
-
{kind}
- {showLoc ? (
- <>
-
- ·
-
-
{event.location!.trim()}
- >
+ {showLogo ? (
+

+ ) : null}
+ {showTitle || showSubtitle || metaItems.length > 0 ? (
+
+ {showTitle ?
{event.name}
: null}
+ {showSubtitle ?
{event.subtitle}
: null}
+ {metaItems.length > 0 ? (
+
+ {metaItems.map((item, index) => (
+
+ {index > 0 ? (
+
+ ·
+
+ ) : null}
+ {item}
+
+ ))}
+
) : null}
-
+ ) : null}
);
}
diff --git a/src/styles/forms.css b/src/styles/forms.css
index 7a085d9..6588f3e 100644
--- a/src/styles/forms.css
+++ b/src/styles/forms.css
@@ -464,6 +464,18 @@
cursor: pointer;
}
+.form-success-message {
+ margin: 0;
+ padding: 12px 16px;
+ border-radius: 0.375rem;
+ background-color: #d1e7dd;
+ color: #198754;
+ font-weight: 700;
+ font-size: 0.95rem;
+ line-height: 1.5;
+ border: 1px solid #badbcc;
+}
+
.form-captcha-reload:disabled {
opacity: 0.6;
cursor: not-allowed;
diff --git a/src/types/index.ts b/src/types/index.ts
index c1c2e13..e914089 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -18,9 +18,11 @@ export interface FormField {
export interface PublicFormEventSummary {
name: string;
subtitle?: string;
+ description?: string;
eventType?: string;
startDate?: string | null;
endDate?: string | null;
+ date?: string;
location?: string;
locationType?: string;
logoUrl?: string | null;
@@ -39,6 +41,14 @@ export interface PublicFormDefinition {
showThankYou?: boolean;
collectEmail?: boolean;
allowAnonymous?: boolean;
+ eventHeader?: {
+ showLogo?: boolean;
+ showTitle?: boolean;
+ showDateRange?: boolean;
+ showEventType?: boolean;
+ showLocationType?: boolean;
+ showVenue?: boolean;
+ };
};
}
@@ -58,6 +68,7 @@ export interface MicrositeSpeaker {
export interface AgendaItem {
title?: string;
+ date?: string;
time?: string;
track?: string;
description?: string;
diff --git a/src/utils/formEventHeaderDisplay.ts b/src/utils/formEventHeaderDisplay.ts
new file mode 100644
index 0000000..848fa93
--- /dev/null
+++ b/src/utils/formEventHeaderDisplay.ts
@@ -0,0 +1,23 @@
+export interface FormEventHeaderDisplay {
+ showLogo?: boolean;
+ showTitle?: boolean;
+ showDateRange?: boolean;
+ showEventType?: boolean;
+ showLocationType?: boolean;
+ showVenue?: boolean;
+}
+
+export type ResolvedFormEventHeaderDisplay = Required
;
+
+export function resolveFormEventHeaderDisplay(
+ display?: FormEventHeaderDisplay | null,
+): ResolvedFormEventHeaderDisplay {
+ return {
+ showLogo: display?.showLogo !== false,
+ showTitle: display?.showTitle !== false,
+ showDateRange: display?.showDateRange !== false,
+ showEventType: display?.showEventType !== false,
+ showLocationType: display?.showLocationType !== false,
+ showVenue: display?.showVenue !== false,
+ };
+}