@@ -4,13 +4,29 @@ open Melange_json.Primitives
44open React
55module Aria = ReactAria
66
7+ let button_class_inline =
8+ "group inline-flex flex-row items-center px-1.5 py-1 -mx-0.75 -my-1 \
9+ rounded-lg focus-visible:outline-none hover:bg-mist-20/40 \
10+ active:bg-mist-20/40"
11+
12+ let button_class_default =
13+ "group min-w-48 flex flex-row items-center gap-x-1 px-2 py-1.5 -mx-2 \
14+ rounded-lg focus-visible:outline-none hover:bg-mist-20/40 \
15+ active:bg-mist-20/40"
16+
17+ let value_class_inline = "text-mana-100 font-serif inline-flex items-center gap-x-1"
18+
19+ let value_class_default = "text-mana-100 font-serif flex items-center gap-x-1"
20+
721type actor =
822 {did: string; handle: string; avatar_data_uri: string option [@default None]}
923[@@deriving json]
1024
11- let fallback handle avatar =
12- <button className="flex px-2 py-1.5 -mx-2 rounded-lg">
13- <span className="text-mana-100 font-serif flex items-center gap-x-1">
25+ let fallback handle avatar inline =
26+ let button_class = if inline then button_class_inline else button_class_default in
27+ let value_class = if inline then value_class_inline else value_class_default in
28+ <button className=button_class>
29+ <span className=value_class>
1430 (match avatar with
1531 | Some uri -> <img className="w-5 h-5 mr-1 rounded-md" src=uri />
1632 | None -> null)
@@ -50,21 +66,9 @@ let[@react.component] make ~current_user ~logged_in_users ~add_account_url
5066 () )
5167 else ()]
5268 in
53- let button_class =
54- if inline then
55- "group inline-flex flex-row items-center px-1.5 py-1 -mx-0.75 -my-1 \
56- rounded-lg focus-visible:outline-none hover:bg-mist-20/40 \
57- active:bg-mist-20/40"
58- else
59- "group min-w-48 flex flex-row items-center gap-x-1 px-2 py-1.5 -mx-2 \
60- rounded-lg focus-visible:outline-none hover:bg-mist-20/40 \
61- active:bg-mist-20/40"
62- in
63- let value_class =
64- if inline then "text-mana-100 font-serif inline-flex items-center gap-x-1"
65- else "text-mana-100 font-serif flex items-center gap-x-1"
66- in
67- <ClientOnly fallback=(fallback current_user.handle current_user.avatar_data_uri)>
69+ let button_class = if inline then button_class_inline else button_class_default in
70+ let value_class = if inline then value_class_inline else value_class_default in
71+ <ClientOnly fallback=(fallback current_user.handle current_user.avatar_data_uri inline)>
6872 [%browser_only
6973 (fun () ->
7074 <Aria.Select name className="inline" defaultValue=current_user.did placeholder="select account" onChange=handleAccountSwitch>
0 commit comments