Skip to content

Commit 8cf662c

Browse files
committed
feat: add getting started card in org dashboard on smaller screens
1 parent 27df704 commit 8cf662c

File tree

1 file changed

+76
-50
lines changed

1 file changed

+76
-50
lines changed

lib/algora_web/live/org/dashboard_live.ex

Lines changed: 76 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,28 @@ defmodule AlgoraWeb.Org.DashboardLive do
335335
</div>
336336
</.section>
337337
338+
<div
339+
:if={length(@achievements) > 1}
340+
class="lg:hidden border ring-1 ring-transparent rounded-xl overflow-hidden"
341+
>
342+
<div class="bg-card/75 flex flex-col h-full p-4 rounded-xl border-t-4 sm:border-t-0 sm:border-l-4 border-emerald-400">
343+
<div class="p-4 sm:p-6">
344+
<.getting_started
345+
achievements={
346+
if incomplete?(@achievements, :complete_signin_status),
347+
do: @achievements |> Enum.take(1),
348+
else: @achievements
349+
}
350+
current_user={@current_user}
351+
current_org={@current_org}
352+
secret={@secret}
353+
login_form={@login_form}
354+
previewed_user={@previewed_user}
355+
/>
356+
</div>
357+
</div>
358+
</div>
359+
338360
<.section
339361
:if={@matches != []}
340362
title="Algora Matches"
@@ -517,7 +539,16 @@ defmodule AlgoraWeb.Org.DashboardLive do
517539
</.section>
518540
</div>
519541
</div>
520-
{sidebar(assigns)}
542+
<.sidebar
543+
achievements={@achievements}
544+
current_user={@current_user}
545+
current_org={@current_org}
546+
secret={@secret}
547+
login_form={@login_form}
548+
previewed_user={@previewed_user}
549+
show_chat={@show_chat}
550+
messages={@messages}
551+
/>
521552
{share_drawer(assigns)}
522553
"""
523554
end
@@ -996,12 +1027,7 @@ defmodule AlgoraWeb.Org.DashboardLive do
9961027

9971028
defp achievement_todo(%{achievement: %{id: :complete_signup_status}} = assigns) do
9981029
~H"""
999-
<.simple_form
1000-
:if={!@secret}
1001-
for={@login_form}
1002-
id="send_login_code_form"
1003-
phx-submit="send_login_code"
1004-
>
1030+
<.simple_form :if={!@secret} for={@login_form} phx-submit="send_login_code">
10051031
<.input
10061032
field={@login_form[:email]}
10071033
type="email"
@@ -1013,12 +1039,7 @@ defmodule AlgoraWeb.Org.DashboardLive do
10131039
Sign up
10141040
</.button>
10151041
</.simple_form>
1016-
<.simple_form
1017-
:if={@secret}
1018-
for={@login_form}
1019-
id="send_login_code_form"
1020-
phx-submit="send_login_code"
1021-
>
1042+
<.simple_form :if={@secret} for={@login_form} phx-submit="send_login_code">
10221043
<.input
10231044
field={@login_form[:login_code]}
10241045
type="text"
@@ -1035,12 +1056,7 @@ defmodule AlgoraWeb.Org.DashboardLive do
10351056

10361057
defp achievement_todo(%{achievement: %{id: :complete_signin_status}} = assigns) do
10371058
~H"""
1038-
<.simple_form
1039-
:if={!@secret}
1040-
for={@login_form}
1041-
id="send_login_code_form"
1042-
phx-submit="send_login_code"
1043-
>
1059+
<.simple_form :if={!@secret} for={@login_form} phx-submit="send_login_code">
10441060
<.input
10451061
field={@login_form[:email]}
10461062
type="email"
@@ -1052,12 +1068,7 @@ defmodule AlgoraWeb.Org.DashboardLive do
10521068
Sign in
10531069
</.button>
10541070
</.simple_form>
1055-
<.simple_form
1056-
:if={@secret}
1057-
for={@login_form}
1058-
id="send_login_code_form"
1059-
phx-submit="send_login_code"
1060-
>
1071+
<.simple_form :if={@secret} for={@login_form} phx-submit="send_login_code">
10611072
<.input
10621073
field={@login_form[:login_code]}
10631074
type="text"
@@ -1557,34 +1568,49 @@ defmodule AlgoraWeb.Org.DashboardLive do
15571568
"""
15581569
end
15591570

1571+
defp getting_started(assigns) do
1572+
~H"""
1573+
<div class={assigns[:class]}>
1574+
<h2 class="text-xl font-semibold leading-none tracking-tight">
1575+
<%= if @previewed_user != @current_org and incomplete?(@achievements, :complete_signin_status) do %>
1576+
Get back in
1577+
<% else %>
1578+
Getting started
1579+
<% end %>
1580+
</h2>
1581+
<nav class="pt-6">
1582+
<ol role="list" class="space-y-6">
1583+
<%= for achievement <- @achievements do %>
1584+
<li class="space-y-6">
1585+
<.achievement achievement={achievement} />
1586+
<.achievement_todo
1587+
achievement={achievement}
1588+
current_user={@current_user}
1589+
current_org={@current_org}
1590+
secret={@secret}
1591+
login_form={@login_form}
1592+
/>
1593+
</li>
1594+
<% end %>
1595+
</ol>
1596+
</nav>
1597+
</div>
1598+
"""
1599+
end
1600+
15601601
defp sidebar(assigns) do
15611602
~H"""
15621603
<aside class="scrollbar-thin fixed top-16 right-0 bottom-0 hidden w-96 h-full overflow-y-auto border-l border-border bg-background p-4 pt-6 sm:p-6 md:p-8 lg:flex lg:flex-col">
1563-
<div :if={length(@achievements) > 1} class="pb-12">
1564-
<h2 class="text-xl font-semibold leading-none tracking-tight">
1565-
<%= if @previewed_user != @current_org do %>
1566-
Get back in
1567-
<% else %>
1568-
Getting started
1569-
<% end %>
1570-
</h2>
1571-
<nav class="pt-6">
1572-
<ol role="list" class="space-y-6">
1573-
<%= for achievement <- @achievements do %>
1574-
<li class="space-y-6">
1575-
<.achievement achievement={achievement} />
1576-
<.achievement_todo
1577-
achievement={achievement}
1578-
current_user={@current_user}
1579-
current_org={@current_org}
1580-
secret={@secret}
1581-
login_form={@login_form}
1582-
/>
1583-
</li>
1584-
<% end %>
1585-
</ol>
1586-
</nav>
1587-
</div>
1604+
<.getting_started
1605+
:if={length(@achievements) > 1}
1606+
class="pb-12"
1607+
achievements={@achievements}
1608+
current_user={@current_user}
1609+
current_org={@current_org}
1610+
secret={@secret}
1611+
login_form={@login_form}
1612+
previewed_user={@previewed_user}
1613+
/>
15881614
<%= if @current_org.handle do %>
15891615
<div :if={not incomplete?(@achievements, :create_bounty_status)}>
15901616
<div class="flex items-center justify-between">

0 commit comments

Comments
 (0)