Dala.List (dala v0.3.2)

Copy Markdown View Source

Public API for list operations.

This module delegates to Dala.Ui.List for list-related functionality.

Summary

Functions

The default item renderer.

Walk a render tree and expand all type: :list nodes into lazy_list nodes.

Register a custom item renderer for a list.

Functions

default_renderer(item)

@spec default_renderer(term()) :: map()

The default item renderer.

Handles binaries, maps with :label/:text, and falls back to inspect/1 for anything else.

expand(node, renderers, pid)

@spec expand(map(), map(), pid()) :: map()

Walk a render tree and expand all type: :list nodes into lazy_list nodes.

Called internally by Dala.Screen before passing the tree to Dala.Ui.Renderer. renderers is the list_renderers map from socket.__dala__. pid is the screen process (used as the tap target for row-select events).

put_renderer(socket, id, renderer)

@spec put_renderer(Dala.Socket.t(), atom(), (term() -> map())) :: Dala.Socket.t()

Register a custom item renderer for a list.

id must match the :id prop on the type: :list node. renderer is a 1-arity function that receives one item and returns a node map.

Call this from mount/3 or handle_info/2 — it is stored in socket.__dala__ and picked up at render time.