defmodule ChesstrainerWeb.Board.BoardComponent do @moduledoc """ Chess board component """ use Phoenix.Component import ChesstrainerWeb.Board.SquareComponent attr :game, :map, required: true attr :myself, :any, required: true def board(assigns) do files_list = [:a, :b, :c, :d, :e, :f, :g, :h] assigns = assigns |> assign(:files_list, files_list) |> assign( :files, case assigns.game.orientation do :white -> files_list :black -> Enum.reverse(files_list) end ) |> assign( :ranks, case assigns.game.orientation do :white -> Enum.reverse(1..8) :black -> 1..8 end ) ~H"""