Skip to content

Instantly share code, notes, and snippets.

@ThaddeusJiang
Last active January 10, 2022 02:46
Show Gist options
  • Save ThaddeusJiang/9c3114184b2de9f381da82e6b5b99262 to your computer and use it in GitHub Desktop.
Save ThaddeusJiang/9c3114184b2de9f381da82e6b5b99262 to your computer and use it in GitHub Desktop.
Phoenix Framework KnowHow

UI 検索リセット動作の統一化

:index にリダイレクト、例:<%= live_redirect "リセット" to: Routes.item_approval_index_path(DmClusterWeb.Endpoint, :index) %>

UI ページネーションの動作の統一化

page と page_size が query param に定義されて、例:?page=1&page_size=10

UI 検索時はURLパラメータを残すか?

はい、URLパラメータを残す。

UI バリデーションメッセージ(項目毎など)のデザインが未確定

更新とサブミット両方 <.form let={f} for={@changeset} phx-change="validate" phx-submit="save">

UI 正常系メッセージの出力タイミング

動作完了後。

例:

{:ok, _item_approvals} ->
        {:noreply,
         socket
         |> put_flash(:info, "Item approvals updated successfully")
         |> push_redirect(to: socket.assigns.return_to)}

検索結果のソート

講師日時 desc

order by updated_at desc;

Alpine.js と LiveView の使い分け

方針:Server と連携が必要な部分は LiveView にする、UI(表示系)だけな部分は Alpine.js を利用する。

具体的な例:

  • 一覧画面: image
  • フォーム画面: CleanShot 2021-12-14 at 09 18 29@2x
  • 通知一覧、ユーザーメニューなどは Alpine.js
  • 作成、更新モーダルは LiveView
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment