mirror of
https://github.com/danbee/chess
synced 2025-03-04 08:39:06 +00:00
40 lines
788 B
Elixir
40 lines
788 B
Elixir
defmodule ChessWeb.SquareView do
|
|
use ChessWeb, :view
|
|
|
|
def classes(_file, _rank, piece, selected, available) do
|
|
square_class()
|
|
|> add_piece_classes(piece)
|
|
|> add_selected_class(selected)
|
|
|> add_available_class(available)
|
|
|> Enum.join(" ")
|
|
end
|
|
|
|
defp square_class do
|
|
["square"]
|
|
end
|
|
|
|
defp add_piece_classes(classes, piece) do
|
|
if piece != nil do
|
|
classes ++ ["square--#{piece["type"]}", "square--#{piece["colour"]}"]
|
|
else
|
|
classes
|
|
end
|
|
end
|
|
|
|
defp add_selected_class(classes, selected) do
|
|
if selected do
|
|
classes ++ ["square--selected"]
|
|
else
|
|
classes
|
|
end
|
|
end
|
|
|
|
defp add_available_class(classes, available) do
|
|
if available do
|
|
classes ++ ["square--available"]
|
|
else
|
|
classes
|
|
end
|
|
end
|
|
end
|