Ya, this is what I do.
I don’t have multiple directories for layouts since there is only one layout per different section but I have;
my_app_web/layouts/root.html.heex
my_app_web/layouts/public.html.heex
my_app_web/layouts/admin.html.heex
def live_view do
quote do
use Phoenix.LiveView,
layout: {GelaWeb.Layouts, :public}
unquote(html_helpers())
end
end
def admin_live_view do
quote do
use Phoenix.LiveView,
layout: {GelaWeb.Layouts, :admin}
unquote(html_helpers())
end
end
Then:
defmodule MyAppWeb.SomeAdminPage do
use MyAppWeb, :admin_live_view
end
You can do the same with the controller
helper.
I’m sure you can make this work with directories if you use a string instead of an atom.