This commit is contained in:
dengqichen 2025-01-10 14:26:01 +08:00
parent e661ff1cf2
commit 0ee6aeb2ec

View File

@ -325,36 +325,46 @@ const ApplicationModal: React.FC<ApplicationModalProps> = ({
onChange={(e) => setSearchValue(e.target.value)} onChange={(e) => setSearchValue(e.target.value)}
/> />
</div> </div>
<ScrollArea className="h-[200px]"> <div className="relative">
{filteredGroups.length === 0 ? ( <ScrollArea className="h-[200px] w-full">
<div className="p-4 text-center text-sm text-muted-foreground"> <div className="p-1">
{filteredGroups.length === 0 ? (
<div className="p-4 text-center text-sm text-muted-foreground">
</div>
) : (
filteredGroups.map((group) => (
<div
key={group.id}
className={cn(
"relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
group.id === field.value && "bg-accent text-accent-foreground"
)}
onClick={() => {
form.setValue("repositoryGroupId", group.id);
form.setValue("repositoryProjectId", undefined);
setRepositoryProjects([]);
fetchRepositoryProjects(group.id);
setSearchValue("");
setOpen(false);
}}
onWheel={(e) => {
const scrollArea = e.currentTarget.closest('[data-radix-scroll-area-viewport]');
if (scrollArea) {
scrollArea.scrollTop += e.deltaY;
}
}}
>
{group.name}
{group.id === field.value && (
<Check className="ml-auto h-4 w-4" />
)}
</div>
))
)}
</div> </div>
) : ( </ScrollArea>
filteredGroups.map((group) => ( </div>
<div
key={group.id}
className={cn(
"relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
group.id === field.value && "bg-accent text-accent-foreground"
)}
onClick={() => {
form.setValue("repositoryGroupId", group.id);
form.setValue("repositoryProjectId", undefined);
setRepositoryProjects([]);
fetchRepositoryProjects(group.id);
setSearchValue("");
setOpen(false);
}}
>
{group.name}
{group.id === field.value && (
<Check className="ml-auto h-4 w-4" />
)}
</div>
))
)}
</ScrollArea>
</PopoverContent> </PopoverContent>
</Popover> </Popover>
<FormMessage /> <FormMessage />
@ -409,33 +419,43 @@ const ApplicationModal: React.FC<ApplicationModalProps> = ({
onChange={(e) => setSearchValue(e.target.value)} onChange={(e) => setSearchValue(e.target.value)}
/> />
</div> </div>
<ScrollArea className="h-[200px]"> <div className="relative">
{filteredProjects.length === 0 ? ( <ScrollArea className="h-[200px] w-full">
<div className="p-4 text-center text-sm text-muted-foreground"> <div className="p-1">
{filteredProjects.length === 0 ? (
<div className="p-4 text-center text-sm text-muted-foreground">
</div>
) : (
filteredProjects.map((project) => (
<div
key={project.projectId}
className={cn(
"relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
project.projectId === field.value && "bg-accent text-accent-foreground"
)}
onClick={() => {
form.setValue("repositoryProjectId", project.projectId);
setSearchValue("");
setOpen(false);
}}
onWheel={(e) => {
const scrollArea = e.currentTarget.closest('[data-radix-scroll-area-viewport]');
if (scrollArea) {
scrollArea.scrollTop += e.deltaY;
}
}}
>
{project.name}
{project.projectId === field.value && (
<Check className="ml-auto h-4 w-4" />
)}
</div>
))
)}
</div> </div>
) : ( </ScrollArea>
filteredProjects.map((project) => ( </div>
<div
key={project.projectId}
className={cn(
"relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
project.projectId === field.value && "bg-accent text-accent-foreground"
)}
onClick={() => {
form.setValue("repositoryProjectId", project.projectId);
setSearchValue("");
setOpen(false);
}}
>
{project.name}
{project.projectId === field.value && (
<Check className="ml-auto h-4 w-4" />
)}
</div>
))
)}
</ScrollArea>
</PopoverContent> </PopoverContent>
</Popover> </Popover>
<FormMessage /> <FormMessage />