Skip to content

Commit 14d99ad

Browse files
committed
misc improvements
1 parent 5fa2efe commit 14d99ad

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 %>
@@ -343,9 +343,10 @@ defmodule AlgoraWeb.Org.DashboardLive do
343343
<div class="p-4 sm:p-6">
344344
<.getting_started
345345
achievements={
346-
if incomplete?(@achievements, :complete_signin_status),
347-
do: @achievements |> Enum.take(1),
348-
else: @achievements
346+
if incomplete?(@achievements, :complete_signin_status) or
347+
incomplete?(@achievements, :complete_signup_status),
348+
do: @achievements |> Enum.take(1),
349+
else: @achievements
349350
}
350351
current_user={@current_user}
351352
current_org={@current_org}
@@ -1290,86 +1291,107 @@ defmodule AlgoraWeb.Org.DashboardLive do
12901291
defp match_card(assigns) do
12911292
~H"""
12921293
<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">
1293-
<div class="xl:basis-[35%] truncate">
1294-
<div class="flex items-center gap-4">
1295-
<.link navigate={User.url(@match.user)}>
1296-
<.avatar class="h-16 w-16 rounded-full">
1297-
<.avatar_image src={@match.user.avatar_url} alt={@match.user.name} />
1298-
<.avatar_fallback class="rounded-lg">
1299-
{Algora.Util.initials(@match.user.name)}
1300-
</.avatar_fallback>
1301-
</.avatar>
1302-
</.link>
1294+
<div class="xl:basis-[45%] w-full truncate">
1295+
<div class="flex items-center justify-between gap-4">
1296+
<div class="flex items-center gap-4">
1297+
<.link navigate={User.url(@match.user)}>
1298+
<.avatar class="h-16 w-16 rounded-full">
1299+
<.avatar_image src={@match.user.avatar_url} alt={@match.user.name} />
1300+
<.avatar_fallback class="rounded-lg">
1301+
{Algora.Util.initials(@match.user.name)}
1302+
</.avatar_fallback>
1303+
</.avatar>
1304+
</.link>
13031305
1304-
<div>
1305-
<div class="flex items-center gap-4 text-foreground">
1306-
<.link
1307-
navigate={User.url(@match.user)}
1308-
class="text-base sm:text-lg font-semibold hover:underline"
1309-
>
1310-
{@match.user.name} {Algora.Misc.CountryEmojis.get(@match.user.country)}
1311-
</.link>
1312-
<.badge
1313-
:if={@match.badge_text}
1314-
variant={@match.badge_variant}
1315-
size="lg"
1316-
class="shrink-0 absolute top-0 left-0"
1317-
>
1318-
{@match.badge_text}
1319-
</.badge>
1320-
</div>
1321-
<div
1322-
:if={@match.user.provider_meta}
1323-
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground sm:text-sm"
1324-
>
1325-
<.link
1326-
:if={@match.user.provider_login}
1327-
href={"https://github.com/#{@match.user.provider_login}"}
1328-
target="_blank"
1329-
class="flex items-center gap-1 hover:underline"
1306+
<div>
1307+
<div class="flex items-center gap-4 text-foreground">
1308+
<.link
1309+
navigate={User.url(@match.user)}
1310+
class="text-base sm:text-lg font-semibold hover:underline"
1311+
>
1312+
{@match.user.name} {Algora.Misc.CountryEmojis.get(@match.user.country)}
1313+
</.link>
1314+
<.badge
1315+
:if={@match.badge_text}
1316+
variant={@match.badge_variant}
1317+
size="lg"
1318+
class="shrink-0 absolute top-0 left-0"
1319+
>
1320+
{@match.badge_text}
1321+
</.badge>
1322+
</div>
1323+
<div
1324+
:if={@match.user.provider_meta}
1325+
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground sm:text-sm"
13301326
>
1331-
<Logos.github class="shrink-0 h-4 w-4" />
1332-
<span class="line-clamp-1">{@match.user.provider_login}</span>
1333-
</.link>
1334-
<.link
1335-
:if={@match.user.provider_meta["twitter_handle"]}
1336-
href={"https://x.com/#{@match.user.provider_meta["twitter_handle"]}"}
1337-
target="_blank"
1338-
class="flex items-center gap-1 hover:underline"
1327+
<.link
1328+
:if={@match.user.provider_login}
1329+
href={"https://github.com/#{@match.user.provider_login}"}
1330+
target="_blank"
1331+
class="flex items-center gap-1 hover:underline"
1332+
>
1333+
<Logos.github class="shrink-0 h-4 w-4" />
1334+
<span class="line-clamp-1">{@match.user.provider_login}</span>
1335+
</.link>
1336+
<.link
1337+
:if={@match.user.provider_meta["twitter_handle"]}
1338+
href={"https://x.com/#{@match.user.provider_meta["twitter_handle"]}"}
1339+
target="_blank"
1340+
class="flex items-center gap-1 hover:underline"
1341+
>
1342+
<.icon name="tabler-brand-x" class="shrink-0 h-4 w-4" />
1343+
<span class="line-clamp-1">{@match.user.provider_meta["twitter_handle"]}</span>
1344+
</.link>
1345+
</div>
1346+
<%!-- <div
1347+
:if={@match[:hourly_rate]}
1348+
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground sm:text-sm"
13391349
>
1340-
<.icon name="tabler-brand-x" class="shrink-0 h-4 w-4" />
1341-
<span class="line-clamp-1">{@match.user.provider_meta["twitter_handle"]}</span>
1342-
</.link>
1343-
</div>
1344-
<div
1345-
:if={@match[:hourly_rate]}
1346-
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground sm:text-sm"
1347-
>
1348-
<span class="font-semibold font-display text-base sm:text-lg text-emerald-400">
1349-
{@match[:hourly_rate]
1350-
|> Money.mult!(@match.user.hours_per_week || 30)
1351-
|> Money.mult!(Decimal.new("1.13"))
1352-
|> Money.to_string!()}/wk
1353-
</span>
1350+
<span class="font-semibold font-display text-base sm:text-lg text-emerald-400">
1351+
{@match[:hourly_rate]
1352+
|> Money.mult!(@match.user.hours_per_week || 30)
1353+
|> Money.mult!(Decimal.new("1.13"))
1354+
|> Money.to_string!()}/wk
1355+
</span>
1356+
</div> --%>
13541357
</div>
13551358
</div>
1359+
<.button
1360+
phx-click="share_opportunity"
1361+
phx-value-user_id={@match.user.id}
1362+
phx-value-type="contract"
1363+
phx-value-marketplace="true"
1364+
variant="none"
1365+
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"
1366+
>
1367+
<.icon name="tabler-contract" class="size-4 text-current mr-2 -ml-1" /> Contract
1368+
</.button>
13561369
</div>
1370+
<dl :if={@match[:hourly_rate]} class="pt-4">
1371+
<div class="flex justify-between">
1372+
<dt class="text-foreground">
1373+
Total payment for <span class="font-semibold">{@match.user.hours_per_week || 30}</span>
1374+
hours
1375+
<span class="text-xs text-muted-foreground">
1376+
({@match.user.name}'s availability)
1377+
</span>
1378+
<div class="text-xs text-muted-foreground">
1379+
(includes all platform and payment processing fees)
1380+
</div>
1381+
</dt>
1382+
<dd class="font-display font-semibold tabular-nums text-lg text-emerald-400">
1383+
{Money.to_string!(
1384+
Money.mult!(
1385+
@match[:hourly_rate] |> Money.mult!(@match.user.hours_per_week || 30),
1386+
Decimal.new("1.13")
1387+
)
1388+
)}
1389+
</dd>
1390+
</div>
1391+
</dl>
13571392
</div>
13581393
1359-
<div class="flex xl:flex-col gap-2 xl:basis-[5%] xl:ml-auto">
1360-
<.button
1361-
phx-click="share_opportunity"
1362-
phx-value-user_id={@match.user.id}
1363-
phx-value-type="contract"
1364-
phx-value-marketplace="true"
1365-
variant="none"
1366-
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"
1367-
>
1368-
<.icon name="tabler-contract" class="size-4 text-current mr-2 -ml-1" /> Contract
1369-
</.button>
1370-
</div>
1371-
1372-
<div class="pt-2 xl:pt-0 xl:pl-4 2xl:pl-8 xl:basis-[60%] xl:border-l xl:border-border">
1394+
<div class="pt-2 xl:pt-0 xl:pl-4 2xl:pl-8 xl:basis-[55%] xl:border-l xl:border-border">
13731395
<div class="text-sm sm:text-base text-foreground font-medium">
13741396
Completed
13751397
<span class="font-semibold font-display text-emerald-400">
@@ -1549,7 +1571,12 @@ defmodule AlgoraWeb.Org.DashboardLive do
15491571
<.getting_started
15501572
:if={length(@achievements) > 1}
15511573
class="pb-12"
1552-
achievements={@achievements}
1574+
achievements={
1575+
if incomplete?(@achievements, :complete_signin_status) or
1576+
incomplete?(@achievements, :complete_signup_status),
1577+
do: @achievements |> Enum.take(1),
1578+
else: @achievements
1579+
}
15531580
current_user={@current_user}
15541581
current_org={@current_org}
15551582
secret={@secret}

0 commit comments

Comments
 (0)