From dc32bcb2d6c0fa716b1c8b2c8ac935af326a43e1 Mon Sep 17 00:00:00 2001 From: Guilhem Date: Wed, 12 Feb 2025 11:01:16 +0000 Subject: [PATCH] reolace addUser popup with popover --- frontend/src/lib/components/AddUser.svelte | 108 +++++++++--------- .../components/meltComponents/Popover.svelte | 48 +++++--- .../schema/AddPropertyFormV2.svelte | 10 +- .../components/triggers/CaptureButton.svelte | 2 +- frontend/src/lib/zIndexes.ts | 1 + 5 files changed, 89 insertions(+), 80 deletions(-) diff --git a/frontend/src/lib/components/AddUser.svelte b/frontend/src/lib/components/AddUser.svelte index 90ce1e8d31..54acc1157a 100644 --- a/frontend/src/lib/components/AddUser.svelte +++ b/frontend/src/lib/components/AddUser.svelte @@ -2,7 +2,8 @@ import { createEventDispatcher } from 'svelte' import { globalEmailInvite, superadmin, workspaceStore } from '$lib/stores' import { SettingService, UserService, WorkspaceService } from '$lib/gen' - import { Button, Popup } from './common' + import { Button } from './common' + import Popover from './meltComponents/Popover.svelte' import { sendUserToast } from '$lib/toast' import { isCloudHosted } from '$lib/cloud' import { goto } from '$lib/navigation' @@ -72,64 +73,63 @@ let selected: 'operator' | 'developer' | 'admin' = 'developer' - - + + -
- Add a new user + +
+ Add a new user - Email - + Email + - {#if !automateUsernameCreation} - Username - - {/if} + {#if !automateUsernameCreation} + Username + + {/if} - Role - - Role + + + + + + -
- + on:click={() => { + addUser().then(() => { + // @ts-ignore + email = undefined + // @ts-ignore + username = undefined + }) + }} + disabled={email === undefined || (!automateUsernameCreation && username === undefined)} + > + Add + +
+
+ diff --git a/frontend/src/lib/components/meltComponents/Popover.svelte b/frontend/src/lib/components/meltComponents/Popover.svelte index 18122ba505..76fa12aca3 100644 --- a/frontend/src/lib/components/meltComponents/Popover.svelte +++ b/frontend/src/lib/components/meltComponents/Popover.svelte @@ -2,16 +2,17 @@ import { createPopover, createSync, melt } from '@melt-ui/svelte' import { fade } from 'svelte/transition' import { X } from 'lucide-svelte' + import type { Placement } from '@floating-ui/core' + import { zIndexes } from '$lib/zIndexes' - export let open = false - export let closeButton: boolean = true + export let closeButton: boolean = false export let displayArrow: boolean = false - export let placement: any = 'bottom' + export let placement: Placement = 'bottom' export let disablePopup: boolean = false export let openOnHover: boolean = false const { - elements: { trigger, content, arrow, close }, + elements: { trigger, content, arrow, close: closeElement }, states } = createPopover({ forceVisible: true, @@ -20,29 +21,42 @@ } }) + let isOpen = false const sync = createSync(states) - $: sync.open(open, (v) => (open = v)) + $: sync.open(isOpen, (v) => (isOpen = v)) + + export function close() { + isOpen = false + } + + export function open() { + isOpen = true + } - + -{#if open} -
+{#if isOpen && !disablePopup} +
{#if displayArrow}
{/if} - + {#if closeButton} - {/if} @@ -56,8 +70,4 @@ @apply focus-visible:ring focus-visible:ring-gray-400 focus-visible:ring-offset-2; @apply bg-surface p-0 text-sm font-medium; } - - .content { - @apply w-fit rounded-[4px] bg-surface p-0 overflow-hidden shadow-md; - } diff --git a/frontend/src/lib/components/schema/AddPropertyFormV2.svelte b/frontend/src/lib/components/schema/AddPropertyFormV2.svelte index 8748fc8e3e..69c5017e40 100644 --- a/frontend/src/lib/components/schema/AddPropertyFormV2.svelte +++ b/frontend/src/lib/components/schema/AddPropertyFormV2.svelte @@ -13,15 +13,13 @@ dispatch('add', { name }) name = '' } - - let open: boolean = false - + - +
{ if (event.key === 'Enter') { addField() - open = false + close() } }} /> @@ -40,7 +38,7 @@ id="flow-editor-add-property" on:click={() => { addField() - open = false + close() }} disabled={!name} shortCut={{ Icon: CornerDownLeft, withoutModifier: true }} diff --git a/frontend/src/lib/components/triggers/CaptureButton.svelte b/frontend/src/lib/components/triggers/CaptureButton.svelte index b90070d2c1..4ba19739bb 100644 --- a/frontend/src/lib/components/triggers/CaptureButton.svelte +++ b/frontend/src/lib/components/triggers/CaptureButton.svelte @@ -25,7 +25,7 @@ } - + {#if small}