mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-25 08:00:59 +00:00
fix circular dependencies frontend
This commit is contained in:
@@ -1,30 +1,12 @@
|
||||
import type { EdgeType, NodeType, ResizeNodeType, StoreType } from '../../store/types/types'
|
||||
import type { UserEdgeType, UserNodeType } from '../../types/types'
|
||||
import { Collapsible } from '../models/Collapsible'
|
||||
import type { CollapsibleType } from '../types/types'
|
||||
import { get } from 'svelte/store'
|
||||
import type { AnchorType } from '../../edges/types/types'
|
||||
import { getAnchorById } from '../../edges/controllers/util'
|
||||
import { getAnchors } from '../../edges/controllers/util'
|
||||
|
||||
const pkStringGenerator = () => (Math.random() + 1).toString(36).substring(7)
|
||||
|
||||
/*
|
||||
Initializes store with array of Collapsible objects. You shoould only use this if you want the collapsible feature enabled.
|
||||
*/
|
||||
export function populateCollapsibleStore(
|
||||
store: StoreType,
|
||||
userNodes: UserNodeType[],
|
||||
userEdges: UserEdgeType[],
|
||||
canvasId: string
|
||||
) {
|
||||
const newCollapsibleStore: CollapsibleType[] = []
|
||||
for (let userNode of userNodes) {
|
||||
const collapsible = new Collapsible(pkStringGenerator(), userNode.id, 0, 'expanded')
|
||||
newCollapsibleStore.push(collapsible)
|
||||
}
|
||||
store.collapsibleStore.set(newCollapsibleStore)
|
||||
}
|
||||
|
||||
|
||||
// Given a nodeId, find ids of all connecting target nodes
|
||||
function findTargets(store: StoreType, nodeId: string): string[] {
|
||||
|
||||
@@ -31,12 +31,11 @@ populateSvelvetStoreFromUserInput(canvasId, nodes, edges)
|
||||
- Returns: store
|
||||
*/
|
||||
import { stores } from '../models/store'
|
||||
import { writable, get } from 'svelte/store'
|
||||
import { writable } from 'svelte/store'
|
||||
|
||||
import type { StoreType } from '../types/types'
|
||||
import type { UserNodeType, UserEdgeType } from '../../types/types'
|
||||
import { populateAnchorsStore, populateNodesStore, populateEdgesStore } from './util'
|
||||
import { populateCollapsibleStore } from '../../collapsible/controllers/util'
|
||||
|
||||
/**
|
||||
* findStore is going to return the target Svelvet store with the canvasId provided as argument.
|
||||
@@ -112,6 +111,4 @@ export function populateSvelvetStoreFromUserInput(
|
||||
// populate edges
|
||||
populateEdgesStore(store, edges, canvasId)
|
||||
|
||||
// populatate collapsible objects if "collapsible" feature is turned on
|
||||
if (get(store.collapsibleOption)) populateCollapsibleStore(store, nodes, edges, canvasId)
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
superadmin,
|
||||
usageStore,
|
||||
premiumStore,
|
||||
switchWorkspace,
|
||||
workspaceStore
|
||||
} from '$lib/stores'
|
||||
import { classNames } from '$lib/utils'
|
||||
@@ -16,6 +15,7 @@
|
||||
import Menu from '../common/menu/Menu.svelte'
|
||||
import { SUPERADMIN_SETTINGS_HASH, USER_SETTINGS_HASH } from './settings'
|
||||
import { isCloudHosted } from '$lib/cloud'
|
||||
import { switchWorkspace } from '$lib/storeUtils'
|
||||
|
||||
export let isCollapsed: boolean = false
|
||||
</script>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { switchWorkspace, userWorkspaces, workspaceStore } from '$lib/stores'
|
||||
import { userWorkspaces, workspaceStore } from '$lib/stores'
|
||||
import { classNames } from '$lib/utils'
|
||||
import { Building } from 'lucide-svelte'
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
import { goto } from '$app/navigation'
|
||||
import { dirtyStore } from '../common/confirmationModal/dirtyStore'
|
||||
import { page } from '$app/stores'
|
||||
import { switchWorkspace } from '$lib/storeUtils'
|
||||
export let isCollapsed: boolean = false
|
||||
|
||||
function waitForNextUpdate(store) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { goto } from '$app/navigation'
|
||||
import { UserService } from '$lib/gen'
|
||||
import { clearStores } from './stores.js'
|
||||
import { clearStores } from './storeUtils'
|
||||
import { sendUserToast } from './toast'
|
||||
|
||||
export async function logoutWithRedirect(rd?: string): Promise<void> {
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
import { resourceTypesStore } from "./components/resourceTypesStore"
|
||||
import { workspaceStore, userStore, usersWorkspaceStore, superadmin } from "./stores"
|
||||
|
||||
export function switchWorkspace(workspace: string | undefined) {
|
||||
localStorage.removeItem('flow')
|
||||
localStorage.removeItem('app')
|
||||
resourceTypesStore.set(undefined)
|
||||
workspaceStore.set(workspace)
|
||||
}
|
||||
|
||||
export function clearStores(): void {
|
||||
localStorage.removeItem('flow')
|
||||
localStorage.removeItem('app')
|
||||
localStorage.removeItem('workspace')
|
||||
resourceTypesStore.set(undefined)
|
||||
userStore.set(undefined)
|
||||
workspaceStore.set(undefined)
|
||||
usersWorkspaceStore.set(undefined)
|
||||
superadmin.set(undefined)
|
||||
}
|
||||
@@ -3,7 +3,6 @@ import { derived, type Readable, writable } from 'svelte/store'
|
||||
import type { UserWorkspaceList } from '$lib/gen/models/UserWorkspaceList.js'
|
||||
import type { TokenResponse } from './gen'
|
||||
import type { IntrospectionQuery } from 'graphql'
|
||||
import { resourceTypesStore } from './components/resourceTypesStore'
|
||||
|
||||
export interface UserExt {
|
||||
email: string
|
||||
@@ -95,20 +94,3 @@ type DBSchemas = Partial<Record<string, DBSchema>>
|
||||
|
||||
export const dbSchemas = writable<DBSchemas>({})
|
||||
|
||||
export function switchWorkspace(workspace: string | undefined) {
|
||||
localStorage.removeItem('flow')
|
||||
localStorage.removeItem('app')
|
||||
resourceTypesStore.set(undefined)
|
||||
workspaceStore.set(workspace)
|
||||
}
|
||||
|
||||
export function clearStores(): void {
|
||||
localStorage.removeItem('flow')
|
||||
localStorage.removeItem('app')
|
||||
localStorage.removeItem('workspace')
|
||||
resourceTypesStore.set(undefined)
|
||||
userStore.set(undefined)
|
||||
workspaceStore.set(undefined)
|
||||
usersWorkspaceStore.set(undefined)
|
||||
superadmin.set(undefined)
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import { validateUsername } from '$lib/utils'
|
||||
import { logoutWithRedirect } from '$lib/logout'
|
||||
import { page } from '$app/stores'
|
||||
import { switchWorkspace, usersWorkspaceStore } from '$lib/stores'
|
||||
import { usersWorkspaceStore } from '$lib/stores'
|
||||
import CenteredModal from '$lib/components/CenteredModal.svelte'
|
||||
import { Button } from '$lib/components/common'
|
||||
import Toggle from '$lib/components/Toggle.svelte'
|
||||
@@ -12,6 +12,7 @@
|
||||
import { onMount } from 'svelte'
|
||||
import { sendUserToast } from '$lib/toast'
|
||||
import TestOpenaiKey from '$lib/components/copilot/TestOpenaiKey.svelte'
|
||||
import { switchWorkspace } from '$lib/storeUtils'
|
||||
|
||||
const rd = $page.url.searchParams.get('rd')
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import { faGithub, faGitlab, faGoogle, faMicrosoft } from '@fortawesome/free-brands-svg-icons'
|
||||
import { onMount } from 'svelte'
|
||||
import { OauthService, UserService, WorkspaceService } from '$lib/gen'
|
||||
import { clearStores, usersWorkspaceStore, workspaceStore, userStore } from '$lib/stores'
|
||||
import { usersWorkspaceStore, workspaceStore, userStore } from '$lib/stores'
|
||||
import { classNames, parseQueryParams } from '$lib/utils'
|
||||
import { getUserExt } from '$lib/user'
|
||||
import { Button, Skeleton } from '$lib/components/common'
|
||||
@@ -14,6 +14,7 @@
|
||||
import { refreshSuperadmin } from '$lib/refreshUser'
|
||||
import LoginPageHeader from '$lib/components/LoginPageHeader.svelte'
|
||||
import DarkModeToggle from '$lib/components/sidebar/DarkModeToggle.svelte'
|
||||
import { clearStores } from '$lib/storeUtils'
|
||||
|
||||
let email = $page.url.searchParams.get('email') ?? ''
|
||||
let password = $page.url.searchParams.get('password') ?? ''
|
||||
|
||||
@@ -4,13 +4,7 @@
|
||||
import { sendUserToast } from '$lib/toast'
|
||||
import { logout, logoutWithRedirect } from '$lib/logout'
|
||||
import { UserService, type WorkspaceInvite, WorkspaceService } from '$lib/gen'
|
||||
import {
|
||||
superadmin,
|
||||
switchWorkspace,
|
||||
usersWorkspaceStore,
|
||||
userWorkspaces,
|
||||
workspaceStore
|
||||
} from '$lib/stores'
|
||||
import { superadmin, usersWorkspaceStore, userWorkspaces, workspaceStore } from '$lib/stores'
|
||||
import { faCrown, faUserCog } from '@fortawesome/free-solid-svg-icons'
|
||||
import Icon from 'svelte-awesome'
|
||||
import { Button, Skeleton } from '$lib/components/common'
|
||||
@@ -21,6 +15,7 @@
|
||||
import { onMount } from 'svelte'
|
||||
import CenteredModal from '$lib/components/CenteredModal.svelte'
|
||||
import { USER_SETTINGS_HASH } from '$lib/components/sidebar/settings'
|
||||
import { switchWorkspace } from '$lib/storeUtils'
|
||||
|
||||
let invites: WorkspaceInvite[] = []
|
||||
let list_all_as_super_admin: boolean = false
|
||||
|
||||
Reference in New Issue
Block a user