diff --git a/example_project/lib/example/application.ex b/example_project/lib/example/application.ex index 250377d..150d22d 100644 --- a/example_project/lib/example/application.ex +++ b/example_project/lib/example/application.ex @@ -1,39 +1,39 @@ -defmodule Example.Application do - # See https://hexdocs.pm/elixir/Application.html - # for more information on OTP Applications - @moduledoc false - - use Application - - @impl true - def start(_type, _args) do - children = [ - {NodeJS.Supervisor, [path: LiveSvelte.SSR.server_path(), pool_size: 4]}, - # Start the Telemetry supervisor - ExampleWeb.Telemetry, - # Start the Ecto repository - Example.Repo, - # Start the PubSub system - {Phoenix.PubSub, name: Example.PubSub}, - # Start Finch - {Finch, name: Example.Finch}, - # Start the Endpoint (http/https) - ExampleWeb.Endpoint - # Start a worker by calling: Example.Worker.start_link(arg) - # {Example.Worker, arg} - ] - - # See https://hexdocs.pm/elixir/Supervisor.html - # for other strategies and supported options - opts = [strategy: :one_for_one, name: Example.Supervisor] - Supervisor.start_link(children, opts) - end - - # Tell Phoenix to update the endpoint configuration - # whenever the application is updated. - @impl true - def config_change(changed, _new, removed) do - ExampleWeb.Endpoint.config_change(changed, removed) - :ok - end -end +defmodule Example.Application do + # See https://hexdocs.pm/elixir/Application.html + # for more information on OTP Applications + @moduledoc false + + use Application + + @impl true + def start(_type, _args) do + children = [ + {NodeJS.Supervisor, [path: LiveSvelte.SSR.server_path(), pool_size: 4]}, + # Start the Telemetry supervisor + ExampleWeb.Telemetry, + # Start the Ecto repository + Example.Repo, + # Start the PubSub system + {Phoenix.PubSub, name: Example.PubSub}, + # Start Finch + {Finch, name: Example.Finch}, + # Start the Endpoint (http/https) + ExampleWeb.Endpoint + # Start a worker by calling: Example.Worker.start_link(arg) + # {Example.Worker, arg} + ] + + # See https://hexdocs.pm/elixir/Supervisor.html + # for other strategies and supported options + opts = [strategy: :one_for_one, name: Example.Supervisor] + Supervisor.start_link(children, opts) + end + + # Tell Phoenix to update the endpoint configuration + # whenever the application is updated. + @impl true + def config_change(changed, _new, removed) do + ExampleWeb.Endpoint.config_change(changed, removed) + :ok + end +end diff --git a/example_project/lib/example_web/components/layouts/app.html.heex b/example_project/lib/example_web/components/layouts/app.html.heex index e5bcd5d..db5a16f 100644 --- a/example_project/lib/example_web/components/layouts/app.html.heex +++ b/example_project/lib/example_web/components/layouts/app.html.heex @@ -1,103 +1,118 @@ -
-
-
- - - -

- LiveSvelte Examples -

-
- - -
-
-
- <%= @inner_content %> -
+
+
+
+ + + + +

+ LiveSvelte Examples +

+
+ + + + +
+
+ +
+ <%= @inner_content %> +
diff --git a/example_project/lib/example_web/router.ex b/example_project/lib/example_web/router.ex index 3853237..ca469ca 100644 --- a/example_project/lib/example_web/router.ex +++ b/example_project/lib/example_web/router.ex @@ -1,56 +1,56 @@ -defmodule ExampleWeb.Router do - use ExampleWeb, :router - - pipeline :browser do - plug :accepts, ["html"] - plug :fetch_session - plug :fetch_live_flash - plug :put_root_layout, {ExampleWeb.Layouts, :root} - plug :protect_from_forgery - plug :put_secure_browser_headers - end - - pipeline :api do - plug :accepts, ["json"] - end - - scope "/", ExampleWeb do - pipe_through :browser - - get "/", PageController, :home - get "/simple", PageController, :svelte_1 - get "/plus-minus-svelte", PageController, :svelte_2 - get "/lodash", PageController, :svelte_3 - live "/plus-minus-liveview", LiveExample1 - live "/counter", LiveExample2 - live "/plus-minus-hybrid", LiveExample3 - live "/log-list", LiveExample4 - live "/breaking-news", LiveExample5 - live "/chat", LiveExample6 - live "/lights", LiveLights - live "/struct", LiveStruct - live "/sigil", LiveSigil - end - - # Other scopes may use custom stacks. - # scope "/api", ExampleWeb do - # pipe_through :api - # end - - # Enable LiveDashboard and Swoosh mailbox preview in development - if Application.compile_env(:example, :dev_routes) do - # If you want to use the LiveDashboard in production, you should put - # it behind authentication and allow only admins to access it. - # If your application does not have an admins-only section yet, - # you can use Plug.BasicAuth to set up some basic authentication - # as long as you are also using SSL (which you should anyway). - import Phoenix.LiveDashboard.Router - - scope "/dev" do - pipe_through :browser - - live_dashboard "/dashboard", metrics: ExampleWeb.Telemetry - forward "/mailbox", Plug.Swoosh.MailboxPreview - end - end -end +defmodule ExampleWeb.Router do + use ExampleWeb, :router + + pipeline :browser do + plug :accepts, ["html"] + plug :fetch_session + plug :fetch_live_flash + plug :put_root_layout, {ExampleWeb.Layouts, :root} + plug :protect_from_forgery + plug :put_secure_browser_headers + end + + pipeline :api do + plug :accepts, ["json"] + end + + scope "/", ExampleWeb do + pipe_through :browser + + get "/", PageController, :home + get "/simple", PageController, :svelte_1 + get "/plus-minus-svelte", PageController, :svelte_2 + get "/lodash", PageController, :svelte_3 + live "/plus-minus-liveview", LiveExample1 + live "/counter", LiveExample2 + live "/plus-minus-hybrid", LiveExample3 + live "/log-list", LiveExample4 + live "/breaking-news", LiveExample5 + live "/chat", LiveExample6 + live "/lights", LiveLights + live "/struct", LiveStruct + live "/sigil", LiveSigil + end + + # Other scopes may use custom stacks. + # scope "/api", ExampleWeb do + # pipe_through :api + # end + + # Enable LiveDashboard and Swoosh mailbox preview in development + if Application.compile_env(:example, :dev_routes) do + # If you want to use the LiveDashboard in production, you should put + # it behind authentication and allow only admins to access it. + # If your application does not have an admins-only section yet, + # you can use Plug.BasicAuth to set up some basic authentication + # as long as you are also using SSL (which you should anyway). + import Phoenix.LiveDashboard.Router + + scope "/dev" do + pipe_through :browser + + live_dashboard "/dashboard", metrics: ExampleWeb.Telemetry + forward "/mailbox", Plug.Swoosh.MailboxPreview + end + end +end