@@ -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