Browse Source

add triggerStyle prop to Select and use it for font selector

David Hill 1 month ago
parent
commit
c57491ba48

+ 1 - 0
packages/app/src/components/settings-general.tsx

@@ -100,6 +100,7 @@ export const SettingsGeneral: Component = () => {
                 onSelect={(option) => option && settings.appearance.setFont(option.value)}
                 variant="secondary"
                 size="small"
+                triggerStyle={{ "font-family": monoFontFamily(settings.appearance.font()) }}
               >
                 {(option) => <span style={{ "font-family": monoFontFamily(option?.value) }}>{option?.label}</span>}
               </Select>

+ 3 - 0
packages/ui/src/components/select.tsx

@@ -16,6 +16,7 @@ export type SelectProps<T> = Omit<ComponentProps<typeof Kobalte<T>>, "value" | "
   class?: ComponentProps<"div">["class"]
   classList?: ComponentProps<"div">["classList"]
   children?: (item: T | undefined) => JSX.Element
+  triggerStyle?: JSX.CSSProperties
 }
 
 export function Select<T>(props: SelectProps<T> & ButtonProps) {
@@ -32,6 +33,7 @@ export function Select<T>(props: SelectProps<T> & ButtonProps) {
     "onHighlight",
     "onOpenChange",
     "children",
+    "triggerStyle",
   ])
 
   const state = {
@@ -127,6 +129,7 @@ export function Select<T>(props: SelectProps<T> & ButtonProps) {
         as={Button}
         size={props.size}
         variant={props.variant}
+        style={local.triggerStyle}
         classList={{
           ...(local.classList ?? {}),
           [local.class ?? ""]: !!local.class,