Files
classroomio/src/lib/components/OrgSelector/OrgSelector.svelte
T

60 lines
1.7 KiB
Svelte
Raw Normal View History

2023-09-11 11:47:30 +01:00
<script lang="ts">
2023-08-07 11:24:48 +01:00
import { Popover, SkeletonText } from 'carbon-components-svelte';
import CaretSortIcon from 'carbon-icons-svelte/lib/CaretSort.svelte';
import OrgSelectorItem from './OrgSelectorItem.svelte';
2023-09-11 11:47:30 +01:00
import { currentOrg, orgs, currentOrgPath } from '$lib/utils/store/org';
import { goto } from '$app/navigation';
import { newOrgModal } from '$lib/components/Org/store';
2023-09-11 11:47:30 +01:00
export let canAddOrg = true;
let open = false;
2023-04-22 20:00:37 +00:00
function handleAddOrg() {
2023-09-11 11:47:30 +01:00
console.log('add org modal');
open = false;
$newOrgModal.open = true;
}
</script>
<div class="mt-5 relative" data-outline>
2023-08-07 11:24:48 +01:00
{#if $currentOrg.name}
<button
class="flex items-center cursor-pointer max-w-[219px]"
on:click={(e) => {
e.stopPropagation();
open = !open;
}}
>
<p class="dark:text-white text-lg font-bold whitespace-nowrap truncate">
{$currentOrg.name}
</p>
<CaretSortIcon size={16} class="ml-2" />
</button>
{:else}
<div class="w-[219px] h-[30px]">
<SkeletonText style="width: 100%; height: 100%;" />
</div>
{/if}
2023-09-11 11:47:30 +01:00
{#if canAddOrg}
<Popover bind:open closeOnOutsideClick align="bottom-left">
{#each $orgs as org}
<OrgSelectorItem
size="sm"
active={$currentOrg.shortName === org.shortName}
avatar={org.avatar_url}
avatarText={org.shortName}
text={org.name}
hasDivider={true}
onClick={() => {
currentOrg.set(org);
goto($currentOrgPath);
open = false;
}}
/>
2023-09-11 11:47:30 +01:00
{/each}
<OrgSelectorItem size="" text=" + Add Organization" onClick={handleAddOrg} />
</Popover>
{/if}
</div>