From 3ad053bab38e02fd327a7572ece784cb19e83877 Mon Sep 17 00:00:00 2001 From: Innei Date: Mon, 10 Feb 2025 22:24:56 +0800 Subject: [PATCH] refactor: rename feed column to timeline column and update related components - Rename `feed-column` directory to `timeline-column` - Update import paths and references across the application - Refactor sidebar and column-related atoms and hooks - Improve naming consistency for timeline-related components and functions Signed-off-by: Innei --- apps/renderer/src/atoms/sidebar.ts | 28 +++++-- .../app-layout/entry-content/desktop.tsx | 6 +- .../app-layout/feed-column/desktop.tsx | 30 +++---- .../modules/app-layout/feed-column/mobile.tsx | 2 +- .../layouts/EntryListHeader.desktop.tsx | 4 +- .../entry-column/layouts/TimelineTabs.tsx | 2 +- .../src/modules/feed-column/list.electron.tsx | 1 - .../CategoryRemoveDialogContent.tsx} | 0 .../CategoryRenameContent.tsx} | 0 .../FeedCategory.tsx} | 6 +- .../item.tsx => timeline-column/FeedItem.tsx} | 2 +- .../FeedList.desktop.tsx} | 2 +- .../timeline-column/FeedList.electron.tsx | 1 + .../FeedList.mobile.tsx} | 2 +- .../FeedList.shared.tsx} | 2 +- .../list.tsx => timeline-column/FeedList.tsx} | 4 +- .../modules/timeline-column/ListFeedList.tsx | 81 +++++++++++++++++++ .../TimelineColumnHeader.tsx} | 8 +- .../TimelineList.tsx} | 8 +- .../TimelineSwitchButton.tsx} | 0 .../UnreadNumber.tsx} | 0 .../{feed-column => timeline-column}/atom.ts | 0 .../context.ts | 0 .../{feed-column => timeline-column}/hook.ts | 0 .../index.module.css | 0 .../index.tsx | 14 ++-- .../sort-by/SortByAlphabeticalList.tsx | 4 +- .../sort-by/SortByUnreadList.tsx | 2 +- .../sort-by/index.tsx | 0 .../sort-by/types.tsx | 0 .../styles.ts | 0 31 files changed, 151 insertions(+), 58 deletions(-) delete mode 100644 apps/renderer/src/modules/feed-column/list.electron.tsx rename apps/renderer/src/modules/{feed-column/category-remove-dialog.tsx => timeline-column/CategoryRemoveDialogContent.tsx} (100%) rename apps/renderer/src/modules/{feed-column/category-rename-dialog.tsx => timeline-column/CategoryRenameContent.tsx} (100%) rename apps/renderer/src/modules/{feed-column/category.tsx => timeline-column/FeedCategory.tsx} (99%) rename apps/renderer/src/modules/{feed-column/item.tsx => timeline-column/FeedItem.tsx} (99%) rename apps/renderer/src/modules/{feed-column/list.desktop.tsx => timeline-column/FeedList.desktop.tsx} (99%) create mode 100644 apps/renderer/src/modules/timeline-column/FeedList.electron.tsx rename apps/renderer/src/modules/{feed-column/list.mobile.tsx => timeline-column/FeedList.mobile.tsx} (99%) rename apps/renderer/src/modules/{feed-column/list.shared.tsx => timeline-column/FeedList.shared.tsx} (99%) rename apps/renderer/src/modules/{feed-column/list.tsx => timeline-column/FeedList.tsx} (57%) create mode 100644 apps/renderer/src/modules/timeline-column/ListFeedList.tsx rename apps/renderer/src/modules/{feed-column/header.tsx => timeline-column/TimelineColumnHeader.tsx} (96%) rename apps/renderer/src/modules/{feed-column/timeline-list.tsx => timeline-column/TimelineList.tsx} (76%) rename apps/renderer/src/modules/{feed-column/timeline-switch-button.tsx => timeline-column/TimelineSwitchButton.tsx} (100%) rename apps/renderer/src/modules/{feed-column/unread-number.tsx => timeline-column/UnreadNumber.tsx} (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/atom.ts (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/context.ts (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/hook.ts (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/index.module.css (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/index.tsx (96%) rename apps/renderer/src/modules/{feed-column => timeline-column}/sort-by/SortByAlphabeticalList.tsx (97%) rename apps/renderer/src/modules/{feed-column => timeline-column}/sort-by/SortByUnreadList.tsx (96%) rename apps/renderer/src/modules/{feed-column => timeline-column}/sort-by/index.tsx (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/sort-by/types.tsx (100%) rename apps/renderer/src/modules/{feed-column => timeline-column}/styles.ts (100%) diff --git a/apps/renderer/src/atoms/sidebar.ts b/apps/renderer/src/atoms/sidebar.ts index f3c23dea8..bed4b0839 100644 --- a/apps/renderer/src/atoms/sidebar.ts +++ b/apps/renderer/src/atoms/sidebar.ts @@ -4,20 +4,32 @@ import { createAtomHooks } from "~/lib/jotai" import { getIsZenMode, useIsZenMode } from "./settings/ui" -const [, , internal_useFeedColumnShow, , internal_getFeedColumnShow, setFeedColumnShow] = - createAtomHooks(atom(true)) +const [ + , + , + internal_useTimelineColumnShow, + , + internal_getTimelineColumnShow, + setTimelineColumnShow, +] = createAtomHooks(atom(true)) -export const useFeedColumnShow = () => { +export const useTimelineColumnShow = () => { const isZenMode = useIsZenMode() - return internal_useFeedColumnShow() && !isZenMode + return internal_useTimelineColumnShow() && !isZenMode } export const getFeedColumnShow = () => { const isZenMode = getIsZenMode() - return internal_getFeedColumnShow() && !isZenMode + return internal_getTimelineColumnShow() && !isZenMode } -export { setFeedColumnShow } +export { setTimelineColumnShow } -export const [, , useFeedColumnTempShow, , getFeedColumnTempShow, setFeedColumnTempShow] = - createAtomHooks(atom(false)) +export const [ + , + , + useTimelineColumnTempShow, + , + getTimelineColumnTempShow, + setTimelineColumnTempShow, +] = createAtomHooks(atom(false)) diff --git a/apps/renderer/src/modules/app-layout/entry-content/desktop.tsx b/apps/renderer/src/modules/app-layout/entry-content/desktop.tsx index c4ef6c9a1..de430aaba 100644 --- a/apps/renderer/src/modules/app-layout/entry-content/desktop.tsx +++ b/apps/renderer/src/modules/app-layout/entry-content/desktop.tsx @@ -8,7 +8,7 @@ import { useHotkeys } from "react-hotkeys-hook" import { useParams } from "react-router" import { useRealInWideMode } from "~/atoms/settings/ui" -import { useFeedColumnShow, useFeedColumnTempShow } from "~/atoms/sidebar" +import { useTimelineColumnShow, useTimelineColumnTempShow } from "~/atoms/sidebar" import { m } from "~/components/common/Motion" import { FixedModalCloseButton } from "~/components/ui/modal/components/close" import { HotKeyScopeMap, ROUTE_ENTRY_PENDING, ROUTE_FEED_PENDING } from "~/constants" @@ -28,8 +28,8 @@ export const RightContentDesktop = () => { const realEntryId = entryId === ROUTE_ENTRY_PENDING ? "" : entryId const showEntryContent = !(views[view]!.wideMode || (settingWideMode && !realEntryId)) const wideMode = !!(settingWideMode && realEntryId) - const feedColumnTempShow = useFeedColumnTempShow() - const feedColumnShow = useFeedColumnShow() + const feedColumnTempShow = useTimelineColumnTempShow() + const feedColumnShow = useTimelineColumnShow() const shouldHeaderPaddingLeft = feedColumnTempShow && !feedColumnShow && settingWideMode useHotkeys( diff --git a/apps/renderer/src/modules/app-layout/feed-column/desktop.tsx b/apps/renderer/src/modules/app-layout/feed-column/desktop.tsx index 828d9a5dd..1e16edd2b 100644 --- a/apps/renderer/src/modules/app-layout/feed-column/desktop.tsx +++ b/apps/renderer/src/modules/app-layout/feed-column/desktop.tsx @@ -20,11 +20,11 @@ import { Outlet } from "react-router" import { setMainContainerElement, setRootContainerElement } from "~/atoms/dom" import { getIsZenMode, getUISettings, setUISetting, useUISettingKey } from "~/atoms/settings/ui" import { - getFeedColumnTempShow, - setFeedColumnShow, - setFeedColumnTempShow, - useFeedColumnShow, - useFeedColumnTempShow, + getTimelineColumnTempShow, + setTimelineColumnShow, + setTimelineColumnTempShow, + useTimelineColumnShow, + useTimelineColumnTempShow, } from "~/atoms/sidebar" import { useLoginModalShow, useWhoami } from "~/atoms/user" import { AppErrorBoundary } from "~/components/common/AppErrorBoundary" @@ -40,13 +40,13 @@ import { EnvironmentIndicator } from "~/modules/app/EnvironmentIndicator" import { NetworkStatusIndicator } from "~/modules/app/NetworkStatusIndicator" import { LoginModalContent } from "~/modules/auth/LoginModalContent" import { DebugRegistry } from "~/modules/debug/registry" -import { FeedColumn } from "~/modules/feed-column" -import { getSelectedFeedIds, resetSelectedFeedIds } from "~/modules/feed-column/atom" import { useShortcutsModal } from "~/modules/modal/shortcuts" import { CmdF } from "~/modules/panel/cmdf" import { SearchCmdK } from "~/modules/panel/cmdk" import { CmdNTrigger } from "~/modules/panel/cmdn" import { CornerPlayer } from "~/modules/player/corner-player" +import { FeedColumn } from "~/modules/timeline-column" +import { getSelectedFeedIds, resetSelectedFeedIds } from "~/modules/timeline-column/atom" import { UpdateNotice } from "~/modules/update-notice/UpdateNotice" import { AppNotificationContainer } from "~/modules/upgrade/lazy/index" import { AppLayoutGridContainerProvider } from "~/providers/app-grid-layout-container-provider" @@ -200,12 +200,12 @@ const FeedResponsiveResizerContainer = ({ }, }) - const feedColumnShow = useFeedColumnShow() - const feedColumnTempShow = useFeedColumnTempShow() + const feedColumnShow = useTimelineColumnShow() + const feedColumnTempShow = useTimelineColumnTempShow() useEffect(() => { if (feedColumnShow) { - setFeedColumnTempShow(false) + setTimelineColumnTempShow(false) return } const handler = debounce( @@ -214,16 +214,16 @@ const FeedResponsiveResizerContainer = ({ const mouseY = e.clientY const uiSettings = getUISettings() - const feedColumnTempShow = getFeedColumnTempShow() + const feedColumnTempShow = getTimelineColumnTempShow() const isInEntryContentWideMode = uiSettings.wideMode || getIsZenMode() const feedWidth = uiSettings.feedColWidth if (mouseY < 200 && isInEntryContentWideMode && mouseX < feedWidth) return const threshold = feedColumnTempShow ? uiSettings.feedColWidth : 100 if (mouseX < threshold) { - setFeedColumnTempShow(true) + setTimelineColumnTempShow(true) } else { - setFeedColumnTempShow(false) + setTimelineColumnTempShow(false) } }, 36, @@ -241,7 +241,7 @@ const FeedResponsiveResizerContainer = ({ useHotkeys( shortcuts.layout.toggleSidebar.key, () => { - setFeedColumnShow(!feedColumnShow) + setTimelineColumnShow(!feedColumnShow) }, { scopes: HotKeyScopeMap.Home, @@ -302,7 +302,7 @@ const FeedResponsiveResizerContainer = ({ cursor={separatorCursor} {...separatorProps} onDoubleClick={() => { - setFeedColumnShow(false) + setTimelineColumnShow(false) }} tooltip={ !isDragging && ( diff --git a/apps/renderer/src/modules/app-layout/feed-column/mobile.tsx b/apps/renderer/src/modules/app-layout/feed-column/mobile.tsx index 9f9a93cf1..7c3e3bf4b 100644 --- a/apps/renderer/src/modules/app-layout/feed-column/mobile.tsx +++ b/apps/renderer/src/modules/app-layout/feed-column/mobile.tsx @@ -11,7 +11,7 @@ import { Link } from "react-router" import { useNavigateEntry } from "~/hooks/biz/useNavigateEntry" import { useRouteParamsSelector } from "~/hooks/biz/useRouteParams" -import { FeedList } from "../../feed-column/list" +import { FeedList } from "../../timeline-column/FeedList" import { MobileFloatBar } from "./float-bar.mobile" export function FeedColumnMobile({ asWidget }: { asWidget?: boolean }) { diff --git a/apps/renderer/src/modules/entry-column/layouts/EntryListHeader.desktop.tsx b/apps/renderer/src/modules/entry-column/layouts/EntryListHeader.desktop.tsx index 56e32ed26..238f99d69 100644 --- a/apps/renderer/src/modules/entry-column/layouts/EntryListHeader.desktop.tsx +++ b/apps/renderer/src/modules/entry-column/layouts/EntryListHeader.desktop.tsx @@ -11,7 +11,7 @@ import * as React from "react" import { useTranslation } from "react-i18next" import { setGeneralSetting, useGeneralSettingKey } from "~/atoms/settings/general" -import { useFeedColumnShow } from "~/atoms/sidebar" +import { useTimelineColumnShow } from "~/atoms/sidebar" import { useWhoami } from "~/atoms/user" import { FEED_COLLECTION_LIST, ROUTE_ENTRY_PENDING } from "~/constants" import { shortcuts } from "~/constants/shortcuts" @@ -63,7 +63,7 @@ export const EntryListHeader: FC<{ const containerRef = React.useRef(null) const titleStyleBasedView = ["pl-6", "pl-7", "pl-7", "pl-7", "px-5", "pl-6"] - const feedColumnShow = useFeedColumnShow() + const feedColumnShow = useTimelineColumnShow() return (
{ diff --git a/apps/renderer/src/modules/feed-column/list.electron.tsx b/apps/renderer/src/modules/feed-column/list.electron.tsx deleted file mode 100644 index a9412b320..000000000 --- a/apps/renderer/src/modules/feed-column/list.electron.tsx +++ /dev/null @@ -1 +0,0 @@ -export { FeedList } from "./list.desktop" diff --git a/apps/renderer/src/modules/feed-column/category-remove-dialog.tsx b/apps/renderer/src/modules/timeline-column/CategoryRemoveDialogContent.tsx similarity index 100% rename from apps/renderer/src/modules/feed-column/category-remove-dialog.tsx rename to apps/renderer/src/modules/timeline-column/CategoryRemoveDialogContent.tsx diff --git a/apps/renderer/src/modules/feed-column/category-rename-dialog.tsx b/apps/renderer/src/modules/timeline-column/CategoryRenameContent.tsx similarity index 100% rename from apps/renderer/src/modules/feed-column/category-rename-dialog.tsx rename to apps/renderer/src/modules/timeline-column/CategoryRenameContent.tsx diff --git a/apps/renderer/src/modules/feed-column/category.tsx b/apps/renderer/src/modules/timeline-column/FeedCategory.tsx similarity index 99% rename from apps/renderer/src/modules/feed-column/category.tsx rename to apps/renderer/src/modules/timeline-column/FeedCategory.tsx index 61cd5d385..ecb88b886 100644 --- a/apps/renderer/src/modules/feed-column/category.tsx +++ b/apps/renderer/src/modules/timeline-column/FeedCategory.tsx @@ -37,10 +37,10 @@ import { useFeedUnreadStore } from "~/store/unread" import { useModalStack } from "../../components/ui/modal/stacked/hooks" import { ListCreationModalContent } from "../settings/tabs/lists/modals" import { useFeedListSortSelector } from "./atom" -import { CategoryRemoveDialogContent } from "./category-remove-dialog" -import { FeedItem } from "./item" +import { CategoryRemoveDialogContent } from "./CategoryRemoveDialogContent" +import { FeedItem } from "./FeedItem" import { feedColumnStyles } from "./styles" -import { UnreadNumber } from "./unread-number" +import { UnreadNumber } from "./UnreadNumber" type FeedId = string interface FeedCategoryProps { diff --git a/apps/renderer/src/modules/feed-column/item.tsx b/apps/renderer/src/modules/timeline-column/FeedItem.tsx similarity index 99% rename from apps/renderer/src/modules/feed-column/item.tsx rename to apps/renderer/src/modules/timeline-column/FeedItem.tsx index 431368225..3a5d0529c 100644 --- a/apps/renderer/src/modules/feed-column/item.tsx +++ b/apps/renderer/src/modules/timeline-column/FeedItem.tsx @@ -33,7 +33,7 @@ import { useFeedUnreadStore } from "~/store/unread" import { useSelectedFeedIdsState } from "./atom" import { DraggableContext } from "./context" import { feedColumnStyles } from "./styles" -import { UnreadNumber } from "./unread-number" +import { UnreadNumber } from "./UnreadNumber" interface FeedItemProps { feedId: string diff --git a/apps/renderer/src/modules/feed-column/list.desktop.tsx b/apps/renderer/src/modules/timeline-column/FeedList.desktop.tsx similarity index 99% rename from apps/renderer/src/modules/feed-column/list.desktop.tsx rename to apps/renderer/src/modules/timeline-column/FeedList.desktop.tsx index 3ca47c719..bf79b0b58 100644 --- a/apps/renderer/src/modules/feed-column/list.desktop.tsx +++ b/apps/renderer/src/modules/timeline-column/FeedList.desktop.tsx @@ -15,8 +15,8 @@ import { useSelectedFeedIdsState, } from "./atom" import { DraggableContext } from "./context" +import { EmptyFeedList, ListHeader, StarredItem, useFeedsGroupedData } from "./FeedList.shared" import { useShouldFreeUpSpace } from "./hook" -import { EmptyFeedList, ListHeader, StarredItem, useFeedsGroupedData } from "./list.shared" import { SortableFeedList } from "./sort-by" const FeedListImpl = forwardRef( diff --git a/apps/renderer/src/modules/timeline-column/FeedList.electron.tsx b/apps/renderer/src/modules/timeline-column/FeedList.electron.tsx new file mode 100644 index 000000000..bc53d8eae --- /dev/null +++ b/apps/renderer/src/modules/timeline-column/FeedList.electron.tsx @@ -0,0 +1 @@ +export { FeedList } from "./FeedList.mobile" diff --git a/apps/renderer/src/modules/feed-column/list.mobile.tsx b/apps/renderer/src/modules/timeline-column/FeedList.mobile.tsx similarity index 99% rename from apps/renderer/src/modules/feed-column/list.mobile.tsx rename to apps/renderer/src/modules/timeline-column/FeedList.mobile.tsx index a60dd28cf..229095250 100644 --- a/apps/renderer/src/modules/feed-column/list.mobile.tsx +++ b/apps/renderer/src/modules/timeline-column/FeedList.mobile.tsx @@ -16,7 +16,7 @@ import { useFeedsGroupedData, useInboxesGroupedData, useListsGroupedData, -} from "./list.shared" +} from "./FeedList.shared" import { SortableFeedList, SortByAlphabeticalInbox, SortByAlphabeticalList } from "./sort-by" import { feedColumnStyles } from "./styles" diff --git a/apps/renderer/src/modules/feed-column/list.shared.tsx b/apps/renderer/src/modules/timeline-column/FeedList.shared.tsx similarity index 99% rename from apps/renderer/src/modules/feed-column/list.shared.tsx rename to apps/renderer/src/modules/timeline-column/FeedList.shared.tsx index 0cdeef769..1285a32e0 100644 --- a/apps/renderer/src/modules/feed-column/list.shared.tsx +++ b/apps/renderer/src/modules/timeline-column/FeedList.shared.tsx @@ -28,7 +28,7 @@ import { feedUnreadActions, useFeedUnreadStore } from "~/store/unread" import { getFeedListSort, setFeedListSortBy, setFeedListSortOrder, useFeedListSort } from "./atom" import { feedColumnStyles } from "./styles" -import { UnreadNumber } from "./unread-number" +import { UnreadNumber } from "./UnreadNumber" export const useFeedsGroupedData = (view: FeedViewType) => { const { data: remoteData } = useAuthQuery(Queries.subscription.byView(view)) diff --git a/apps/renderer/src/modules/feed-column/list.tsx b/apps/renderer/src/modules/timeline-column/FeedList.tsx similarity index 57% rename from apps/renderer/src/modules/feed-column/list.tsx rename to apps/renderer/src/modules/timeline-column/FeedList.tsx index 7f243e551..10808cd34 100644 --- a/apps/renderer/src/modules/feed-column/list.tsx +++ b/apps/renderer/src/modules/timeline-column/FeedList.tsx @@ -1,6 +1,6 @@ import { withResponsiveSyncComponent } from "@follow/components/utils/selector.js" -import { FeedList as FeedListDesktop } from "./list.desktop" -import { FeedList as FeedListMobile } from "./list.mobile" +import { FeedList as FeedListDesktop } from "./FeedList.desktop" +import { FeedList as FeedListMobile } from "./FeedList.mobile" export const FeedList = withResponsiveSyncComponent(FeedListDesktop, FeedListMobile) diff --git a/apps/renderer/src/modules/timeline-column/ListFeedList.tsx b/apps/renderer/src/modules/timeline-column/ListFeedList.tsx new file mode 100644 index 000000000..e53d33166 --- /dev/null +++ b/apps/renderer/src/modules/timeline-column/ListFeedList.tsx @@ -0,0 +1,81 @@ +import { ScrollArea } from "@follow/components/ui/scroll-area/index.js" +import { + Tooltip, + TooltipContent, + TooltipPortal, + TooltipTrigger, +} from "@follow/components/ui/tooltip/index.js" +import { cn } from "@follow/utils/utils" +import dayjs from "dayjs" +import type { FC } from "react" +import { useTranslation } from "react-i18next" + +import { useNavigateEntry } from "~/hooks/biz/useNavigateEntry" +import { useFeedById } from "~/store/feed" +import { useListById } from "~/store/list" + +import { FeedIcon } from "../feed/feed-icon" +import { FeedTitle } from "../feed/feed-title" +import { feedColumnStyles } from "./styles" + +export const ListFeedList: FC<{ listId: string }> = ({ listId }) => { + const list = useListById(listId) + + if (!list) return null + return ( + + {list?.feedIds.map((feedId) => )} + + ) +} + +interface FeedItemProps { + feedId: string +} +const FeedItem = ({ feedId }: FeedItemProps) => { + const feed = useFeedById(feedId) + const { t } = useTranslation() + const navigate = useNavigateEntry() + if (!feed) return null + + const handleClick = () => { + navigate({ feedId }) + } + return ( +
+
+ + + {feed?.errorAt && ( + + + + + + +
+ + {t("feed_item.error_since")}{" "} + {dayjs + .duration(dayjs(feed.errorAt).diff(dayjs(), "minute"), "minute") + .humanize(true)} +
+ {!!feed.errorMessage && ( +
+ + {feed.errorMessage} +
+ )} +
+
+
+ )} +
+
+ ) +} diff --git a/apps/renderer/src/modules/feed-column/header.tsx b/apps/renderer/src/modules/timeline-column/TimelineColumnHeader.tsx similarity index 96% rename from apps/renderer/src/modules/feed-column/header.tsx rename to apps/renderer/src/modules/timeline-column/TimelineColumnHeader.tsx index 549c5486b..65018da8c 100644 --- a/apps/renderer/src/modules/feed-column/header.tsx +++ b/apps/renderer/src/modules/timeline-column/TimelineColumnHeader.tsx @@ -15,7 +15,7 @@ import { toast } from "sonner" import { setAppSearchOpen } from "~/atoms/app" import { useGeneralSettingKey } from "~/atoms/settings/general" import { useIsZenMode, useSetZenMode } from "~/atoms/settings/ui" -import { setFeedColumnShow, useFeedColumnShow } from "~/atoms/sidebar" +import { setTimelineColumnShow, useTimelineColumnShow } from "~/atoms/sidebar" import { useNavigateEntry } from "~/hooks/biz/useNavigateEntry" import { useRouteParamsSelector } from "~/hooks/biz/useRouteParams" import { useI18n } from "~/hooks/common" @@ -37,7 +37,7 @@ const useBackHome = (timelineId?: string) => { ) } -export const FeedColumnHeader = memo(() => { +export const TimelineColumnHeader = memo(() => { const timelineId = useRouteParamsSelector((s) => s.timelineId) const navigateBackHome = useBackHome(timelineId) const normalStyle = !window.electron || window.electron.process.platform !== "darwin" @@ -80,7 +80,7 @@ export const FeedColumnHeader = memo(() => { }) const LayoutActionButton = () => { - const feedColumnShow = useFeedColumnShow() + const feedColumnShow = useTimelineColumnShow() const [animation, setAnimation] = useState({ width: !feedColumnShow ? "auto" : 0, @@ -119,7 +119,7 @@ const LayoutActionButton = () => { if (isZenMode) { setIsZenMode(false) } else { - setFeedColumnShow(!feedColumnShow) + setTimelineColumnShow(!feedColumnShow) } }} /> diff --git a/apps/renderer/src/modules/feed-column/timeline-list.tsx b/apps/renderer/src/modules/timeline-column/TimelineList.tsx similarity index 76% rename from apps/renderer/src/modules/feed-column/timeline-list.tsx rename to apps/renderer/src/modules/timeline-column/TimelineList.tsx index ae00a07bb..792312bb2 100644 --- a/apps/renderer/src/modules/feed-column/timeline-list.tsx +++ b/apps/renderer/src/modules/timeline-column/TimelineList.tsx @@ -6,17 +6,17 @@ import { ROUTE_TIMELINE_OF_VIEW, } from "~/constants" -import { FeedList } from "./list" +import { FeedList } from "./FeedList" +import { ListFeedList } from "./ListFeedList" export default function TimelineList({ timelineId }: { timelineId: string }) { if (timelineId.startsWith(ROUTE_TIMELINE_OF_VIEW)) { const id = Number.parseInt(timelineId.slice(ROUTE_TIMELINE_OF_VIEW.length), 10) as FeedViewType return } else if (timelineId.startsWith(ROUTE_TIMELINE_OF_LIST)) { - // const id = timelineId.slice(ROUTE_TIMELINE_OF_LIST.length) - return null + const listId = timelineId.slice(ROUTE_TIMELINE_OF_LIST.length) + return } else if (timelineId.startsWith(ROUTE_TIMELINE_OF_INBOX)) { - // const id = timelineId.slice(ROUTE_TIMELINE_OF_INBOX.length) return null } } diff --git a/apps/renderer/src/modules/feed-column/timeline-switch-button.tsx b/apps/renderer/src/modules/timeline-column/TimelineSwitchButton.tsx similarity index 100% rename from apps/renderer/src/modules/feed-column/timeline-switch-button.tsx rename to apps/renderer/src/modules/timeline-column/TimelineSwitchButton.tsx diff --git a/apps/renderer/src/modules/feed-column/unread-number.tsx b/apps/renderer/src/modules/timeline-column/UnreadNumber.tsx similarity index 100% rename from apps/renderer/src/modules/feed-column/unread-number.tsx rename to apps/renderer/src/modules/timeline-column/UnreadNumber.tsx diff --git a/apps/renderer/src/modules/feed-column/atom.ts b/apps/renderer/src/modules/timeline-column/atom.ts similarity index 100% rename from apps/renderer/src/modules/feed-column/atom.ts rename to apps/renderer/src/modules/timeline-column/atom.ts diff --git a/apps/renderer/src/modules/feed-column/context.ts b/apps/renderer/src/modules/timeline-column/context.ts similarity index 100% rename from apps/renderer/src/modules/feed-column/context.ts rename to apps/renderer/src/modules/timeline-column/context.ts diff --git a/apps/renderer/src/modules/feed-column/hook.ts b/apps/renderer/src/modules/timeline-column/hook.ts similarity index 100% rename from apps/renderer/src/modules/feed-column/hook.ts rename to apps/renderer/src/modules/timeline-column/hook.ts diff --git a/apps/renderer/src/modules/feed-column/index.module.css b/apps/renderer/src/modules/timeline-column/index.module.css similarity index 100% rename from apps/renderer/src/modules/feed-column/index.module.css rename to apps/renderer/src/modules/timeline-column/index.module.css diff --git a/apps/renderer/src/modules/feed-column/index.tsx b/apps/renderer/src/modules/timeline-column/index.tsx similarity index 96% rename from apps/renderer/src/modules/feed-column/index.tsx rename to apps/renderer/src/modules/timeline-column/index.tsx index 126bdc4c1..52e024750 100644 --- a/apps/renderer/src/modules/feed-column/index.tsx +++ b/apps/renderer/src/modules/timeline-column/index.tsx @@ -15,7 +15,7 @@ import { isHotkeyPressed, useHotkeys } from "react-hotkeys-hook" import { useRootContainerElement } from "~/atoms/dom" import { useUISettingKey } from "~/atoms/settings/ui" -import { setFeedColumnShow, useFeedColumnShow } from "~/atoms/sidebar" +import { setTimelineColumnShow, useTimelineColumnShow } from "~/atoms/sidebar" import { HotKeyScopeMap, isElectronBuild } from "~/constants" import { shortcuts } from "~/constants/shortcuts" import { useNavigateEntry } from "~/hooks/biz/useNavigateEntry" @@ -25,11 +25,11 @@ import { useTimelineList } from "~/hooks/biz/useTimelineList" import { WindowUnderBlur } from "../../components/ui/background" import { getSelectedFeedIds, resetSelectedFeedIds, setSelectedFeedIds } from "./atom" -import { FeedColumnHeader } from "./header" import { useShouldFreeUpSpace } from "./hook" import styles from "./index.module.css" -import TimelineList from "./timeline-list" -import { TimelineSwitchButton } from "./timeline-switch-button" +import { TimelineColumnHeader } from "./TimelineColumnHeader" +import TimelineList from "./TimelineList" +import { TimelineSwitchButton } from "./TimelineSwitchButton" const lethargy = new Lethargy() @@ -123,7 +123,7 @@ export function FeedColumn({ children, className }: PropsWithChildren<{ classNam }) const shouldFreeUpSpace = useShouldFreeUpSpace() - const feedColumnShow = useFeedColumnShow() + const feedColumnShow = useTimelineColumnShow() const rootContainerElement = useRootContainerElement() return ( @@ -137,13 +137,13 @@ export function FeedColumn({ children, className }: PropsWithChildren<{ classNam )} onClick={useCallback(() => navigateBackHome(), [navigateBackHome])} > - + {!feedColumnShow && ( setFeedColumnShow(true)} + onClick={() => setTimelineColumnShow(true)} > diff --git a/apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx b/apps/renderer/src/modules/timeline-column/sort-by/SortByAlphabeticalList.tsx similarity index 97% rename from apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx rename to apps/renderer/src/modules/timeline-column/sort-by/SortByAlphabeticalList.tsx index f1eff0a1f..18130a19a 100644 --- a/apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx +++ b/apps/renderer/src/modules/timeline-column/sort-by/SortByAlphabeticalList.tsx @@ -6,8 +6,8 @@ import { getPreferredTitle, useFeedStore } from "~/store/feed" import { useSubscriptionStore } from "~/store/subscription" import { useFeedListSortSelector } from "../atom" -import { FeedCategory } from "../category" -import { InboxItem, ListItem } from "../item" +import { FeedCategory } from "../FeedCategory" +import { InboxItem, ListItem } from "../FeedItem" import type { FeedListProps, ListListProps } from "./types" export const SortByAlphabeticalFeedList = ({ diff --git a/apps/renderer/src/modules/feed-column/sort-by/SortByUnreadList.tsx b/apps/renderer/src/modules/timeline-column/sort-by/SortByUnreadList.tsx similarity index 96% rename from apps/renderer/src/modules/feed-column/sort-by/SortByUnreadList.tsx rename to apps/renderer/src/modules/timeline-column/sort-by/SortByUnreadList.tsx index 85107bd6d..c54bed910 100644 --- a/apps/renderer/src/modules/feed-column/sort-by/SortByUnreadList.tsx +++ b/apps/renderer/src/modules/timeline-column/sort-by/SortByUnreadList.tsx @@ -3,7 +3,7 @@ import { Fragment, useCallback } from "react" import { useFeedUnreadStore } from "~/store/unread" import { useFeedListSortSelector } from "../atom" -import { FeedCategory } from "../category" +import { FeedCategory } from "../FeedCategory" import type { FeedListProps } from "./types" export const SortByUnreadFeedList = ({ view, data, categoryOpenStateData }: FeedListProps) => { diff --git a/apps/renderer/src/modules/feed-column/sort-by/index.tsx b/apps/renderer/src/modules/timeline-column/sort-by/index.tsx similarity index 100% rename from apps/renderer/src/modules/feed-column/sort-by/index.tsx rename to apps/renderer/src/modules/timeline-column/sort-by/index.tsx diff --git a/apps/renderer/src/modules/feed-column/sort-by/types.tsx b/apps/renderer/src/modules/timeline-column/sort-by/types.tsx similarity index 100% rename from apps/renderer/src/modules/feed-column/sort-by/types.tsx rename to apps/renderer/src/modules/timeline-column/sort-by/types.tsx diff --git a/apps/renderer/src/modules/feed-column/styles.ts b/apps/renderer/src/modules/timeline-column/styles.ts similarity index 100% rename from apps/renderer/src/modules/feed-column/styles.ts rename to apps/renderer/src/modules/timeline-column/styles.ts