Skip to content

Commit 7681f5d

Browse files
committed
misc improvements
1 parent 86e6e6e commit 7681f5d

File tree

1 file changed

+104
-77
lines changed

1 file changed

+104
-77
lines changed

lib/algora_web/live/org/dashboard_live.ex

Lines changed: 104 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ defmodule AlgoraWeb.Org.DashboardLive do
320320
title={"#{header_prefix(@current_org)} Contributors"}
321321
subtitle="Share bounties, tips or contract opportunities with your top contributors"
322322
>
323-
<div class="relative w-full overflow-auto max-h-[400px] scrollbar-thin">
323+
<div class="relative w-full overflow-auto max-h-[250px] scrollbar-thin">
324324
<table class="w-full caption-bottom text-sm">
325325
<tbody>
326326
<%= for %Contributor{user: user} <- @contributors do %>
@@ -344,9 +344,10 @@ defmodule AlgoraWeb.Org.DashboardLive do
344344
<.getting_started
345345
id="getting_started_main"
346346
achievements={
347-
if incomplete?(@achievements, :complete_signin_status),
348-
do: @achievements |> Enum.take(1),
349-
else: @achievements
347+
if incomplete?(@achievements, :complete_signin_status) or
348+
incomplete?(@achievements, :complete_signup_status),
349+
do: @achievements |> Enum.take(1),
350+
else: @achievements
350351
}
351352
current_user={@current_user}
352353
current_org={@current_org}
@@ -1295,86 +1296,107 @@ defmodule AlgoraWeb.Org.DashboardLive do
12951296
defp match_card(assigns) do
12961297
~H"""
12971298
<div class="relative flex flex-col xl:flex-row xl:items-center xl:justify-between gap-4 sm:gap-8 xl:gap-4 2xl:gap-8 border bg-card rounded-xl text-card-foreground shadow p-6">
1298-
<div class="xl:basis-[35%] truncate">
1299-
<div class="flex items-center gap-4">
1300-
<.link navigate={User.url(@match.user)}>
1301-
<.avatar class="h-16 w-16 rounded-full">
1302-
<.avatar_image src={@match.user.avatar_url} alt={@match.user.name} />
1303-
<.avatar_fallback class="rounded-lg">
1304-
{Algora.Util.initials(@match.user.name)}
1305-
</.avatar_fallback>
1306-
</.avatar>
1307-
</.link>
1299+
<div class="xl:basis-[45%] w-full truncate">
1300+
<div class="flex items-center justify-between gap-4">
1301+
<div class="flex items-center gap-4">
1302+
<.link navigate={User.url(@match.user)}>
1303+
<.avatar class="h-16 w-16 rounded-full">
1304+
<.avatar_image src={@match.user.avatar_url} alt={@match.user.name} />
1305+
<.avatar_fallback class="rounded-lg">
1306+
{Algora.Util.initials(@match.user.name)}
1307+
</.avatar_fallback>
1308+
</.avatar>
1309+
</.link>
13081310
1309-
<div>
1310-
<div class="flex items-center gap-4 text-foreground">
1311-
<.link
1312-
navigate={User.url(@match.user)}
1313-
class="text-base sm:text-lg font-semibold hover:underline"
1314-
>
1315-
{@match.user.name} {Algora.Misc.CountryEmojis.get(@match.user.country)}
1316-
</.link>
1317-
<.badge
1318-
:if={@match.badge_text}
1319-
variant={@match.badge_variant}
1320-
size="lg"
1321-
class="shrink-0 absolute top-0 left-0"
1322-
>
1323-
{@match.badge_text}
1324-
</.badge>
1325-
</div>
1326-
<div
1327-
:if={@match.user.provider_meta}
1328-
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground sm:text-sm"
1329-
>
1330-
<.link
1331-
:if={@match.user.provider_login}
1332-
href={"https://github.com/#{@match.user.provider_login}"}
1333-
target="_blank"
1334-
class="flex items-center gap-1 hover:underline"
1311+
<div>
1312+
<div class="flex items-center gap-4 text-foreground">
1313+
<.link
1314+
navigate={User.url(@match.user)}
1315+
class="text-base sm:text-lg font-semibold hover:underline"
1316+
>
1317+
{@match.user.name} {Algora.Misc.CountryEmojis.get(@match.user.country)}
1318+
</.link>
1319+
<.badge
1320+
:if={@match.badge_text}
1321+
variant={@match.badge_variant}
1322+
size="lg"
1323+
class="shrink-0 absolute top-0 left-0"
1324+
>
1325+
{@match.badge_text}
1326+
</.badge>
1327+
</div>
1328+
<div
1329+
:if={@match.user.provider_meta}
1330+
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground sm:text-sm"
13351331
>
1336-
<Logos.github class="shrink-0 h-4 w-4" />
1337-
<span class="line-clamp-1">{@match.user.provider_login}</span>
1338-
</.link>
1339-
<.link
1340-
:if={@match.user.provider_meta["twitter_handle"]}
1341-
href={"https://x.com/#{@match.user.provider_meta["twitter_handle"]}"}
1342-
target="_blank"
1343-
class="flex items-center gap-1 hover:underline"
1332+
<.link
1333+
:if={@match.user.provider_login}
1334+
href={"https://github.com/#{@match.user.provider_login}"}
1335+
target="_blank"
1336+
class="flex items-center gap-1 hover:underline"
1337+
>
1338+
<Logos.github class="shrink-0 h-4 w-4" />
1339+
<span class="line-clamp-1">{@match.user.provider_login}</span>
1340+
</.link>
1341+
<.link
1342+
:if={@match.user.provider_meta["twitter_handle"]}
1343+
href={"https://x.com/#{@match.user.provider_meta["twitter_handle"]}"}
1344+
target="_blank"
1345+
class="flex items-center gap-1 hover:underline"
1346+
>
1347+
<.icon name="tabler-brand-x" class="shrink-0 h-4 w-4" />
1348+
<span class="line-clamp-1">{@match.user.provider_meta["twitter_handle"]}</span>
1349+
</.link>
1350+
</div>
1351+
<%!-- <div
1352+
:if={@match[:hourly_rate]}
1353+
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground sm:text-sm"
13441354
>
1345-
<.icon name="tabler-brand-x" class="shrink-0 h-4 w-4" />
1346-
<span class="line-clamp-1">{@match.user.provider_meta["twitter_handle"]}</span>
1347-
</.link>
1348-
</div>
1349-
<div
1350-
:if={@match[:hourly_rate]}
1351-
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground sm:text-sm"
1352-
>
1353-
<span class="font-semibold font-display text-base sm:text-lg text-emerald-400">
1354-
{@match[:hourly_rate]
1355-
|> Money.mult!(@match.user.hours_per_week || 30)
1356-
|> Money.mult!(Decimal.new("1.13"))
1357-
|> Money.to_string!()}/wk
1358-
</span>
1355+
<span class="font-semibold font-display text-base sm:text-lg text-emerald-400">
1356+
{@match[:hourly_rate]
1357+
|> Money.mult!(@match.user.hours_per_week || 30)
1358+
|> Money.mult!(Decimal.new("1.13"))
1359+
|> Money.to_string!()}/wk
1360+
</span>
1361+
</div> --%>
13591362
</div>
13601363
</div>
1364+
<.button
1365+
phx-click="share_opportunity"
1366+
phx-value-user_id={@match.user.id}
1367+
phx-value-type="contract"
1368+
phx-value-marketplace="true"
1369+
variant="none"
1370+
class="group bg-emerald-900/10 text-emerald-300 transition-colors duration-75 hover:bg-emerald-800/10 hover:text-emerald-300 hover:drop-shadow-[0_1px_5px_#34d39980] focus:bg-emerald-800/10 focus:text-emerald-300 focus:outline-none focus:drop-shadow-[0_1px_5px_#34d39980] border border-emerald-400/40 hover:border-emerald-400/50 focus:border-emerald-400/50"
1371+
>
1372+
<.icon name="tabler-contract" class="size-4 text-current mr-2 -ml-1" /> Contract
1373+
</.button>
13611374
</div>
1375+
<dl :if={@match[:hourly_rate]} class="pt-4">
1376+
<div class="flex justify-between">
1377+
<dt class="text-foreground">
1378+
Total payment for <span class="font-semibold">{@match.user.hours_per_week || 30}</span>
1379+
hours
1380+
<span class="text-xs text-muted-foreground">
1381+
({@match.user.name}'s availability)
1382+
</span>
1383+
<div class="text-xs text-muted-foreground">
1384+
(includes all platform and payment processing fees)
1385+
</div>
1386+
</dt>
1387+
<dd class="font-display font-semibold tabular-nums text-lg text-emerald-400">
1388+
{Money.to_string!(
1389+
Money.mult!(
1390+
@match[:hourly_rate] |> Money.mult!(@match.user.hours_per_week || 30),
1391+
Decimal.new("1.13")
1392+
)
1393+
)}
1394+
</dd>
1395+
</div>
1396+
</dl>
13621397
</div>
13631398
1364-
<div class="flex xl:flex-col gap-2 xl:basis-[5%] xl:ml-auto">
1365-
<.button
1366-
phx-click="share_opportunity"
1367-
phx-value-user_id={@match.user.id}
1368-
phx-value-type="contract"
1369-
phx-value-marketplace="true"
1370-
variant="none"
1371-
class="group bg-emerald-900/10 text-emerald-300 transition-colors duration-75 hover:bg-emerald-800/10 hover:text-emerald-300 hover:drop-shadow-[0_1px_5px_#34d39980] focus:bg-emerald-800/10 focus:text-emerald-300 focus:outline-none focus:drop-shadow-[0_1px_5px_#34d39980] border border-emerald-400/40 hover:border-emerald-400/50 focus:border-emerald-400/50"
1372-
>
1373-
<.icon name="tabler-contract" class="size-4 text-current mr-2 -ml-1" /> Contract
1374-
</.button>
1375-
</div>
1376-
1377-
<div class="pt-2 xl:pt-0 xl:pl-4 2xl:pl-8 xl:basis-[60%] xl:border-l xl:border-border">
1399+
<div class="pt-2 xl:pt-0 xl:pl-4 2xl:pl-8 xl:basis-[55%] xl:border-l xl:border-border">
13781400
<div class="text-sm sm:text-base text-foreground font-medium">
13791401
Completed
13801402
<span class="font-semibold font-display text-emerald-400">
@@ -1556,7 +1578,12 @@ defmodule AlgoraWeb.Org.DashboardLive do
15561578
:if={length(@achievements) > 1}
15571579
id="getting_started_sidebar"
15581580
class="pb-12"
1559-
achievements={@achievements}
1581+
achievements={
1582+
if incomplete?(@achievements, :complete_signin_status) or
1583+
incomplete?(@achievements, :complete_signup_status),
1584+
do: @achievements |> Enum.take(1),
1585+
else: @achievements
1586+
}
15601587
current_user={@current_user}
15611588
current_org={@current_org}
15621589
secret={@secret}

0 commit comments

Comments
 (0)