From 843bafd943de5789730fdac3037c8c3e36994562 Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 31 Oct 2022 12:07:51 +0100 Subject: [PATCH 1/3] feat: hover list, row permission hover --- src/lib/components/dropList.svelte | 10 +- src/lib/components/hoverList.svelte | 141 ++++++++++++++++++++++ src/lib/components/index.ts | 2 + src/lib/components/output.svelte | 17 +++ src/lib/components/permissions/row.svelte | 52 +++++++- tests/unit/components/dropList.test.ts | 10 -- 6 files changed, 220 insertions(+), 12 deletions(-) create mode 100644 src/lib/components/hoverList.svelte create mode 100644 src/lib/components/output.svelte diff --git a/src/lib/components/dropList.svelte b/src/lib/components/dropList.svelte index 2cf75c7da..393765cf8 100644 --- a/src/lib/components/dropList.svelte +++ b/src/lib/components/dropList.svelte @@ -75,7 +75,15 @@ }); const onBlur = (event: MouseEvent) => { - if (show && !(event.target === element || element.contains(event.target as Node))) { + if ( + show && + !( + event.target === element || + element.contains(event.target as Node) || + event.target === tooltip || + tooltip.contains(event.target as Node) + ) + ) { show = false; } }; diff --git a/src/lib/components/hoverList.svelte b/src/lib/components/hoverList.svelte new file mode 100644 index 000000000..c0fb4bab3 --- /dev/null +++ b/src/lib/components/hoverList.svelte @@ -0,0 +1,141 @@ + + + + +
+ +
(childHover = false)} + on:mouseenter={() => (childHover = true)} + bind:this={tooltip} + style="z-index: 10"> + {#if show} +
+
+
    + +
+
+ +
+ {/if} +
+
diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index 1752e1a21..cf506b842 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -14,6 +14,7 @@ export { default as List } from './list.svelte'; export { default as ListItem } from './listItem.svelte'; export { default as Empty } from './empty.svelte'; export { default as EmptySearch } from './emptySearch.svelte'; +export { default as HoverList } from './hoverList.svelte'; export { default as DropList } from './dropList.svelte'; export { default as DropListItem } from './dropListItem.svelte'; export { default as DropListLink } from './dropListLink.svelte'; @@ -42,3 +43,4 @@ export { default as Tab } from './tab.svelte'; export { default as EventModal } from './eventModal.svelte'; export { default as Status } from './status.svelte'; export { default as Heading } from './heading.svelte'; +export { default as Output } from './output.svelte'; diff --git a/src/lib/components/output.svelte b/src/lib/components/output.svelte new file mode 100644 index 000000000..1430ef409 --- /dev/null +++ b/src/lib/components/output.svelte @@ -0,0 +1,17 @@ + + + +
+ + +
+ +
+
+
diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte index 2f23de52b..e72333f5a 100644 --- a/src/lib/components/permissions/row.svelte +++ b/src/lib/components/permissions/row.svelte @@ -1,5 +1,26 @@
@@ -11,7 +32,36 @@ {:else if role === 'any'}
Any
{:else} -
{role}
+ +
+ {role} +
+ + {#await getData(role) then data} +
+ +
+

+ {data.name + ? data.name + : data?.email + ? data?.email + : data?.phone + ? data?.phone + : '-'} +

+ {role} +
+
+ {#if data?.email || data?.phone} +

{data?.email}

+

{data?.phone}

+ {:else if data?.total} +

Members:{data?.total}

+ {/if} + {/await} +
+
{/if}
diff --git a/tests/unit/components/dropList.test.ts b/tests/unit/components/dropList.test.ts index b69993317..96eaa12ad 100644 --- a/tests/unit/components/dropList.test.ts +++ b/tests/unit/components/dropList.test.ts @@ -1,5 +1,4 @@ import '@testing-library/jest-dom'; -import { tick } from 'svelte'; import { render, fireEvent } from '@testing-library/svelte'; import { DropList } from '../../../src/lib/components'; @@ -29,12 +28,3 @@ test('hide drop list on wrapper click', async () => { await fireEvent.click(wrapper); expect(component.show).toStrictEqual(false); }); - -test('hide drop list on list click', async () => { - const { container } = render(DropList, { ...data }); - const dropList = container.querySelector('ul.drop-list'); - - await fireEvent.click(dropList); - await tick(); - expect(dropList).not.toBeInTheDocument(); -}); From 224458dc9ca08e5ccc89f6dffe014ff012931366 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 11 Nov 2022 14:51:48 +0100 Subject: [PATCH 2/3] feat: refactor hover list --- src/lib/components/drop.svelte | 114 +++++++++++++++++ src/lib/components/dropList.svelte | 109 ++--------------- src/lib/components/hoverList.svelte | 141 ---------------------- src/lib/components/index.ts | 2 +- src/lib/components/permissions/row.svelte | 135 ++++++++++++++++----- 5 files changed, 224 insertions(+), 277 deletions(-) create mode 100644 src/lib/components/drop.svelte delete mode 100644 src/lib/components/hoverList.svelte diff --git a/src/lib/components/drop.svelte b/src/lib/components/drop.svelte new file mode 100644 index 000000000..84486418a --- /dev/null +++ b/src/lib/components/drop.svelte @@ -0,0 +1,114 @@ + + + + + + +
+ +
+ +
+
+ {#if show} + + {/if} +
+ + diff --git a/src/lib/components/dropList.svelte b/src/lib/components/dropList.svelte index 54af40d47..f78139199 100644 --- a/src/lib/components/dropList.svelte +++ b/src/lib/components/dropList.svelte @@ -1,77 +1,17 @@ - - -
+ -
- -
-
- {#if show} +
- {/if} -
- - + + diff --git a/src/lib/components/hoverList.svelte b/src/lib/components/hoverList.svelte deleted file mode 100644 index c0fb4bab3..000000000 --- a/src/lib/components/hoverList.svelte +++ /dev/null @@ -1,141 +0,0 @@ - - - - -
- -
(childHover = false)} - on:mouseenter={() => (childHover = true)} - bind:this={tooltip} - style="z-index: 10"> - {#if show} -
-
-
    - -
-
- -
- {/if} -
-
diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index cf506b842..4c5913d7a 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -14,7 +14,7 @@ export { default as List } from './list.svelte'; export { default as ListItem } from './listItem.svelte'; export { default as Empty } from './empty.svelte'; export { default as EmptySearch } from './emptySearch.svelte'; -export { default as HoverList } from './hoverList.svelte'; +export { default as Drop } from './drop.svelte'; export { default as DropList } from './dropList.svelte'; export { default as DropListItem } from './dropListItem.svelte'; export { default as DropListLink } from './dropListLink.svelte'; diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte index 68bbfd447..39392d530 100644 --- a/src/lib/components/permissions/row.svelte +++ b/src/lib/components/permissions/row.svelte @@ -1,11 +1,15 @@ -
+
{#if role === 'users'}
Users
@@ -32,36 +36,101 @@ {:else if role === 'any'}
Any
{:else} - -
- {role} -
- - {#await getData(role) then data} -
- -
-

- {data.name - ? data.name - : data?.email - ? data?.email - : data?.phone - ? data?.phone - : '-'} -

- {role} -
-
- {#if data?.email || data?.phone} -

{data?.email}

-

{data?.phone}

- {:else if data?.total} -

Members:{data?.total}

- {/if} - {/await} -
-
+
{ + data = n; + }) + .finally(() => { + tick().then(() => { + instance.setContent(content.innerHTML); + instance.show(); + }); + }); + } + }}> + {role} +
+
+ {#if data} + + {:else} + Not found. + {/if} +
{/if}
+ + From 2d5c34767abbde6ee10546ecd786f4650da521ec Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 11 Nov 2022 15:27:22 +0100 Subject: [PATCH 3/3] fix: hover profile --- src/lib/components/permissions/row.svelte | 25 +++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte index 39392d530..406813dd0 100644 --- a/src/lib/components/permissions/row.svelte +++ b/src/lib/components/permissions/row.svelte @@ -59,6 +59,8 @@
{#if data} + {@const isUser = role.startsWith('user')} + {@const isTeam = role.startsWith('team')} {:else} Not found.