[WEB-2273] Chore: page alignments (#5505)

* chore: headers + common containers

* fix: filters code splitting

* fix: home header

* fix: header changes

* chore: page alignments fixed

* fix: uncommented filters

* fix: used enums

* fix: cards + filters

* fix: enum changes

* fix: reverted package changes

* fix: reverted package changes

* fix: Card + tags seperated + naming fixed

* fix: card + tags seperated + naming fixed

* fix: mobile headers fixed partially

* fix: build errors + minor css

* fix: checkbox spacing

* fix: review changes

* fix: lint errors

* fix: minor review changes
This commit is contained in:
Akshita Goyal 2024-09-05 12:16:24 +05:30 committed by GitHub
parent c78b2344b8
commit 87dbb9b888
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
181 changed files with 1323 additions and 1122 deletions

View file

@ -4,7 +4,7 @@ import { FC } from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// ui
import { ArchiveIcon, Breadcrumbs, Tooltip, CustomHeader } from "@plane/ui";
import { ArchiveIcon, Breadcrumbs, Tooltip, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
// constants
@ -38,8 +38,8 @@ export const ProjectArchivesHeader: FC<TProps> = observer((props: TProps) => {
PROJECT_ARCHIVES_BREADCRUMB_LIST[activeTab as keyof typeof PROJECT_ARCHIVES_BREADCRUMB_LIST];
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div className="flex items-center gap-2.5">
<Breadcrumbs onBack={router.back} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -92,7 +92,7 @@ export const ProjectArchivesHeader: FC<TProps> = observer((props: TProps) => {
</Tooltip>
) : null}
</div>
</CustomHeader.LeftItem>
</CustomHeader>
</Header.LeftItem>
</Header>
);
});

View file

@ -4,7 +4,7 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
import useSWR from "swr";
// ui
import { ArchiveIcon, Breadcrumbs, LayersIcon, CustomHeader } from "@plane/ui";
import { ArchiveIcon, Breadcrumbs, LayersIcon, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { IssueDetailQuickActions } from "@/components/issues";
@ -36,8 +36,8 @@ export const ProjectArchivedIssueDetailsHeader = observer(() => {
);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<Breadcrumbs isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
type="text"
@ -88,14 +88,14 @@ export const ProjectArchivedIssueDetailsHeader = observer(() => {
}
/>
</Breadcrumbs>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<IssueDetailQuickActions
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
issueId={archivedIssueId.toString()}
/>
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -9,7 +9,7 @@ import { ArrowRight, PanelRight } from "lucide-react";
// types
import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types";
// ui
import { Breadcrumbs, Button, ContrastIcon, CustomMenu, Tooltip, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, ContrastIcon, CustomMenu, Tooltip, Header } from "@plane/ui";
// components
import { ProjectAnalyticsModal } from "@/components/analytics";
import { BreadcrumbLink, Logo } from "@/components/common";
@ -161,8 +161,8 @@ export const CycleIssuesHeader: React.FC = observer(() => {
onClose={() => setAnalyticsModal(false)}
cycleDetails={cycleDetails ?? undefined}
/>
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div className="flex items-center gap-2">
<Breadcrumbs onBack={router.back} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -235,8 +235,8 @@ export const CycleIssuesHeader: React.FC = observer(() => {
/>
</Breadcrumbs>
</div>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<div className="hidden items-center gap-2 md:flex ">
<LayoutSelection
layouts={[
@ -317,8 +317,8 @@ export const CycleIssuesHeader: React.FC = observer(() => {
>
<PanelRight className={cn("h-4 w-4", !isSidebarCollapsed ? "text-[#3E63DD]" : "text-custom-text-200")} />
</button>
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
</>
);
});

View file

@ -4,7 +4,7 @@ import { FC } from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// ui
import { Breadcrumbs, Button, ContrastIcon, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, ContrastIcon, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { CyclesViewHeader } from "@/components/cycles";
@ -30,8 +30,8 @@ export const CyclesListHeader: FC = observer(() => {
currentProjectRole && [EUserProjectRoles.ADMIN, EUserProjectRoles.MEMBER].includes(currentProjectRole);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<Breadcrumbs onBack={router.back} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
type="text"
@ -54,8 +54,8 @@ export const CyclesListHeader: FC = observer(() => {
link={<BreadcrumbLink label="Cycles" icon={<ContrastIcon className="h-4 w-4 text-custom-text-300" />} />}
/>
</Breadcrumbs>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
{canUserCreateCycle && currentProjectDetails ? (
<div className="flex items-center gap-3">
<CyclesViewHeader projectId={currentProjectDetails.id} />
@ -73,7 +73,7 @@ export const CyclesListHeader: FC = observer(() => {
) : (
<></>
)}
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -6,7 +6,7 @@ import { useParams } from "next/navigation";
// types
import { TCycleFilters } from "@plane/types";
// components
import { CustomHeader, EHeaderVariant } from "@plane/ui";
import { Header, EHeaderVariant } from "@plane/ui";
import { PageHead } from "@/components/core";
import { CyclesView, CycleCreateUpdateModal, CycleAppliedFiltersList } from "@/components/cycles";
import { EmptyState } from "@/components/empty-state";
@ -82,13 +82,13 @@ const ProjectCyclesPage = observer(() => {
) : (
<>
{calculateTotalFilters(currentProjectFilters ?? {}) !== 0 && (
<CustomHeader variant={EHeaderVariant.TERNARY}>
<Header variant={EHeaderVariant.TERNARY}>
<CycleAppliedFiltersList
appliedFilters={currentProjectFilters ?? {}}
handleClearAllFilters={() => clearAllFilters(projectId.toString())}
handleRemoveFilter={handleRemoveFilter}
/>
</CustomHeader>
</Header>
)}
<CyclesView workspaceSlug={workspaceSlug.toString()} projectId={projectId.toString()} />

View file

@ -5,7 +5,7 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
import { RefreshCcw } from "lucide-react";
// ui
import { Breadcrumbs, Button, Intake, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, Intake, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { InboxIssueCreateEditModalRoot } from "@/components/inbox";
@ -30,8 +30,8 @@ export const ProjectInboxHeader: FC = observer(() => {
const isViewer = currentProjectRole === EUserProjectRoles.VIEWER;
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div className="flex items-center gap-4">
<Breadcrumbs isLoading={currentProjectDetailsLoader}>
<Breadcrumbs.BreadcrumbItem
@ -64,8 +64,8 @@ export const ProjectInboxHeader: FC = observer(() => {
</div>
)}
</div>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
{currentProjectDetails?.inbox_view && workspaceSlug && projectId && !isViewer ? (
<div className="flex items-center gap-2">
<InboxIssueCreateEditModalRoot
@ -83,7 +83,7 @@ export const ProjectInboxHeader: FC = observer(() => {
) : (
<></>
)}
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -4,7 +4,7 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
import { PanelRight } from "lucide-react";
// ui
import { Breadcrumbs, LayersIcon, CustomHeader } from "@plane/ui";
import { Breadcrumbs, LayersIcon, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { IssueDetailQuickActions } from "@/components/issues";
@ -29,8 +29,8 @@ export const ProjectIssueDetailsHeader = observer(() => {
const isSidebarCollapsed = issueDetailSidebarCollapsed;
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div>
<Breadcrumbs onBack={router.back} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -75,8 +75,8 @@ export const ProjectIssueDetailsHeader = observer(() => {
/>
</Breadcrumbs>
</div>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<IssueDetailQuickActions
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
@ -87,7 +87,7 @@ export const ProjectIssueDetailsHeader = observer(() => {
className={cn("h-4 w-4 ", !isSidebarCollapsed ? "text-custom-primary-100" : " text-custom-text-200")}
/>
</button>
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -5,7 +5,7 @@ import { useParams } from "next/navigation";
// icons
import { Briefcase, Circle, ExternalLink } from "lucide-react";
// ui
import { Breadcrumbs, Button, LayersIcon, Tooltip, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, LayersIcon, Tooltip, Header } from "@plane/ui";
// components
import { BreadcrumbLink, CountChip, Logo } from "@/components/common";
// constants
@ -46,8 +46,8 @@ export const ProjectIssuesHeader = observer(() => {
currentProjectRole && [EUserProjectRoles.ADMIN, EUserProjectRoles.MEMBER].includes(currentProjectRole);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div className="flex items-center gap-2.5">
<Breadcrumbs onBack={() => router.back()} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -102,8 +102,8 @@ export const ProjectIssuesHeader = observer(() => {
) : (
<></>
)}
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<div className="hidden gap-3 md:flex">
<HeaderFilters
projectId={projectId}
@ -125,7 +125,7 @@ export const ProjectIssuesHeader = observer(() => {
) : (
<></>
)}
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -8,7 +8,7 @@ import { Calendar, ChevronDown, Kanban, List } from "lucide-react";
// types
import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types";
// ui
import { CustomMenu } from "@plane/ui";
import { CustomMenu, Row } from "@plane/ui";
// components
import { ProjectAnalyticsModal } from "@/components/analytics";
import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues/issue-layouts";
@ -106,7 +106,12 @@ export const ProjectIssuesMobileHeader = observer(() => {
maxHeight={"md"}
className="flex flex-grow justify-center text-sm text-custom-text-200"
placement="bottom-start"
customButton={<span className="flex flex-grow justify-center text-sm text-custom-text-200">Layout</span>}
customButton={
<Row className="flex flex-start text-sm text-custom-text-200">
Layout
<ChevronDown className="ml-2 h-4 w-4 text-custom-text-200 my-auto" strokeWidth={1} />
</Row>
}
customButtonClassName="flex flex-grow justify-center text-custom-text-200 text-sm"
closeOnSelect
>

View file

@ -9,7 +9,7 @@ import { ArrowRight, PanelRight } from "lucide-react";
// types
import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types";
// ui
import { Breadcrumbs, Button, CustomMenu, DiceIcon, Tooltip, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, CustomMenu, DiceIcon, Tooltip, Header } from "@plane/ui";
// components
import { ProjectAnalyticsModal } from "@/components/analytics";
import { BreadcrumbLink, Logo } from "@/components/common";
@ -161,8 +161,8 @@ export const ModuleIssuesHeader: React.FC = observer(() => {
onClose={() => setAnalyticsModal(false)}
moduleDetails={moduleDetails ?? undefined}
/>
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<Breadcrumbs onBack={router.back} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
type="text"
@ -233,8 +233,8 @@ export const ModuleIssuesHeader: React.FC = observer(() => {
}
/>
</Breadcrumbs>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<div className="hidden gap-2 md:flex">
<LayoutSelection
layouts={[
@ -317,8 +317,8 @@ export const ModuleIssuesHeader: React.FC = observer(() => {
className={cn("block h-4 w-4 md:hidden", !isSidebarCollapsed ? "text-[#3E63DD]" : "text-custom-text-200")}
/>
</button>
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
</>
);
});

View file

@ -3,7 +3,7 @@
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// ui
import { Breadcrumbs, Button, DiceIcon, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, DiceIcon, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { ModuleViewHeader } from "@/components/modules";
@ -30,8 +30,8 @@ export const ModulesListHeader: React.FC = observer(() => {
currentProjectRole && [EUserProjectRoles.ADMIN, EUserProjectRoles.MEMBER].includes(currentProjectRole);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div>
<Breadcrumbs onBack={router.back} isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -56,8 +56,8 @@ export const ModulesListHeader: React.FC = observer(() => {
/>
</Breadcrumbs>
</div>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<ModuleViewHeader />
{canUserCreateModule ? (
<Button
@ -73,7 +73,7 @@ export const ModulesListHeader: React.FC = observer(() => {
) : (
<></>
)}
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -1,7 +1,8 @@
"use client";
import { observer } from "mobx-react";
import { CustomMenu } from "@plane/ui";
import { ChevronDown } from "lucide-react";
import { CustomMenu, Row } from "@plane/ui";
import { MODULE_VIEW_LAYOUTS } from "@/constants/module";
import { useModuleFilter, useProject } from "@/hooks/store";
@ -10,12 +11,16 @@ export const ModulesListMobileHeader = observer(() => {
const { updateDisplayFilters } = useModuleFilter();
return (
<div className="flex justify-center md:hidden">
<div className="flex justify-start md:hidden">
<CustomMenu
maxHeight={"md"}
className="flex flex-grow justify-center text-custom-text-200 text-sm py-2 border-b border-custom-border-200 bg-custom-sidebar-background-100"
className="flex flex-grow justify-start text-custom-text-200 text-sm py-2 border-b border-custom-border-200 bg-custom-sidebar-background-100"
// placement="bottom-start"
customButton={<span className="flex flex-grow justify-center text-custom-text-200 text-sm">Layout</span>}
customButton={
<Row className="flex flex-grow justify-start text-custom-text-200 text-sm gap-2">
<span>Layout</span> <ChevronDown className="h-4 w-4 text-custom-text-200 my-auto" strokeWidth={1} />
</Row>
}
customButtonClassName="flex flex-grow justify-center items-center text-custom-text-200 text-sm"
closeOnSelect
>

View file

@ -7,15 +7,7 @@ import { FileText } from "lucide-react";
// types
import { TLogoProps } from "@plane/types";
// ui
import {
Breadcrumbs,
EmojiIconPicker,
EmojiIconPickerTypes,
TOAST_TYPE,
Tooltip,
setToast,
CustomHeader,
} from "@plane/ui";
import { Breadcrumbs, EmojiIconPicker, EmojiIconPickerTypes, TOAST_TYPE, Tooltip, setToast, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { PageEditInformationPopover } from "@/components/pages";
@ -67,8 +59,8 @@ export const PageDetailsHeader = observer(() => {
const pageTitle = getPageName(name);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div>
<Breadcrumbs isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -166,11 +158,11 @@ export const PageDetailsHeader = observer(() => {
/>
</Breadcrumbs>
</div>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<PageEditInformationPopover page={page} />
<PageDetailsHeaderExtraActions />
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -4,7 +4,7 @@ import { observer } from "mobx-react";
import { useParams, useSearchParams } from "next/navigation";
import { FileText } from "lucide-react";
// ui
import { Breadcrumbs, Button, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, Header } from "@plane/ui";
// helpers
import { BreadcrumbLink, Logo } from "@/components/common";
// constants
@ -30,8 +30,8 @@ export const PagesListHeader = observer(() => {
currentProjectRole && [EUserProjectRoles.ADMIN, EUserProjectRoles.MEMBER].includes(currentProjectRole);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div>
<Breadcrumbs isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
@ -56,8 +56,8 @@ export const PagesListHeader = observer(() => {
/>
</Breadcrumbs>
</div>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
{canUserCreatePage ? (
<div className="flex items-center gap-2">
<Button
@ -77,7 +77,7 @@ export const PagesListHeader = observer(() => {
) : (
<></>
)}
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -5,7 +5,7 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// ui
import { Settings } from "lucide-react";
import { Breadcrumbs, CustomMenu, CustomHeader } from "@plane/ui";
import { Breadcrumbs, CustomMenu, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
// constants
@ -29,8 +29,8 @@ export const ProjectSettingHeader: FC = observer(() => {
const projectMemberInfo = currentProjectRole || EUserProjectRoles.GUEST;
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<div>
<div className="z-50">
<Breadcrumbs onBack={router.back} isLoading={loader}>
@ -84,7 +84,7 @@ export const ProjectSettingHeader: FC = observer(() => {
)
)}
</CustomMenu>
</CustomHeader.LeftItem>
</CustomHeader>
</Header.LeftItem>
</Header>
);
});

View file

@ -42,7 +42,7 @@ const LabelsSettingsPage = observer(() => {
return (
<>
<PageHead title={pageTitle} />
<div ref={scrollableContainerRef} className="h-full w-full gap-10 overflow-y-auto py-8 pr-9">
<div ref={scrollableContainerRef} className="h-full w-full gap-10 overflow-y-auto py-2 pr-9">
<ProjectSettingsLabelList />
</div>
</>

View file

@ -8,7 +8,7 @@ import { Layers, Lock } from "lucide-react";
// types
import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types";
// ui
import { Breadcrumbs, Button, CustomMenu, Tooltip, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, CustomMenu, Tooltip, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues";
@ -136,8 +136,8 @@ export const ProjectViewIssuesHeader: React.FC = observer(() => {
const publishLink = getPublishViewLink(viewDetails?.anchor);
return (
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<Breadcrumbs isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
type="text"
@ -231,8 +231,8 @@ export const ProjectViewIssuesHeader: React.FC = observer(() => {
) : (
<></>
)}
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
{!viewDetails?.is_locked ? (
<>
<LayoutSelection
@ -298,7 +298,7 @@ export const ProjectViewIssuesHeader: React.FC = observer(() => {
) : (
<></>
)}
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
);
});

View file

@ -4,7 +4,7 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
import { Layers } from "lucide-react";
// ui
import { Breadcrumbs, Button, CustomHeader } from "@plane/ui";
import { Breadcrumbs, Button, Header } from "@plane/ui";
// components
import { BreadcrumbLink, Logo } from "@/components/common";
import { ViewListHeader } from "@/components/views";
@ -20,8 +20,8 @@ export const ProjectViewsHeader = observer(() => {
return (
<>
<CustomHeader>
<CustomHeader.LeftItem>
<Header>
<Header.LeftItem>
<Breadcrumbs isLoading={loader}>
<Breadcrumbs.BreadcrumbItem
type="text"
@ -44,16 +44,16 @@ export const ProjectViewsHeader = observer(() => {
link={<BreadcrumbLink label="Views" icon={<Layers className="h-4 w-4 text-custom-text-300" />} />}
/>
</Breadcrumbs>
</CustomHeader.LeftItem>
<CustomHeader.RightItem>
</Header.LeftItem>
<Header.RightItem>
<ViewListHeader />
<div>
<Button variant="primary" size="sm" onClick={() => toggleCreateViewModal(true)}>
Add view
</Button>
</div>
</CustomHeader.RightItem>
</CustomHeader>
</Header.RightItem>
</Header>
</>
);
});

View file

@ -4,6 +4,7 @@ import { observer } from "mobx-react";
// icons
import { ChevronDown, ListFilter } from "lucide-react";
// components
import { Row } from "@plane/ui";
import { FiltersDropdown } from "@/components/issues/issue-layouts";
import { ViewFiltersSelection } from "@/components/views/filters/filter-selection";
import { ViewOrderByDropdown } from "@/components/views/filters/order-by";
@ -20,7 +21,7 @@ export const ViewMobileHeader = observer(() => {
return (
<>
<div className="md:hidden flex justify-evenly border-b border-custom-border-200 py-2 z-[13] bg-custom-background-100">
<div className="flex flex-grow items-center justify-center border-l border-custom-border-200 text-sm text-custom-text-200">
<Row className="flex items-center justify-start border-l border-custom-border-200 text-sm text-custom-text-200">
<ViewOrderByDropdown
sortBy={filters.sortBy}
sortKey={filters.sortKey}
@ -30,18 +31,18 @@ export const ViewMobileHeader = observer(() => {
}}
isMobile
/>
</div>
<div className="flex flex-grow items-center justify-center border-l border-custom-border-200 text-sm text-custom-text-200">
</Row>
<div className="flex flex-grow items-center justify-start border-l border-custom-border-200 text-sm text-custom-text-200">
<FiltersDropdown
icon={<ListFilter className="h-3 w-3" />}
title="Filters"
placement="bottom-end"
isFiltersApplied={false}
menuButton={
<span className="flex items-center text-sm text-custom-text-200">
<Row className="flex items-center text-sm text-custom-text-200">
Filters
<ChevronDown className="ml-2 h-4 w-4 text-custom-text-200" />
</span>
<ChevronDown className="ml-2 h-4 w-4 text-custom-text-200" strokeWidth={1} />
</Row>
}
>
<ViewFiltersSelection

View file

@ -5,7 +5,7 @@ import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// components
import { TViewFilterProps } from "@plane/types";
import { CustomHeader, EHeaderVariant } from "@plane/ui";
import { Header, EHeaderVariant } from "@plane/ui";
import { PageHead } from "@/components/core";
import { EmptyState } from "@/components/empty-state";
import { ProjectViewsList } from "@/components/views";
@ -63,14 +63,14 @@ const ProjectViewsPage = observer(() => {
<>
<PageHead title={pageTitle} />
{isFiltersApplied && (
<CustomHeader variant={EHeaderVariant.TERNARY}>
<Header variant={EHeaderVariant.TERNARY}>
<ViewAppliedFiltersList
appliedFilters={filters.filters ?? {}}
handleClearAllFilters={clearAllFilters}
handleRemoveFilter={handleRemoveFilter}
alwaysAllowEditing
/>
</CustomHeader>
</Header>
)}
<ProjectViewsList />
</>