MishkaGervaz.Form.Web.DataLoader (MishkaGervaz v0.0.1-alpha.2)

Copy Markdown View Source

Handles async data loading for MishkaGervaz forms.

This module manages:

  • Loading records for edit mode
  • Creating new AshPhoenix.Form for create mode
  • Loading relation options for select fields
  • Async result handling

Sub-builders

DataLoader is composed of sub-builders that can be overridden:

  • RecordLoader - Loads/creates AshPhoenix.Form
  • TenantResolver - Resolves tenant and actions
  • RelationLoader - Loads options for relation fields
  • HookRunner - Executes lifecycle hooks

User Override

Override the entire data_loader module:

defmodule MyApp.Form.DataLoader do
  use MishkaGervaz.Form.Web.DataLoader

  def load_record(socket, state, record_id) do
    # Custom loading logic
    super(socket, state, record_id)
  end
end

Override specific sub-builders:

defmodule MyApp.Form.DataLoader do
  use MishkaGervaz.Form.Web.DataLoader,
    record: MyApp.Form.RecordLoader,
    relation: MyApp.Form.RelationLoader
end

Summary

Functions

See MishkaGervaz.Form.Web.DataLoader.Default.load_record/3.

See MishkaGervaz.Form.Web.DataLoader.Default.load_relation_options/3.

See MishkaGervaz.Form.Web.DataLoader.Default.new_record/2.

See MishkaGervaz.Form.Web.DataLoader.Default.search_relation_options/4.

Functions

load_record(socket, state, record_id)

See MishkaGervaz.Form.Web.DataLoader.Default.load_record/3.

load_relation_options(socket, state, field_name)

See MishkaGervaz.Form.Web.DataLoader.Default.load_relation_options/3.

new_record(socket, state)

See MishkaGervaz.Form.Web.DataLoader.Default.new_record/2.

search_relation_options(socket, state, field_name, search_term)

See MishkaGervaz.Form.Web.DataLoader.Default.search_relation_options/4.