moved connect dialog to main header

This commit is contained in:
Jonathan Summers-Muir committed 2024-11-20 19:20:13 +08:00
1 parent b02c943a21
commit 02f5889e4d
4 files changed
+61 -68

No files matched your search

@@ -50,14 +50,12 @@ const OrganizationDropdown = ({ isNewNav = false }: OrganizationDropdownProps) =
<div className="flex items-center">
<Popover_Shadcn_ open={open} onOpenChange={setOpen} modal={false}>
<PopoverTrigger_Shadcn_ asChild>
<div className="flex items-center space-x-2 cursor-pointer">
<Button type="text" className="pr-2" iconRight={<ChevronsUpDown />}>
<div className="flex items-center space-x-2">
<p className={isNewNav ? 'text-sm' : 'text-xs'}>{orgName}</p>
{isSuccess && <Badge variant="default">{subscription?.plan.name}</Badge>}
</div>
</Button>
</div>
<Button type="text" className="pr-2" iconRight={<ChevronsUpDown />}>
<div className="flex items-center space-x-2">
<p className={isNewNav ? 'text-sm' : 'text-xs'}>{orgName}</p>
{isSuccess && <Badge variant="default">{subscription?.plan.name}</Badge>}
</div>
</Button>
</PopoverTrigger_Shadcn_>
<PopoverContent_Shadcn_ className="p-0" side="bottom" align="start">
<Command_Shadcn_>
@@ -117,58 +117,56 @@ const ProjectDropdown = ({ isNewNav = false }: ProjectDropdownProps) => {
}
return IS_PLATFORM ? (
<div className="flex items-center px-2">
<Popover_Shadcn_ open={open} onOpenChange={setOpen} modal={false}>
<PopoverTrigger_Shadcn_ asChild>
<Button type="text" className="pr-2" iconRight={<ChevronsUpDown />}>
<div className="flex items-center space-x-2">
<p className={isNewNav ? 'text-sm' : 'text-xs'}>{selectedProject?.name}</p>
</div>
</Button>
</PopoverTrigger_Shadcn_>
<PopoverContent_Shadcn_ className="p-0" side="bottom" align="start">
<Command_Shadcn_>
<CommandInput_Shadcn_ placeholder="Find project..." />
<CommandList_Shadcn_>
<CommandEmpty_Shadcn_>No projects found</CommandEmpty_Shadcn_>
<CommandGroup_Shadcn_>
<ScrollArea className={(projects || []).length > 7 ? 'h-[210px]' : ''}>
{projects?.map((project) => (
<ProjectLink key={project.ref} project={project} setOpen={setOpen} />
))}
</ScrollArea>
</CommandGroup_Shadcn_>
{projectCreationEnabled && (
<>
<CommandSeparator_Shadcn_ />
<CommandGroup_Shadcn_>
<CommandItem_Shadcn_
className="cursor-pointer w-full"
onSelect={() => {
<Popover_Shadcn_ open={open} onOpenChange={setOpen} modal={false}>
<PopoverTrigger_Shadcn_ asChild>
<Button type="text" className="pr-2" iconRight={<ChevronsUpDown />}>
<div className="flex items-center space-x-2">
<p className={isNewNav ? 'text-sm' : 'text-xs'}>{selectedProject?.name}</p>
</div>
</Button>
</PopoverTrigger_Shadcn_>
<PopoverContent_Shadcn_ className="p-0" side="bottom" align="start">
<Command_Shadcn_>
<CommandInput_Shadcn_ placeholder="Find project..." />
<CommandList_Shadcn_>
<CommandEmpty_Shadcn_>No projects found</CommandEmpty_Shadcn_>
<CommandGroup_Shadcn_>
<ScrollArea className={(projects || []).length > 7 ? 'h-[210px]' : ''}>
{projects?.map((project) => (
<ProjectLink key={project.ref} project={project} setOpen={setOpen} />
))}
</ScrollArea>
</CommandGroup_Shadcn_>
{projectCreationEnabled && (
<>
<CommandSeparator_Shadcn_ />
<CommandGroup_Shadcn_>
<CommandItem_Shadcn_
className="cursor-pointer w-full"
onSelect={() => {
setOpen(false)
router.push(`/new/${selectedOrganization?.slug}`)
}}
onClick={() => setOpen(false)}
>
<Link
href={`/new/${selectedOrganization?.slug}`}
onClick={() => {
setOpen(false)
router.push(`/new/${selectedOrganization?.slug}`)
}}
onClick={() => setOpen(false)}
className="w-full flex items-center gap-2"
>
<Link
href={`/new/${selectedOrganization?.slug}`}
onClick={() => {
setOpen(false)
}}
className="w-full flex items-center gap-2"
>
<Plus size={14} strokeWidth={1.5} />
<p>New project</p>
</Link>
</CommandItem_Shadcn_>
</CommandGroup_Shadcn_>
</>
)}
</CommandList_Shadcn_>
</Command_Shadcn_>
</PopoverContent_Shadcn_>
</Popover_Shadcn_>
</div>
<Plus size={14} strokeWidth={1.5} />
<p>New project</p>
</Link>
</CommandItem_Shadcn_>
</CommandGroup_Shadcn_>
</>
)}
</CommandList_Shadcn_>
</Command_Shadcn_>
</PopoverContent_Shadcn_>
</Popover_Shadcn_>
) : (
<Button type="text">
<span className={isNewNav ? 'text-sm' : 'text-xs'}>{selectedProject?.name}</span>
@@ -17,6 +17,7 @@ import BreadcrumbsView from './BreadcrumbsView'
import { FeedbackDropdown } from './FeedbackDropdown'
import HelpPopover from './HelpPopover'
import NotificationsPopoverV2 from './NotificationsPopoverV2/NotificationsPopover'
import Connect from 'components/interfaces/Home/Connect/Connect'
const LayoutHeader = ({ customHeaderComponents, breadcrumbs = [], headerBorder = true }: any) => {
const { ref: projectRef } = useParams()
@@ -48,12 +49,10 @@ const LayoutHeader = ({ customHeaderComponents, breadcrumbs = [], headerBorder =
headerBorder ? 'border-b border-default' : ''
}`}
>
<div className="-ml-2 flex items-center text-sm">
{/* Organization is selected */}
<div className="-ml-2 flex items-center text-sm gap-3">
{projectRef && (
<>
<div className="flex items-center">
<OrganizationDropdown />
{projectRef && (
<>
<span className="text-border-stronger">
@@ -71,9 +70,7 @@ const LayoutHeader = ({ customHeaderComponents, breadcrumbs = [], headerBorder =
<path d="M16 3.549L7.12 20.600"></path>
</svg>
</span>
<ProjectDropdown />
{exceedingLimits && (
<div className="ml-2">
<Link href={`/org/${selectedOrganization?.slug}/usage`}>
@@ -83,8 +80,7 @@ const LayoutHeader = ({ customHeaderComponents, breadcrumbs = [], headerBorder =
)}
</>
)}
{selectedProject && (
{selectedProject && isBranchingEnabled && (
<>
<span className="text-border-stronger">
<svg
@@ -101,11 +97,13 @@ const LayoutHeader = ({ customHeaderComponents, breadcrumbs = [], headerBorder =
<path d="M16 3.549L7.12 20.600"></path>
</svg>
</span>
{isBranchingEnabled ? <BranchDropdown /> : <EnableBranchingButton />}
{isBranchingEnabled && <BranchDropdown />}
</>
)}
</>
</div>
)}
<Connect />
{!isBranchingEnabled && <EnableBranchingButton />}
{/* Additional breadcrumbs are supplied */}
<BreadcrumbsView defaultValue={breadcrumbs} />
@@ -56,7 +56,6 @@ const Home: NextPageWithLayout = () => {
<div className="flex items-center gap-x-3">
{project?.status === PROJECT_STATUS.ACTIVE_HEALTHY && <SecurityStatus />}
{IS_PLATFORM && project?.status === PROJECT_STATUS.ACTIVE_HEALTHY && <ServiceStatus />}
{IS_PLATFORM && project?.status === PROJECT_STATUS.ACTIVE_HEALTHY && <Connect />}
</div>
</div>