diff --git a/core/src/Text.scala b/core/src/Text.scala index 950bb74..6d5a1be 100644 --- a/core/src/Text.scala +++ b/core/src/Text.scala @@ -45,6 +45,21 @@ def optDirect(text: String): Option[PlainMultiLine] = Text.nonEmpty(text) + given string2plainMultiline: Conversion[String, Option[PlainMultiLine]] with + def apply(text: String): Option[PlainMultiLine] = optDirect(text) + + given optString2PlainMultiline + : Conversion[Option[String], Option[PlainMultiLine]] with + def apply(text: Option[String]): Option[PlainMultiLine] = + text.flatMap(optDirect) + + given plainMultiLine2String: Conversion[PlainMultiLine, String] with + def apply(p: PlainMultiLine): String = p.toString + + given optionPlainMultiLine2OptionString + : Conversion[Option[PlainMultiLine], Option[String]] with + def apply(p: Option[PlainMultiLine]): Option[String] = p.map(_.toString) + extension (p: PlainMultiLine) def toString: String = p opaque type PlainOneLine = String diff --git a/core/src/Text.scala b/core/src/Text.scala index 950bb74..6d5a1be 100644 --- a/core/src/Text.scala +++ b/core/src/Text.scala @@ -45,6 +45,21 @@ def optDirect(text: String): Option[PlainMultiLine] = Text.nonEmpty(text) + given string2plainMultiline: Conversion[String, Option[PlainMultiLine]] with + def apply(text: String): Option[PlainMultiLine] = optDirect(text) + + given optString2PlainMultiline + : Conversion[Option[String], Option[PlainMultiLine]] with + def apply(text: Option[String]): Option[PlainMultiLine] = + text.flatMap(optDirect) + + given plainMultiLine2String: Conversion[PlainMultiLine, String] with + def apply(p: PlainMultiLine): String = p.toString + + given optionPlainMultiLine2OptionString + : Conversion[Option[PlainMultiLine], Option[String]] with + def apply(p: Option[PlainMultiLine]): Option[String] = p.map(_.toString) + extension (p: PlainMultiLine) def toString: String = p opaque type PlainOneLine = String diff --git a/ui/components/src/ui/components/tailwind/data_display/description_lists/LeftAlignedInCard.scala b/ui/components/src/ui/components/tailwind/data_display/description_lists/LeftAlignedInCard.scala index 37acc1d..cb405e9 100644 --- a/ui/components/src/ui/components/tailwind/data_display/description_lists/LeftAlignedInCard.scala +++ b/ui/components/src/ui/components/tailwind/data_display/description_lists/LeftAlignedInCard.scala @@ -10,6 +10,7 @@ import works.iterative.ui.components.tailwind.HtmlComponent import works.iterative.ui.components.tailwind.form.ActionButton +// TODO: drop UI string, use MessageId, use builder like FormBuilder case class LeftAlignedInCard[A]( title: String, subtitle: String,