diff --git a/packages/bbui/src/Badge/Badge.svelte b/packages/bbui/src/Badge/Badge.svelte index 15bb6c62c2..dadbaa3317 100644 --- a/packages/bbui/src/Badge/Badge.svelte +++ b/packages/bbui/src/Badge/Badge.svelte @@ -11,7 +11,7 @@ export let active = false export let inactive = false export let hoverable = false - export let customColor = null + export let outlineColor = null @@ -30,7 +30,7 @@ class:spectrum-Label--seafoam={seafoam} class:spectrum-Label--active={active} class:spectrum-Label--inactive={inactive} - style={customColor ? `background-color: ${customColor}` : ""} + style={outlineColor ? `border: 2px solid ${outlineColor}` : ""} > diff --git a/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte b/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte index 47811cbcb9..43c662a6d2 100644 --- a/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte @@ -1,49 +1,22 @@ -
- +
+
- -
- {#each groups as group} - - {/each} -
-
- diff --git a/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte b/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte index 11a36706cf..0bf32e4b76 100644 --- a/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte @@ -13,7 +13,6 @@ FancyInput, Button, FancySelect, - Badge, } from "@budibase/bbui" import { builderStore, appStore, roles, appPublished } from "@/stores/builder" import { @@ -39,7 +38,6 @@ import { fly } from "svelte/transition" import InfoDisplay from "../design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte" import BuilderGroupPopover from "./BuilderGroupPopover.svelte" - import GroupBadge from "./GroupBadge.svelte" let query = null let loaded = false @@ -542,6 +540,12 @@ creationAccessType = Constants.Roles.CREATOR } } + + const itemCountText = (word, count) => { + return `${count} ${word}${ + count !== 1 ? "s" : "" + }` + } @@ -708,9 +712,7 @@ {group.name}
- {`${group.users?.length} user${ - group.users?.length != 1 ? "s" : "" - }`} + {itemCountText("user", group.users?.length)}
@@ -755,20 +757,20 @@
{user.email}
-
- {#each userGroups.slice(0, 3) as group} - - {/each} - {#if userGroups.length > 3} - - {/if} -
+ {#if userGroups.length} +
+
+ {itemCountText("group", userGroups.length)} +
+ +
+ {/if}
diff --git a/packages/builder/src/pages/builder/app/[application]/_components/GroupBadge.svelte b/packages/builder/src/pages/builder/app/[application]/_components/GroupBadge.svelte deleted file mode 100644 index f10e2aa220..0000000000 --- a/packages/builder/src/pages/builder/app/[application]/_components/GroupBadge.svelte +++ /dev/null @@ -1,10 +0,0 @@ - - -{name} diff --git a/packages/shared-core/src/helpers/index.ts b/packages/shared-core/src/helpers/index.ts index 0aa378b46a..b924617a0f 100644 --- a/packages/shared-core/src/helpers/index.ts +++ b/packages/shared-core/src/helpers/index.ts @@ -6,3 +6,4 @@ export * as cron from "./cron" export * as schema from "./schema" export * as views from "./views" export * as roles from "./roles" +export * as lists from "./lists" diff --git a/packages/shared-core/src/helpers/lists.ts b/packages/shared-core/src/helpers/lists.ts new file mode 100644 index 0000000000..64b906fef8 --- /dev/null +++ b/packages/shared-core/src/helpers/lists.ts @@ -0,0 +1,7 @@ +export function punctuateList(list: string[]) { + if (list.length === 0) return "" + if (list.length === 1) return list[0] + if (list.length === 2) return list.join(" and ") + // For more than 2 elements: join all but the last with commas, then add "and" before the last element. + return list.slice(0, -1).join(", ") + " and " + list[list.length - 1] +}