Parcourir la source

fix(app): add scroll to project selector dropdown (#39016)

Co-authored-by: Brendan Allan <git@brendonovich.dev>
David Siewert il y a 1 mois
Parent
commit
759f6afa80
1 fichiers modifiés avec 35 ajouts et 33 suppressions
  1. 35 33
      packages/app/src/components/prompt-project-selector.tsx

+ 35 - 33
packages/app/src/components/prompt-project-selector.tsx

@@ -364,41 +364,43 @@ export function PromptProjectSelector(props: {
                 </button>
               </Show>
             </div>
-            <Show
-              when={props.controller.servers().length > 1}
-              fallback={
-                <DropdownMenu.RadioGroup value={selectedValue()}>
-                  <For each={props.controller.projects()}>
-                    {(project) => (
-                      <ProjectItem project={project} controller={props.controller} onSelect={selectProject} />
-                    )}
-                  </For>
-                </DropdownMenu.RadioGroup>
-              }
-            >
-              <For
-                each={props.controller
-                  .servers()
-                  .filter((server) =>
-                    props.controller.projects().some((project) => project.server?.key === server!.key),
-                  )}
+            <div class="max-h-[224px] overflow-y-auto">
+              <Show
+                when={props.controller.servers().length > 1}
+                fallback={
+                  <DropdownMenu.RadioGroup value={selectedValue()}>
+                    <For each={props.controller.projects()}>
+                      {(project) => (
+                        <ProjectItem project={project} controller={props.controller} onSelect={selectProject} />
+                      )}
+                    </For>
+                  </DropdownMenu.RadioGroup>
+                }
               >
-                {(server) => (
-                  <div>
-                    <div class="flex h-7 select-none items-center pl-1.5 pr-3 text-[11px] font-[530] leading-none tracking-[0.05px] text-v2-text-text-faint">
-                      {server!.name}
+                <For
+                  each={props.controller
+                    .servers()
+                    .filter((server) =>
+                      props.controller.projects().some((project) => project.server?.key === server!.key),
+                    )}
+                >
+                  {(server) => (
+                    <div>
+                      <div class="flex h-7 select-none items-center pl-1.5 pr-3 text-[11px] font-[530] leading-none tracking-[0.05px] text-v2-text-text-faint">
+                        {server!.name}
+                      </div>
+                      <DropdownMenu.RadioGroup value={selectedValue()}>
+                        <For each={props.controller.projects().filter((project) => project.server?.key === server!.key)}>
+                          {(project) => (
+                            <ProjectItem project={project} controller={props.controller} onSelect={selectProject} />
+                          )}
+                        </For>
+                      </DropdownMenu.RadioGroup>
                     </div>
-                    <DropdownMenu.RadioGroup value={selectedValue()}>
-                      <For each={props.controller.projects().filter((project) => project.server?.key === server!.key)}>
-                        {(project) => (
-                          <ProjectItem project={project} controller={props.controller} onSelect={selectProject} />
-                        )}
-                      </For>
-                    </DropdownMenu.RadioGroup>
-                  </div>
-                )}
-              </For>
-            </Show>
+                  )}
+                </For>
+              </Show>
+            </div>
           </div>
           <div class="h-px bg-v2-border-border-muted" />
           <div class="flex flex-col p-0.5">