From 2d6b34a57444be0a6e45b8cd414e5a3ab705aee6 Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Thu, 3 Jul 2025 01:29:09 +0200 Subject: [PATCH] r/w/rw multi toggle --- .../src/lib/components/MultiToggle.svelte | 42 +++++++++++++++++ .../assets/AssetsDropdownButton.svelte | 45 ++++++++++--------- .../flows/content/FlowModuleComponent.svelte | 18 ++------ .../lib/components/graph/FlowGraphV2.svelte | 4 +- openflow.openapi.yaml | 2 +- 5 files changed, 71 insertions(+), 40 deletions(-) create mode 100644 frontend/src/lib/components/MultiToggle.svelte diff --git a/frontend/src/lib/components/MultiToggle.svelte b/frontend/src/lib/components/MultiToggle.svelte new file mode 100644 index 0000000000..6ae98480ac --- /dev/null +++ b/frontend/src/lib/components/MultiToggle.svelte @@ -0,0 +1,42 @@ + + + + diff --git a/frontend/src/lib/components/assets/AssetsDropdownButton.svelte b/frontend/src/lib/components/assets/AssetsDropdownButton.svelte index 63e19f1a57..819261c664 100644 --- a/frontend/src/lib/components/assets/AssetsDropdownButton.svelte +++ b/frontend/src/lib/components/assets/AssetsDropdownButton.svelte @@ -10,15 +10,15 @@ } from '../../../routes/(root)/(logged)/assets/ExploreAssetButton.svelte' import { assetEq, formatAsset, type Asset, type AssetWithAccessType } from './lib' import DbManagerDrawer from '../DBManagerDrawer.svelte' - import { untrack } from 'svelte' - import { ResourceService, type AssetUsageAccessType } from '$lib/gen' + import { tick, untrack } from 'svelte' + import { ResourceService } from '$lib/gen' import { workspaceStore } from '$lib/stores' import Button from '../common/button/Button.svelte' import Tooltip from '../meltComponents/Tooltip.svelte' import ResourceEditorDrawer from '../ResourceEditorDrawer.svelte' import type { Placement } from '@floating-ui/core' - import Select from '../select/Select.svelte' import { safeSelectItems } from '../select/utils.svelte' + import MultiToggle from '../MultiToggle.svelte' let { assets, @@ -27,10 +27,9 @@ noBtnText = false, popoverPlacement = 'bottom-end', disableLiTooltip = false, - accessTypeOverrides, + alternativeAccessTypes = $bindable(), onHoverLi, - liSubtitle, - onAccessTypeChanged + liSubtitle }: { assets: AssetWithAccessType[] enableChangeAnimation?: boolean @@ -38,10 +37,9 @@ noBtnText?: boolean popoverPlacement?: Placement disableLiTooltip?: boolean - accessTypeOverrides?: AssetWithAccessType[] + alternativeAccessTypes?: AssetWithAccessType[] onHoverLi?: (asset: Asset, eventType: 'enter' | 'leave') => void liSubtitle?: (asset: Asset) => string - onAccessTypeChanged?: (asset: AssetWithAccessType, accessType: AssetUsageAccessType) => void } = $props() let prevAssets = $state([]) @@ -117,6 +115,9 @@
    {#each assets as asset} + {@const alternativeAccessType = alternativeAccessTypes?.find((a) => + assetEq(a, asset) + )?.access_type}
  • onHoverLi?.(asset, 'enter')} @@ -134,7 +135,7 @@ -
    +
    {#if asset.kind === 'resource' && resourceDataCache[asset.path] !== undefined}