mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-22 08:02:19 +00:00
90cb116d99
The workspace selection page uses a different layout that doesn't render the AI chat. However, drawers on this page were applying the chat offset based on the chatState from localStorage, causing them to appear with an incorrect offset to the right. This fix passes disableChatOffset to UserSettings and SuperadminSettings drawers on the workspace selection page. Fixes #7806 Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
91 lines
2.4 KiB
Svelte
91 lines
2.4 KiB
Svelte
<script lang="ts">
|
|
import Drawer from '$lib/components/common/drawer/Drawer.svelte'
|
|
import DrawerContent from '$lib/components/common/drawer/DrawerContent.svelte'
|
|
import Version from './Version.svelte'
|
|
import DarkModeToggle from './sidebar/DarkModeToggle.svelte'
|
|
import TokensTable from './settings/TokensTable.svelte'
|
|
import { createEventDispatcher } from 'svelte'
|
|
import UserInfoSettings from './settings/UserInfoSettings.svelte'
|
|
import AIUserSettings from './settings/AIUserSettings.svelte'
|
|
|
|
interface Props {
|
|
scopes?: string[] | undefined
|
|
newTokenLabel?: string | undefined
|
|
newTokenWorkspace?: string | undefined
|
|
newToken?: string | undefined
|
|
showMcpMode?: boolean
|
|
disableChatOffset?: boolean
|
|
}
|
|
|
|
let {
|
|
scopes = undefined,
|
|
newTokenLabel = undefined,
|
|
newTokenWorkspace = undefined,
|
|
newToken = $bindable(undefined),
|
|
showMcpMode = false,
|
|
disableChatOffset = false
|
|
}: Props = $props()
|
|
|
|
let drawer: Drawer | undefined = $state()
|
|
let openWithMcpMode = $state(false)
|
|
|
|
const dispatch = createEventDispatcher()
|
|
|
|
export function openDrawer(mcpMode: boolean = false) {
|
|
openWithMcpMode = mcpMode
|
|
drawer?.openDrawer()
|
|
}
|
|
|
|
export function closeDrawer() {
|
|
drawer?.closeDrawer()
|
|
removeHash()
|
|
}
|
|
|
|
function removeHash() {
|
|
window.location.hash = ''
|
|
}
|
|
|
|
function handleTokenCreated(token: string) {
|
|
newToken = token
|
|
dispatch('tokenCreated', token)
|
|
}
|
|
</script>
|
|
|
|
<Drawer bind:this={drawer} size="900px" on:close={removeHash} {disableChatOffset}>
|
|
<DrawerContent title="User settings" on:close={closeDrawer}>
|
|
<div class="flex flex-col gap-6 pb-8">
|
|
{#if scopes == undefined}
|
|
<div
|
|
class="flex flex-row justify-between items-start gap-2 border border-border-light p-4 rounded-md"
|
|
>
|
|
<div class="font-semibold text-emphasis text-xs flex items-center">
|
|
Theme <DarkModeToggle forcedDarkMode={false} />
|
|
</div>
|
|
<div class="text-xs text-emphasis flex-col flex">
|
|
Windmill <Version />
|
|
</div>
|
|
</div>
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 w-full gap-4">
|
|
<div class="min-w-0">
|
|
<UserInfoSettings />
|
|
</div>
|
|
<div class="min-w-0">
|
|
<AIUserSettings />
|
|
</div>
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="grow min-h-0">
|
|
<TokensTable
|
|
{showMcpMode}
|
|
{openWithMcpMode}
|
|
defaultNewTokenLabel={newTokenLabel}
|
|
defaultNewTokenWorkspace={newTokenWorkspace}
|
|
{scopes}
|
|
onTokenCreated={handleTokenCreated}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</DrawerContent>
|
|
</Drawer>
|