Skip to content

[LLV] Kanban demo#634

Open
mat-hek wants to merge 7 commits into
mainfrom
mf/llv-kanban
Open

[LLV] Kanban demo#634
mat-hek wants to merge 7 commits into
mainfrom
mf/llv-kanban

Conversation

@mat-hek

@mat-hek mat-hek commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Demo showcasing simple forms, modals, and drag&drop with LLV. Server sync will come in another PR.

Other changes:

  • Support for mouse and drag JS events in LLV - I'm not sure if it's the best way
  • Support for phx-target for live components - again, not sure if this is how it should be done
  • Clone objects received from Popcorn - fixes a weird bug when a diff wouldn't render
  • Fix maps:take return value - found accidentally, didn't break anything so far AFAIK

@mat-hek mat-hek changed the title Mf/llv kanban [LLV] Kanban demo Jun 8, 2026
@mat-hek mat-hek requested a review from FranekKubis June 8, 2026 12:41
return;
}
view.update(diff, []);
// The diff is delivered from the Popcorn WASM iframe via run_js, so its

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the 'realm problem' a problem for every time when we want to deliver an array over a popcorns run_js?
Shouldn't the solution be handled on the "realm-border" as a part of popcorn functionality?

end
end

defp component_handle_event_call(_component_socket, _component, "lv:" <> _ = bad_event, _val) do

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems similar to view_handle_event function - maybe we can refactor this to DRY up the code.

end
end

defp component_handle_event_call(component_socket, _component, "lv:clear-flash", val) do

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems similar to view_handle_event function - maybe we can refactor this to DRY up the code.

@spec start_link([option]) :: GenServer.on_start()
def start_link(opts \\ []) do
opts = Keyword.validate!(opts, dirs: [Path.absname("local")])
opts = Keyword.validate!(opts, dirs: [Path.absname("local/lib")])

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of this change?
Also we need to keep in mind this will influence other examples.

<div
phx-dragover="drag_over_column"
phx-value-column_id={@col.id}
style={"flex:0 0 280px;background:#1f2937;border:1px solid #{if @dragging, do: "#4b6bb3", else: "#374151"};border-radius:8px;padding:0.75em;display:flex;flex-direction:column;gap:0.6em"}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me inline-style'ing is suboptimal when it comes to readability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants