Skip to content

Commit 72a466a

Browse files
committed
Consolidate heex files into ex files
Following the Phoenix standards
1 parent e682e32 commit 72a466a

6 files changed

+191
-173
lines changed

lib/mjw_web/live/game_live/game_menu_component.ex

+91
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,97 @@
11
defmodule MjwWeb.GameLive.GameMenuComponent do
22
use MjwWeb, :live_component
33

4+
@impl true
5+
def render(assigns) do
6+
~H"""
7+
<div id={@id} class="phx-modal relative" phx-target="#game" phx-click="closegamemenu">
8+
<div class="gamemenu-content">
9+
<%= if @player_seats_finalized do %>
10+
<div
11+
phx-target="#game"
12+
phx-click="draw"
13+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4"
14+
>
15+
Declare draw 🤝
16+
</div>
17+
18+
<div id="dqs" phx-hook="DeclareDq" phx-click="">
19+
<div
20+
id="declare-dq-btn"
21+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4"
22+
>
23+
Declare DQ 🙅🏻‍♀️
24+
</div>
25+
26+
<div class="dqplayer opacity-30 bg-white text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-default my-4 hidden">
27+
Declare DQ 🙅🏻‍♀️
28+
</div>
29+
30+
<%= for seat <- @relative_game_seats |> Enum.drop(1) do %>
31+
<div
32+
class="dqplayer bg-red-600 hover:bg-red-500 text-gray-200 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4 hidden"
33+
phx-target="#game"
34+
phx-click="dq"
35+
phx-value-seatno={seat.seatno}
36+
>
37+
<%= seat.player_name %>
38+
</div>
39+
<% end %>
40+
</div>
41+
<% end %>
42+
43+
<%= if length(@relative_game_seats_with_players) > 1 do %>
44+
<div id="bootplayers" phx-hook="BootPlayer" phx-click="">
45+
<div
46+
id="boot-player-btn"
47+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4"
48+
>
49+
Boot player 🥾
50+
</div>
51+
52+
<div class="bootplayer opacity-30 bg-white text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-default my-4 hidden">
53+
Boot player 🥾
54+
</div>
55+
56+
<%= for seat <- @relative_game_seats_with_players |> Enum.drop(1) do %>
57+
<div
58+
class="bootplayer bg-red-600 hover:bg-red-500 text-gray-200 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4 hidden"
59+
phx-target="#game"
60+
phx-click="bootplayer"
61+
phx-value-seatno={seat.seatno}
62+
>
63+
<%= seat.player_name %>
64+
</div>
65+
<% end %>
66+
</div>
67+
<% end %>
68+
69+
<div
70+
phx-target={@myself}
71+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4"
72+
phx-click="quit"
73+
>
74+
Leave game
75+
</div>
76+
77+
<div
78+
phx-target="#game"
79+
phx-click="reset"
80+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow cursor-pointer my-4"
81+
>
82+
<div phx-target="#game" phx-click="reset">
83+
Reset game
84+
</div>
85+
</div>
86+
87+
<div phx-click="">
88+
<.invite_link id="invite-link-gamemenu" game_id={@game.id} game_state={@game_state} />
89+
</div>
90+
</div>
91+
</div>
92+
"""
93+
end
94+
495
@impl true
596
def update(assigns, socket) do
697
relative_game_seats_with_players =

lib/mjw_web/live/game_live/game_menu_component.html.heex

-85
This file was deleted.

lib/mjw_web/live/game_live/index.ex

+28
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,34 @@
11
defmodule MjwWeb.GameLive.Index do
22
use MjwWeb, :live_view
33

4+
@impl true
5+
def render(assigns) do
6+
~H"""
7+
<div class="lobby">
8+
<img src="/images/cursive.png" alt="Mahjong Wind" class="lobbytitle" />
9+
<.form for={%{}} action={~p"/games"}>
10+
<.button type="submit" class="new-game">Start a game</.button>
11+
</.form>
12+
13+
<div class="lobbygames">
14+
<%= unless Enum.empty?(@games) do %>
15+
<div class="pt-12 pb-10 text-xl font-semibold">or join a game in progress:</div>
16+
<%= for game <- @games do %>
17+
<.lobby_game game={game} />
18+
<% end %>
19+
<% end %>
20+
</div>
21+
</div>
22+
23+
<div class="footer">
24+
<span>Email:</span>
25+
<span class="pl-1">hello&#64;<span class="hidden">REMOVE</span>mahjongwind.com</span>
26+
<span class="pl-4">Twitter:</span>
27+
<span class="pl-1"><a href="https://www.twitter.com/m1foley">@m1foley</a></span>
28+
</div>
29+
"""
30+
end
31+
432
@impl true
533
def mount(_params, session, socket) do
634
socket =

lib/mjw_web/live/game_live/index.html.heex

-22
This file was deleted.

lib/mjw_web/live/game_live/win_menu_component.ex

+72
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,78 @@
11
defmodule MjwWeb.GameLive.WinMenuComponent do
22
use MjwWeb, :live_component
33

4+
@impl true
5+
def render(assigns) do
6+
~H"""
7+
<div id={@id}>
8+
<div id="winmenu-inner" phx-hook="Simpledrag">
9+
<%= if Mjw.Seat.confirmed_win?(@current_user_seat) do %>
10+
<div class="opacity-30 bg-white text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow cursor-default my-4">
11+
Waiting for everyone to shuffle... 👋
12+
</div>
13+
<% else %>
14+
<div
15+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow cursor-pointer my-4"
16+
phx-target="#game"
17+
phx-click="confirm_win"
18+
>
19+
Okay, let's start shuffling... 👋
20+
</div>
21+
<% end %>
22+
23+
<%= if Mjw.Seat.win_expose?(@current_user_seat) do %>
24+
<div class="bg-white text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow my-4 cursor-default opacity-30">
25+
Expose hand
26+
</div>
27+
<% else %>
28+
<div
29+
class="bg-white text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow my-4 cursor-pointer hover:bg-gray-100"
30+
phx-target="#game"
31+
phx-click="expose"
32+
>
33+
Expose hand
34+
</div>
35+
<% end %>
36+
37+
<%= if @showdeck do %>
38+
<div
39+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow cursor-pointer my-4"
40+
phx-target={@myself}
41+
phx-click="hidedeck"
42+
>
43+
Hide remaining deck
44+
</div>
45+
46+
<div class="flex flex-row flex-wrap text-left justify-start justify-items-start">
47+
<span class="pr-1 cursor-default" title="Next tile in the deck">&#8594;</span>
48+
<%= for tile <- @game.deck do %>
49+
<.tile id={tile} tile={tile} />
50+
<% end %>
51+
</div>
52+
<% else %>
53+
<div
54+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow cursor-pointer my-4"
55+
phx-target={@myself}
56+
phx-click="showdeck"
57+
>
58+
View remaining deck
59+
</div>
60+
<% end %>
61+
62+
<%= unless Mjw.Seat.declared_win?(@current_user_seat) do %>
63+
<div
64+
class="bg-white hover:bg-gray-100 text-gray-800 font-semibold py-1 px-8 border border-gray-400 rounded shadow cursor-pointer my-4"
65+
phx-target="#game"
66+
phx-click="dqdeclared"
67+
>
68+
Declare DQ 🙅🏻‍♀️
69+
</div>
70+
<% end %>
71+
</div>
72+
</div>
73+
"""
74+
end
75+
476
@impl true
577
def update(assigns, socket) do
678
socket =

lib/mjw_web/live/game_live/win_menu_component.html.heex

-66
This file was deleted.

0 commit comments

Comments
 (0)