lib/live_view_native_swift_ui/types/presentation_detent.ex
defmodule LiveViewNativeSwiftUi.Types.PresentationDetent do
@derive Jason.Encoder
defstruct [:type, :value]
use LiveViewNativePlatform.Modifier.Type
def type, do: :map
def cast(value) when value in [:large, :medium], do: {:ok, %__MODULE__{type: value, value: nil}}
def cast({type, value}) when type in [:fraction, :height] and is_number(value),
do: {:ok, %__MODULE__{type: type, value: value}}
def cast(_), do: :error
end