Skip to content

Commit 73de786

Browse files
committed
misc improvements
1 parent 774e56a commit 73de786

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(@previewed_user)} 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}
@@ -1297,86 +1298,107 @@ defmodule AlgoraWeb.Org.DashboardLive do
12971298
defp match_card(assigns) do
12981299
~H"""
12991300
<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">
1300-
<div class="xl:basis-[35%] truncate">
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>
1301+
<div class="xl:basis-[45%] w-full truncate">
1302+
<div class="flex items-center justify-between gap-4">
1303+
<div class="flex items-center gap-4">
1304+
<.link navigate={User.url(@match.user)}>
1305+
<.avatar class="h-16 w-16 rounded-full">
1306+
<.avatar_image src={@match.user.avatar_url} alt={@match.user.name} />
1307+
<.avatar_fallback class="rounded-lg">
1308+
{Algora.Util.initials(@match.user.name)}
1309+
</.avatar_fallback>
1310+
</.avatar>
1311+
</.link>
13101312
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"
1331-
>
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"
1313+
<div>
1314+
<div class="flex items-center gap-4 text-foreground">
1315+
<.link
1316+
navigate={User.url(@match.user)}
1317+
class="text-base sm:text-lg font-semibold hover:underline"
1318+
>
1319+
{@match.user.name} {Algora.Misc.CountryEmojis.get(@match.user.country)}
1320+
</.link>
1321+
<.badge
1322+
:if={@match.badge_text}
1323+
variant={@match.badge_variant}
1324+
size="lg"
1325+
class="shrink-0 absolute top-0 left-0"
1326+
>
1327+
{@match.badge_text}
1328+
</.badge>
1329+
</div>
1330+
<div
1331+
:if={@match.user.provider_meta}
1332+
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground sm:text-sm"
13371333
>
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"
1334+
<.link
1335+
:if={@match.user.provider_login}
1336+
href={"https://github.com/#{@match.user.provider_login}"}
1337+
target="_blank"
1338+
class="flex items-center gap-1 hover:underline"
1339+
>
1340+
<Logos.github class="shrink-0 h-4 w-4" />
1341+
<span class="line-clamp-1">{@match.user.provider_login}</span>
1342+
</.link>
1343+
<.link
1344+
:if={@match.user.provider_meta["twitter_handle"]}
1345+
href={"https://x.com/#{@match.user.provider_meta["twitter_handle"]}"}
1346+
target="_blank"
1347+
class="flex items-center gap-1 hover:underline"
1348+
>
1349+
<.icon name="tabler-brand-x" class="shrink-0 h-4 w-4" />
1350+
<span class="line-clamp-1">{@match.user.provider_meta["twitter_handle"]}</span>
1351+
</.link>
1352+
</div>
1353+
<%!-- <div
1354+
:if={@match[:hourly_rate]}
1355+
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground sm:text-sm"
13461356
>
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"
1354-
>
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>
1357+
<span class="font-semibold font-display text-base sm:text-lg text-emerald-400">
1358+
{@match[:hourly_rate]
1359+
|> Money.mult!(@match.user.hours_per_week || 30)
1360+
|> Money.mult!(Decimal.new("1.13"))
1361+
|> Money.to_string!()}/wk
1362+
</span>
1363+
</div> --%>
13611364
</div>
13621365
</div>
1366+
<.button
1367+
phx-click="share_opportunity"
1368+
phx-value-user_id={@match.user.id}
1369+
phx-value-type="contract"
1370+
phx-value-marketplace="true"
1371+
variant="none"
1372+
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"
1373+
>
1374+
<.icon name="tabler-contract" class="size-4 text-current mr-2 -ml-1" /> Contract
1375+
</.button>
13631376
</div>
1377+
<dl :if={@match[:hourly_rate]} class="pt-4">
1378+
<div class="flex justify-between">
1379+
<dt class="text-foreground">
1380+
Total payment for <span class="font-semibold">{@match.user.hours_per_week || 30}</span>
1381+
hours
1382+
<span class="text-xs text-muted-foreground">
1383+
({@match.user.name}'s availability)
1384+
</span>
1385+
<div class="text-xs text-muted-foreground">
1386+
(includes all platform and payment processing fees)
1387+
</div>
1388+
</dt>
1389+
<dd class="font-display font-semibold tabular-nums text-lg text-emerald-400">
1390+
{Money.to_string!(
1391+
Money.mult!(
1392+
@match[:hourly_rate] |> Money.mult!(@match.user.hours_per_week || 30),
1393+
Decimal.new("1.13")
1394+
)
1395+
)}
1396+
</dd>
1397+
</div>
1398+
</dl>
13641399
</div>
13651400
1366-
<div class="flex xl:flex-col gap-2 xl:basis-[5%] xl:ml-auto">
1367-
<.button
1368-
phx-click="share_opportunity"
1369-
phx-value-user_id={@match.user.id}
1370-
phx-value-type="contract"
1371-
phx-value-marketplace="true"
1372-
variant="none"
1373-
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"
1374-
>
1375-
<.icon name="tabler-contract" class="size-4 text-current mr-2 -ml-1" /> Contract
1376-
</.button>
1377-
</div>
1378-
1379-
<div class="pt-2 xl:pt-0 xl:pl-4 2xl:pl-8 xl:basis-[60%] xl:border-l xl:border-border">
1401+
<div class="pt-2 xl:pt-0 xl:pl-4 2xl:pl-8 xl:basis-[55%] xl:border-l xl:border-border">
13801402
<div class="text-sm sm:text-base text-foreground font-medium">
13811403
Completed
13821404
<span class="font-semibold font-display text-emerald-400">
@@ -1538,7 +1560,12 @@ defmodule AlgoraWeb.Org.DashboardLive do
15381560
:if={length(@achievements) > 1}
15391561
id="getting_started_sidebar"
15401562
class="pb-12"
1541-
achievements={@achievements}
1563+
achievements={
1564+
if incomplete?(@achievements, :complete_signin_status) or
1565+
incomplete?(@achievements, :complete_signup_status),
1566+
do: @achievements |> Enum.take(1),
1567+
else: @achievements
1568+
}
15421569
current_user={@current_user}
15431570
current_org={@current_org}
15441571
secret={@secret}

0 commit comments

Comments
 (0)