From 485d2d5d35fe0add2b3cf8621aa26daeb34af955 Mon Sep 17 00:00:00 2001 From: Innei Date: Tue, 15 Oct 2024 00:46:58 +0800 Subject: [PATCH] pref: use `slice` instead of `replace` Signed-off-by: Innei --- apps/renderer/src/constants/app.tsx | 2 ++ apps/renderer/src/lib/route-builder.ts | 5 ++++- .../entry-column/templates/list-item-template.tsx | 2 +- .../feed-column/sort-by/SortByAlphabeticalList.tsx | 9 ++++++++- apps/renderer/src/modules/settings/constants.ts | 11 ++++++++++- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/apps/renderer/src/constants/app.tsx b/apps/renderer/src/constants/app.tsx index 6a3ff78db..1e1404991 100644 --- a/apps/renderer/src/constants/app.tsx +++ b/apps/renderer/src/constants/app.tsx @@ -15,3 +15,5 @@ export const ROUTE_FEED_IN_INBOX = "inbox-" export const DAILY_CLAIM_AMOUNT = "20" export const INVITATION_PRICE = "100" + +export const INBOX_PREFIX_ID = "inbox-" diff --git a/apps/renderer/src/lib/route-builder.ts b/apps/renderer/src/lib/route-builder.ts index f88b2a65a..31a66cf8b 100644 --- a/apps/renderer/src/lib/route-builder.ts +++ b/apps/renderer/src/lib/route-builder.ts @@ -9,7 +9,10 @@ function nestPaths(paths: string[]): NestedStructure { paths.forEach((path) => { // Remove the './pages' prefix and the '.tsx' suffix - const trimmedPath = path.replace("./pages/", "").replace(".tsx", "") + const prefix = "./pages/" + const suffix = ".tsx" + const trimmedPath = path.slice(prefix.length, -suffix.length) + const parts = trimmedPath.split("/") let currentLevel = result diff --git a/apps/renderer/src/modules/entry-column/templates/list-item-template.tsx b/apps/renderer/src/modules/entry-column/templates/list-item-template.tsx index 713fa554c..cce9aae10 100644 --- a/apps/renderer/src/modules/entry-column/templates/list-item-template.tsx +++ b/apps/renderer/src/modules/entry-column/templates/list-item-template.tsx @@ -58,7 +58,7 @@ export function ListItem({ const isSubscription = withFollow && entry?.entries.url?.startsWith(UrlBuilder.shareFeed(entry.feedId)) const feedId = isSubscription - ? entry?.entries.url?.replace(UrlBuilder.shareFeed(entry.feedId), "") + ? entry?.entries.url?.slice(UrlBuilder.shareFeed(entry.feedId).length) : undefined const isFollowed = !!useSubscriptionStore((state) => feedId && state.data[feedId]) const { present } = useModalStack() diff --git a/apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx b/apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx index ff4842b6f..e4ff023ec 100644 --- a/apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx +++ b/apps/renderer/src/modules/feed-column/sort-by/SortByAlphabeticalList.tsx @@ -1,5 +1,6 @@ import { Fragment } from "react" +import { INBOX_PREFIX_ID } from "~/constants" import { sortByAlphabet } from "~/lib/utils" import { getPreferredTitle, useFeedStore } from "~/store/feed" import { getSubscriptionByFeedId } from "~/store/subscription" @@ -76,7 +77,13 @@ export const SortByAlphabeticalInboxList = ({ view, data }: ListListProps) => { return (
{Object.keys(data).map((feedId) => ( - + ))}
) diff --git a/apps/renderer/src/modules/settings/constants.ts b/apps/renderer/src/modules/settings/constants.ts index 0c9e270e0..e2550a08b 100644 --- a/apps/renderer/src/modules/settings/constants.ts +++ b/apps/renderer/src/modules/settings/constants.ts @@ -12,7 +12,16 @@ function getSettings() { loader: () => SettingPageConfig }[] for (const path in map) { - const p = path.split("/").pop()?.replace(".tsx", "").replace("(settings)", "")! + const prefix = "(settings)" + const postfix = ".tsx" + const lastItem = path.split("/").pop() + + if (!lastItem) continue + let p = lastItem.slice(0, -postfix.length) + + if (p.includes(prefix)) { + p = p.replace(prefix, "") + } if (p === "index" || p === "layout") continue