"use client"; import { TextInput } from "@/components/ui/TextInput/TextInput"; import type { DateScreenDefinition } from "@/lib/funnel/types"; import type { BuilderScreen } from "@/lib/admin/builder/types"; interface DateScreenConfigProps { screen: BuilderScreen & { template: "date" }; onUpdate: (updates: Partial) => void; } export function DateScreenConfig({ screen, onUpdate }: DateScreenConfigProps) { const dateScreen = screen as DateScreenDefinition; const handleDateInputChange = ( field: T, value: DateScreenDefinition["dateInput"][T] ) => { onUpdate({ dateInput: { ...dateScreen.dateInput, [field]: value, }, }); }; const handleZodiacSettingsChange = ( updates: Partial> ) => { const currentZodiac = dateScreen.dateInput?.zodiac ?? { enabled: false, storageKey: "", }; const nextZodiac = { ...currentZodiac, ...updates, }; const shouldRemove = (nextZodiac.enabled ?? false) === false && (nextZodiac.storageKey ?? "") === ""; onUpdate({ dateInput: { ...dateScreen.dateInput, zodiac: shouldRemove ? undefined : nextZodiac, }, }); }; const handleInfoMessageChange = (field: "text" | "icon", value: string) => { const baseInfo = dateScreen.infoMessage ?? { text: "", icon: "ℹ️" }; const nextInfo = { ...baseInfo, [field]: value }; if (!nextInfo.text) { onUpdate({ infoMessage: undefined }); return; } onUpdate({ infoMessage: nextInfo }); }; return (

Поля ввода даты

Поведение поля

handleZodiacSettingsChange({ enabled: event.target.checked }) } /> Автоматически определять знак зодиака

Если включено, система вычислит знак зодиака по выбранной дате и сохранит его по указанному ключу. Значение можно использовать в правилах навигации и вариативности.

{dateScreen.dateInput?.zodiac?.enabled && ( )}

Информационный блок

{dateScreen.infoMessage && ( )}
); }