From 015fb2d614875898a2fae2d3b7378a39c03aa019 Mon Sep 17 00:00:00 2001 From: Chris Bongers Date: Mon, 23 Dec 2024 16:01:14 +0200 Subject: [PATCH] fix: my feed edit feed (#4021) --- packages/shared/src/lib/feed.ts | 6 +++++- .../components/layouts/MainFeedPage.tsx | 21 ++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/shared/src/lib/feed.ts b/packages/shared/src/lib/feed.ts index 16686f6058..94e4c67a05 100644 --- a/packages/shared/src/lib/feed.ts +++ b/packages/shared/src/lib/feed.ts @@ -168,6 +168,7 @@ export function adLogEvent( export interface GetDefaultFeedProps { hasFiltered?: boolean; hasUser?: boolean; + isMyFeed?: boolean; } export const getDefaultFeed = ({ @@ -201,7 +202,10 @@ export const getFeedName = ( return OtherFeedPage.UserPosts; } if (feed.startsWith('feeds')) { - return SharedFeedPage.Custom; + const isMyFeedEdit = + ['edit'].some((item) => feed.endsWith(item)) && options.isMyFeed; + + return isMyFeedEdit ? SharedFeedPage.MyFeed : SharedFeedPage.Custom; } const [page] = feed.split('?'); diff --git a/packages/webapp/components/layouts/MainFeedPage.tsx b/packages/webapp/components/layouts/MainFeedPage.tsx index b47c7091bf..8275095670 100644 --- a/packages/webapp/components/layouts/MainFeedPage.tsx +++ b/packages/webapp/components/layouts/MainFeedPage.tsx @@ -10,7 +10,10 @@ import { MainLayoutProps } from '@dailydotdev/shared/src/components/MainLayout'; import type { MainFeedLayoutProps } from '@dailydotdev/shared/src/components/MainFeedLayout'; import AuthContext from '@dailydotdev/shared/src/contexts/AuthContext'; import { getShouldRedirect } from '@dailydotdev/shared/src/components/utilities'; -import { getFeedName as getFeedNameLib } from '@dailydotdev/shared/src/lib/feed'; +import { + type GetDefaultFeedProps, + getFeedName, +} from '@dailydotdev/shared/src/lib/feed'; import dynamic from 'next/dynamic'; import { getLayout } from './FeedLayout'; @@ -27,7 +30,10 @@ export type MainFeedPageProps = { isFinder?: boolean; } & Pick; -const getFeedName = (path: string): string => { +const getInternalFeedName = ( + path: string, + options?: GetDefaultFeedProps, +): string => { if (path === '/') { return 'default'; } @@ -37,7 +43,7 @@ const getFeedName = (path: string): string => { } if (path.startsWith('/feeds/')) { - return getFeedNameLib(path); + return getFeedName(path, options); } return path.replace(/^\/+/, ''); @@ -51,7 +57,10 @@ export default function MainFeedPage({ const router = useRouter(); const { user } = useContext(AuthContext); const isFinderPage = router?.pathname === '/search/posts' || isFinder; - const [feedName, setFeedName] = useState(getFeedName(router?.pathname)); + const isMyFeedURL = router?.query?.slugOrId === user?.id; + const [feedName, setFeedName] = useState( + getInternalFeedName(router?.pathname, { isMyFeed: isMyFeedURL }), + ); const [isSearchOn, setIsSearchOn] = useState(isFinderPage); useEffect(() => { const isMyFeed = router?.pathname === '/my-feed'; @@ -61,7 +70,9 @@ export default function MainFeedPage({ setIsSearchOn(true); setFeedName('search'); } else { - const newFeed = getFeedName(router?.pathname); + const newFeed = getInternalFeedName(router?.pathname, { + isMyFeed: isMyFeedURL, + }); if (isSearchOn) { setIsSearchOn(false); }