Thomas G. Lopes commited on
Commit
4a8ebd7
·
unverified ·
1 Parent(s): 72dbde7

org billing (#94)

Browse files
src/lib/components/billing-indicator.svelte CHANGED
@@ -10,39 +10,29 @@
10
  }
11
 
12
  const { showModal }: Props = $props();
13
-
14
- const statusColor = $derived(() => {
15
- if (!billing.organization) return "text-gray-600 dark:text-gray-400";
16
- if (billing.validating) return "text-yellow-600 dark:text-yellow-400";
17
- if (billing.isValid) return "text-green-600 dark:text-green-400";
18
- return "text-red-600 dark:text-red-400";
19
- });
20
-
21
- const bgColor = $derived(() => {
22
- if (!billing.organization) return "bg-gray-50 dark:bg-gray-800";
23
- if (billing.validating) return "bg-yellow-50 dark:bg-yellow-900/20";
24
- if (billing.isValid) return "bg-green-50 dark:bg-green-900/20";
25
- return "bg-red-50 dark:bg-red-900/20";
26
- });
27
  </script>
28
 
29
  <button
30
  onclick={showModal}
31
- class="flex items-center gap-2 rounded-lg px-3 py-2 text-sm transition-colors hover:bg-gray-100 dark:hover:bg-gray-700 {bgColor}"
 
 
 
 
32
  >
33
  <!-- Avatar or Icon -->
34
  {#if billing.organization && billing.organizationInfo?.avatar && billing.isValid}
35
  <img src={billing.organizationInfo.avatar} alt={billing.displayName} class="h-5 w-5 rounded-full" />
36
  {:else if billing.organization}
37
- <IconGroup class="h-4 w-4 {statusColor}" />
38
  {:else}
39
- <IconUser class="h-4 w-4 {statusColor}" />
40
  {/if}
41
 
42
  <!-- Billing info -->
43
  <div class="flex flex-col items-start">
44
- <div class="flex items-center gap-1">
45
- <span class="font-medium {statusColor}">
46
  {billing.displayName}
47
  </span>
48
 
 
10
  }
11
 
12
  const { showModal }: Props = $props();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  </script>
14
 
15
  <button
16
  onclick={showModal}
17
+ class={[
18
+ "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm transition-colors",
19
+ "bg-gray-100/50 hover:bg-gray-100 active:bg-gray-200",
20
+ "dark:bg-gray-800/70 dark:hover:bg-gray-700 dark:active:bg-gray-700/50",
21
+ ]}
22
  >
23
  <!-- Avatar or Icon -->
24
  {#if billing.organization && billing.organizationInfo?.avatar && billing.isValid}
25
  <img src={billing.organizationInfo.avatar} alt={billing.displayName} class="h-5 w-5 rounded-full" />
26
  {:else if billing.organization}
27
+ <IconGroup class="h-4 w-4" />
28
  {:else}
29
+ <IconUser class="h-4 w-4" />
30
  {/if}
31
 
32
  <!-- Billing info -->
33
  <div class="flex flex-col items-start">
34
+ <div class="flex items-center gap-1.5">
35
+ <span class="font-medium">
36
  {billing.displayName}
37
  </span>
38