[WIKI-887] fix: add scroll in heading layout (#8596)

* fix: add scroll in heading layout

* chore: remove visible scroll  bar

* fix :format

* chore: fix outline scroll

* chore: fix format

* chore: fix translation

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
This commit is contained in:
Vipin Chaudhary 2026-03-02 18:59:07 +05:30 committed by GitHub
parent bf52fa22be
commit 779f5e272f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 40 additions and 23 deletions

View file

@ -117,7 +117,7 @@ export const PageNavigationPaneAssetsTabPanel = observer(function PageNavigation
if (assetsList.length === 0) return <PageNavigationPaneAssetsTabEmptyState />; if (assetsList.length === 0) return <PageNavigationPaneAssetsTabEmptyState />;
return ( return (
<div className="mt-5 space-y-4"> <div className="mt-5 space-y-4 px-4">
{assetsList?.map((asset) => ( {assetsList?.map((asset) => (
<AssetItem key={asset.id} asset={asset} page={page} /> <AssetItem key={asset.id} asset={asset} page={page} />
))} ))}

View file

@ -21,13 +21,14 @@ type Props = {
export const PageNavigationPaneInfoTabPanel = observer(function PageNavigationPaneInfoTabPanel(props: Props) { export const PageNavigationPaneInfoTabPanel = observer(function PageNavigationPaneInfoTabPanel(props: Props) {
const { page, versionHistory } = props; const { page, versionHistory } = props;
return ( return (
<div className="mt-5"> <div className="flex flex-col h-full px-4">
<div className="flex-1 overflow-y-auto mt-5">
<PageNavigationPaneInfoTabDocumentInfo page={page} /> <PageNavigationPaneInfoTabDocumentInfo page={page} />
<PageNavigationPaneInfoTabActorsInfo page={page} /> <PageNavigationPaneInfoTabActorsInfo page={page} />
<div className="flex-shrink-0 h-px bg-layer-1 my-3" /> <div className="flex-shrink-0 h-px bg-layer-1 my-3" />
<PageNavigationPaneInfoTabVersionHistory page={page} versionHistory={versionHistory} /> <PageNavigationPaneInfoTabVersionHistory page={page} versionHistory={versionHistory} />
</div> </div>
</div>
); );
}); });

View file

@ -4,6 +4,8 @@
* See the LICENSE file for details. * See the LICENSE file for details.
*/ */
// plane imports
import { ScrollArea } from "@plane/propel/scrollarea";
// plane web imports // plane web imports
import { PageNavigationPaneOutlineTabEmptyState } from "@/plane-web/components/pages/navigation-pane/tab-panels/empty-states/outline"; import { PageNavigationPaneOutlineTabEmptyState } from "@/plane-web/components/pages/navigation-pane/tab-panels/empty-states/outline";
// store // store
@ -23,12 +25,18 @@ export function PageNavigationPaneOutlineTabPanel(props: Props) {
} = page; } = page;
return ( return (
<div className="size-full pt-3 space-y-1"> <ScrollArea
orientation="vertical"
size="sm"
scrollType="hover"
className="size-full overflow-y-auto hide-scrollbar"
viewportClassName="px-4"
>
<PageContentBrowser <PageContentBrowser
className="mt-0" className="mt-0"
editorRef={editorRef} editorRef={editorRef}
emptyState={<PageNavigationPaneOutlineTabEmptyState />} emptyState={<PageNavigationPaneOutlineTabEmptyState />}
/> />
</div> </ScrollArea>
); );
} }

View file

@ -4,8 +4,6 @@
* See the LICENSE file for details. * See the LICENSE file for details.
*/ */
import React from "react";
import { Tab } from "@headlessui/react";
// components // components
import type { TPageRootHandlers } from "@/components/pages/editor/page-root"; import type { TPageRootHandlers } from "@/components/pages/editor/page-root";
// plane web imports // plane web imports
@ -17,6 +15,7 @@ import type { TPageInstance } from "@/store/pages/base-page";
import { PageNavigationPaneAssetsTabPanel } from "./assets"; import { PageNavigationPaneAssetsTabPanel } from "./assets";
import { PageNavigationPaneInfoTabPanel } from "./info/root"; import { PageNavigationPaneInfoTabPanel } from "./info/root";
import { PageNavigationPaneOutlineTabPanel } from "./outline"; import { PageNavigationPaneOutlineTabPanel } from "./outline";
import { Tabs } from "@plane/propel/tabs";
type Props = { type Props = {
page: TPageInstance; page: TPageInstance;
@ -27,19 +26,15 @@ export function PageNavigationPaneTabPanelsRoot(props: Props) {
const { page, versionHistory } = props; const { page, versionHistory } = props;
return ( return (
<Tab.Panels as={React.Fragment}> <>
{ORDERED_PAGE_NAVIGATION_TABS_LIST.map((tab) => ( {ORDERED_PAGE_NAVIGATION_TABS_LIST.map((tab) => (
<Tab.Panel <Tabs.Content key={tab.key} value={tab.key} className="py-2 flex-1 overflow-hidden">
key={tab.key}
as="div"
className="size-full p-3.5 pt-0 overflow-y-auto vertical-scrollbar scrollbar-sm outline-none"
>
{tab.key === "outline" && <PageNavigationPaneOutlineTabPanel page={page} />} {tab.key === "outline" && <PageNavigationPaneOutlineTabPanel page={page} />}
{tab.key === "info" && <PageNavigationPaneInfoTabPanel page={page} versionHistory={versionHistory} />} {tab.key === "info" && <PageNavigationPaneInfoTabPanel page={page} versionHistory={versionHistory} />}
{tab.key === "assets" && <PageNavigationPaneAssetsTabPanel page={page} />} {tab.key === "assets" && <PageNavigationPaneAssetsTabPanel page={page} />}
<PageNavigationPaneAdditionalTabPanelsRoot activeTab={tab.key} page={page} /> <PageNavigationPaneAdditionalTabPanelsRoot activeTab={tab.key} page={page} />
</Tab.Panel> </Tabs.Content>
))} ))}
</Tab.Panels> </>
); );
} }

View file

@ -23,6 +23,7 @@ export default {
favorites: "Oblíbené", favorites: "Oblíbené",
pro: "Pro", pro: "Pro",
upgrade: "Upgrade", upgrade: "Upgrade",
stickies: "Poznámky",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favoriten", favorites: "Favoriten",
pro: "Pro", pro: "Pro",
upgrade: "Upgrade", upgrade: "Upgrade",
stickies: "Notizen",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favorites", favorites: "Favorites",
pro: "Pro", pro: "Pro",
upgrade: "Upgrade", upgrade: "Upgrade",
stickies: "Stickies",
}, },
auth: { auth: {

View file

@ -2750,8 +2750,4 @@ export default {
enter_number_of_projects: "Enter number of projects", enter_number_of_projects: "Enter number of projects",
pin: "Pin", pin: "Pin",
unpin: "Unpin", unpin: "Unpin",
sidebar: {
stickies: "Stickies",
your_work: "Your work",
},
} as const; } as const;

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favoritos", favorites: "Favoritos",
pro: "Pro", pro: "Pro",
upgrade: "Mejorar", upgrade: "Mejorar",
stickies: "Notas adhesivas",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favoris", favorites: "Favoris",
pro: "Pro", pro: "Pro",
upgrade: "Mettre à niveau", upgrade: "Mettre à niveau",
stickies: "Post-it",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favorit", favorites: "Favorit",
pro: "Pro", pro: "Pro",
upgrade: "Upgrade", upgrade: "Upgrade",
stickies: "Catatan tempel",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Preferiti", favorites: "Preferiti",
pro: "Pro", pro: "Pro",
upgrade: "Aggiorna", upgrade: "Aggiorna",
stickies: "Stickies",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "お気に入り", favorites: "お気に入り",
pro: "プロ", pro: "プロ",
upgrade: "アップグレード", upgrade: "アップグレード",
stickies: "付箋",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "즐겨찾기", favorites: "즐겨찾기",
pro: "프로", pro: "프로",
upgrade: "업그레이드", upgrade: "업그레이드",
stickies: "스티키",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Ulubione", favorites: "Ulubione",
pro: "Pro", pro: "Pro",
upgrade: "Uaktualnij", upgrade: "Uaktualnij",
stickies: "Notatki",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favoritos", favorites: "Favoritos",
pro: "Pro", pro: "Pro",
upgrade: "Upgrade", upgrade: "Upgrade",
stickies: "Anotações",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favorite", favorites: "Favorite",
pro: "Pro", pro: "Pro",
upgrade: "Treci la versiunea superioară", upgrade: "Treci la versiunea superioară",
stickies: "Notițe",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Obľúbené", favorites: "Obľúbené",
pro: "Pro", pro: "Pro",
upgrade: "Upgrade", upgrade: "Upgrade",
stickies: "Poznámky",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Favoriler", favorites: "Favoriler",
pro: "Pro", pro: "Pro",
upgrade: "Yükselt", upgrade: "Yükselt",
stickies: "Yapışkan notlar",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "Yêu thích", favorites: "Yêu thích",
pro: "Phiên bản Pro", pro: "Phiên bản Pro",
upgrade: "Nâng cấp", upgrade: "Nâng cấp",
stickies: "Ghi chú",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "收藏", favorites: "收藏",
pro: "专业版", pro: "专业版",
upgrade: "升级", upgrade: "升级",
stickies: "便签",
}, },
auth: { auth: {
common: { common: {

View file

@ -23,6 +23,7 @@ export default {
favorites: "收藏", favorites: "收藏",
pro: "專業版", pro: "專業版",
upgrade: "升級", upgrade: "升級",
stickies: "便利貼",
}, },
auth: { auth: {
common: { common: {