@@ -364,47 +364,53 @@ const openManageProjectUsersDialog = () => {
364364 gridTemplateColumns: `76px ${route.meta?.hideSidebar ? '' : `${sideBarWidth}px`} 1fr`,
365365 }"
366366 >
367- <div class =" p-2 border-r border-neutral-200 dark: border-neutral-800 app-left-rail" >
368- <div class =" flex flex-col gap-4 justify-between h-full" >
369- <div class =" flex flex-col gap-4 " >
367+ <div class =" p-2 border-r app- border app-left-rail min-h-0 sidenav-elements " >
368+ <div class =" flex flex-col gap-4 justify-between h-full min-h-0 " >
369+ <div class =" flex flex-col gap-2 min-h-0 flex-1 " >
370370 <router-link to =" /" class =" hover:scale-110 active:scale-95 transition-all app-logo-link" >
371371 <img
372372 src =" @/assets/logo.svg"
373373 class =" w-full animate-[spin_120s_linear_infinite] select-none hover:animate-duration-2000 active:animate-duration-1000"
374374 />
375375 </router-link >
376376
377- <div class =" flex flex-col gap-2 p-1.5 pt-0" >
378- <button
379- v-for =" project of workspaceStore.projects"
380- :key =" project.id"
381- v-tooltip.right =" project.name"
382- class =" w-full aspect-square flex justify-center items-center rounded-xl transition-all border font-semibold"
383- :class ="
384- workspaceStore.currentProjectId === project.id
385- ? 'border-primary-500/30 bg-primary-500/20 text-primary-500'
386- : 'border-transparent bg-neutral-500/5 text-neutral-500/80'
387- "
388- style =" -electron-corner-smoothing : system-ui "
389- @click =" selectProject(project.id)"
390- @contextmenu.prevent =" showProjectMenu($event, project)"
377+ <div class =" flex min-h-0 flex-1 flex-col gap-2 p-1.5 pt-0" >
378+ <div
379+ class =" flex min-h-0 flex-1 flex-col items-center gap-2 overflow-y-auto scrollbar-hidden"
391380 >
392- <span >{{ project.name.slice(0, 2).toUpperCase() }}</span >
393- </button >
394-
395- <button
396- v-tooltip.right =" 'Create workspace'"
397- class =" w-full aspect-square flex justify-center items-center rounded-full border border-dashed border-neutral-300 dark:border-neutral-700 text-neutral-500/80"
398- :disabled ="
399- !workspaceStore.hydrated ||
400- !workspaceStore.currentServer ||
401- !!workspaceStore.serverError ||
402- !canCreateProject
403- "
404- @click =" openCreateProjectDialog"
405- >
406- <i class =" ti ti-plus" />
407- </button >
381+ <button
382+ v-for =" project of workspaceStore.projects"
383+ :key =" project.id"
384+ v-tooltip.right =" project.name"
385+ class =" w-full aspect-square shrink-0 flex justify-center items-center rounded-xl transition-all border font-semibold"
386+ :class ="
387+ workspaceStore.currentProjectId === project.id
388+ ? 'border-primary-500/30 bg-primary-500/20 text-primary-500'
389+ : 'border-transparent bg-neutral-500/5 text-neutral-500/80'
390+ "
391+ @click =" selectProject(project.id)"
392+ @contextmenu.prevent =" showProjectMenu($event, project)"
393+ >
394+ <span >{{ project.name.slice(0, 2).toUpperCase() }}</span >
395+ </button >
396+
397+ <Button
398+ v-tooltip.right =" 'Create workspace'"
399+ icon =" ti ti-plus"
400+ rounded
401+ class =" border-dashed app-border"
402+ outlined
403+ size =" large"
404+ severity =" secondary"
405+ :disabled ="
406+ !workspaceStore.hydrated ||
407+ !workspaceStore.currentServer ||
408+ !!workspaceStore.serverError ||
409+ !canCreateProject
410+ "
411+ @click =" openCreateProjectDialog"
412+ />
413+ </div >
408414 </div >
409415 </div >
410416
@@ -416,7 +422,8 @@ const openManageProjectUsersDialog = () => {
416422 rounded
417423 text
418424 size =" large"
419- class =" border border-primary-500/20"
425+ outlined
426+ class =" app-border"
420427 :disabled =" workspaceStore.isServerSelectionLocked"
421428 @click =" toggleServerPopover"
422429 />
@@ -427,48 +434,52 @@ const openManageProjectUsersDialog = () => {
427434 Servers
428435 </div >
429436
430- <button
431- v-for =" server of workspaceStore.servers"
432- :key =" server.id"
433- class =" w-full flex items-center gap-2 rounded-md px-2 py-1 text-left transition-colors"
434- :class ="
435- workspaceStore.currentServerId === server.id
436- ? 'bg-primary-500/15 text-primary-500'
437- : 'bg-neutral-500/5 hover:bg-neutral-500/10'
438- "
439- @click =" selectServer(server.id)"
440- >
441- <i :class =" `ti ${getServerIcon(server.kind)}`" />
442- <span class =" truncate flex-1 text-sm" >{{ server.name }}</span >
443- <div class =" flex items-center gap-1" >
444- <i
445- v-if =" workspaceStore.currentServerId === server.id"
446- class =" ti ti-check text-sm"
447- />
448- <Button
449- size =" small"
450- icon =" ti ti-edit"
451- text
452- rounded
453- severity =" secondary"
454- class =" size-[1.6rem]"
455- :disabled =" isManagedLocalServer(server)"
456- @click.stop =" openEditServerDialog(server)"
457- />
458- <Button
459- size =" small"
460- icon =" ti ti-trash"
461- text
462- rounded
463- severity =" secondary"
464- class =" size-[1.6rem]"
465- :disabled =" workspaceStore.servers.length === 1 || isManagedLocalServer(server)"
466- @click.stop =" removeServer(server)"
467- />
468- </div >
469- </button >
437+ <div class =" max-h-[22rem] overflow-y-auto scrollbar-hidden pr-1" >
438+ <button
439+ v-for =" server of workspaceStore.servers"
440+ :key =" server.id"
441+ class =" w-full flex items-center gap-2 rounded-md px-2 py-1 text-left transition-colors"
442+ :class ="
443+ workspaceStore.currentServerId === server.id
444+ ? 'bg-primary-500/15 text-primary-500'
445+ : 'bg-neutral-500/5 hover:bg-neutral-500/10'
446+ "
447+ @click =" selectServer(server.id)"
448+ >
449+ <i :class =" `ti ${getServerIcon(server.kind)}`" />
450+ <span class =" truncate flex-1 text-sm" >{{ server.name }}</span >
451+ <div class =" flex items-center gap-1" >
452+ <i
453+ v-if =" workspaceStore.currentServerId === server.id"
454+ class =" ti ti-check text-sm"
455+ />
456+ <Button
457+ size =" small"
458+ icon =" ti ti-edit"
459+ text
460+ rounded
461+ severity =" secondary"
462+ class =" size-[1.6rem]"
463+ :disabled =" isManagedLocalServer(server)"
464+ @click.stop =" openEditServerDialog(server)"
465+ />
466+ <Button
467+ size =" small"
468+ icon =" ti ti-trash"
469+ text
470+ rounded
471+ severity =" secondary"
472+ class =" size-[1.6rem]"
473+ :disabled ="
474+ workspaceStore.servers.length === 1 || isManagedLocalServer(server)
475+ "
476+ @click.stop =" removeServer(server)"
477+ />
478+ </div >
479+ </button >
480+ </div >
470481
471- <div class =" h-px bg-neutral-200 dark:bg-neutral-800 my-1" />
482+ <div class =" h-px app-border-bg my-1" />
472483
473484 <Button
474485 label =" Add server"
0 commit comments