diff --git a/src/renderer/src/constants/copy.ts b/src/renderer/src/constants/copy.ts
index 4de0d1ce2..e58a1126d 100644
--- a/src/renderer/src/constants/copy.ts
+++ b/src/renderer/src/constants/copy.ts
@@ -1,5 +1,5 @@
const OpenInBrowser = (_t?: any) =>
- window.electron ? "Open in Browser" : "Open in New Tab"
+ window.electron ? "Open in browser" : "Open in new tab"
export const COPY_MAP = {
OpenInBrowser,
diff --git a/src/renderer/src/hooks/biz/useEntryActions.tsx b/src/renderer/src/hooks/biz/useEntryActions.tsx
index b79752e8e..459b878e5 100644
--- a/src/renderer/src/hooks/biz/useEntryActions.tsx
+++ b/src/renderer/src/hooks/biz/useEntryActions.tsx
@@ -189,7 +189,7 @@ export const useEntryActions = ({
},
{
key: "copyLink",
- name: "Copy Link",
+ name: "Copy link",
className: "i-mgc-link-cute-re",
hide: !populatedEntry.entries.url,
shortcut: shortcuts.entry.copyLink.key,
@@ -223,7 +223,8 @@ export const useEntryActions = ({
"",
),
key: "readability",
- hide: type === "entryList" ||
+ hide:
+ type === "entryList" ||
views[view].wideMode ||
!populatedEntry.entries.url ||
!window.electron,
@@ -231,7 +232,7 @@ export const useEntryActions = ({
onClick: readabilityToggle,
},
{
- name: "Save Media to Eagle",
+ name: "Save media to Eagle",
icon: ,
key: "saveToEagle",
hide:
@@ -284,7 +285,7 @@ export const useEntryActions = ({
},
{
key: "read",
- name: `Mark as Read`,
+ name: `Mark as read`,
shortcut: shortcuts.entry.toggleRead.key,
className: "i-mgc-round-cute-fi",
hide: !!(!!populatedEntry.read || populatedEntry.collections),
@@ -294,7 +295,7 @@ export const useEntryActions = ({
},
{
key: "unread",
- name: `Mark as Unread`,
+ name: `Mark as unread`,
shortcut: shortcuts.entry.toggleRead.key,
className: "i-mgc-round-cute-re",
hide: !!(!populatedEntry.read || populatedEntry.collections),
@@ -317,6 +318,8 @@ export const useEntryActions = ({
read,
unread,
entryReadabilityStatus,
+ feed?.ownerUserId,
+ type,
])
return {
diff --git a/src/renderer/src/hooks/biz/useFeedActions.tsx b/src/renderer/src/hooks/biz/useFeedActions.tsx
index 8008bd9c2..14057a676 100644
--- a/src/renderer/src/hooks/biz/useFeedActions.tsx
+++ b/src/renderer/src/hooks/biz/useFeedActions.tsx
@@ -41,7 +41,7 @@ export const useFeedActions = ({
const items: NativeMenuItem[] = [
{
type: "text" as const,
- label: isEntryList ? "Edit Feed" : "Edit",
+ label: isEntryList ? "Edit feed" : "Edit",
shortcut: "E",
click: () => {
present({
@@ -54,13 +54,13 @@ export const useFeedActions = ({
},
{
type: "text" as const,
- label: isEntryList ? "Unfollow Feed" : "Unfollow",
+ label: isEntryList ? "Unfollow feed" : "Unfollow",
shortcut: "Meta+Backspace",
click: () => deleteSubscription.mutate(subscription),
},
{
type: "text" as const,
- label: "Navigate to Feed",
+ label: "Navigate to feed",
shortcut: "Meta+G",
disabled: !isEntryList || getRouteParams().feedId === feedId,
click: () => {
@@ -73,7 +73,7 @@ export const useFeedActions = ({
},
{
type: "text",
- label: "Mark All as Read",
+ label: "Mark all as read",
shortcut: "Meta+Shift+A",
disabled: isEntryList,
click: () => subscriptionActions.markReadByFeedIds([feedId]),
@@ -105,7 +105,7 @@ export const useFeedActions = ({
{
type: "text" as const,
- label: "Open Feed in Browser",
+ label: "Open feed in browser",
disabled: isEntryList,
shortcut: "O",
click: () =>
@@ -113,7 +113,7 @@ export const useFeedActions = ({
},
{
type: "text" as const,
- label: "Open Site in Browser",
+ label: "Open site in browser",
shortcut: "Meta+O",
disabled: isEntryList,
click: () => {
@@ -129,14 +129,14 @@ export const useFeedActions = ({
},
{
type: "text" as const,
- label: "Copy Feed URL",
+ label: "Copy feed URL",
disabled: isEntryList,
shortcut: "Meta+C",
click: () => navigator.clipboard.writeText(feed.url),
},
{
type: "text" as const,
- label: "Copy Feed ID",
+ label: "Copy feed ID",
shortcut: "Meta+Shift+C",
disabled: isEntryList,
click: () => {
diff --git a/src/renderer/src/modules/entry-column/components/DateItem.tsx b/src/renderer/src/modules/entry-column/components/DateItem.tsx
index 841fe22b9..83e3317b5 100644
--- a/src/renderer/src/modules/entry-column/components/DateItem.tsx
+++ b/src/renderer/src/modules/entry-column/components/DateItem.tsx
@@ -13,7 +13,7 @@ import {
useState,
} from "react"
-import { useMarkAll } from "../hooks/useMarkAll"
+import { useMarkAllByRoute } from "../hooks/useMarkAll"
import { MarkAllReadButton } from "./mark-all-button"
const useParseDate = (date: string) =>
@@ -77,7 +77,7 @@ const UniversalDateItem = ({
const RelativeElement =
- const handleMarkAllAsRead = useMarkAll({
+ const handleMarkAllAsRead = useMarkAllByRoute({
startTime: startOfDay,
endTime: endOfDay,
})
diff --git a/src/renderer/src/modules/entry-column/components/mark-all-button.tsx b/src/renderer/src/modules/entry-column/components/mark-all-button.tsx
index 4b0d20a3c..7fedcca6e 100644
--- a/src/renderer/src/modules/entry-column/components/mark-all-button.tsx
+++ b/src/renderer/src/modules/entry-column/components/mark-all-button.tsx
@@ -13,7 +13,7 @@ import type { FC, ReactNode } from "react"
import { forwardRef, useState } from "react"
import type { MarkAllFilter } from "../hooks/useMarkAll"
-import { useMarkAll } from "../hooks/useMarkAll"
+import { useMarkAllByRoute } from "../hooks/useMarkAll"
interface MarkAllButtonProps {
filter?: MarkAllFilter
@@ -28,7 +28,7 @@ export const MarkAllReadButton = forwardRef<
>(({ filter, className, which = "all", shortcut }, ref) => {
const [markPopoverOpen, setMarkPopoverOpen] = useState(false)
- const handleMarkAllAsRead = useMarkAll(filter)
+ const handleMarkAllAsRead = useMarkAllByRoute(filter)
return (
@@ -87,7 +87,7 @@ export const FlatMarkAllReadButton: FC = (props) => {
const [status, setStatus] = useState<"initial" | "confirm" | "done">(
"initial",
)
- const handleMarkAll = useMarkAll(filter)
+ const handleMarkAll = useMarkAllByRoute(filter)
if (status === "done") return null
const animate = {
diff --git a/src/renderer/src/modules/entry-column/hooks/useMarkAll.ts b/src/renderer/src/modules/entry-column/hooks/useMarkAll.ts
index 7f8689b69..da743f966 100644
--- a/src/renderer/src/modules/entry-column/hooks/useMarkAll.ts
+++ b/src/renderer/src/modules/entry-column/hooks/useMarkAll.ts
@@ -7,7 +7,7 @@ export interface MarkAllFilter {
startTime: number
endTime: number
}
-export const useMarkAll = (filter?: MarkAllFilter) => {
+export const useMarkAllByRoute = (filter?: MarkAllFilter) => {
const routerParams = useRouteParms()
const { feedId, view } = routerParams
const folderIds = useFolderFeedsByFeedId({
diff --git a/src/renderer/src/modules/feed-column/category.tsx b/src/renderer/src/modules/feed-column/category.tsx
index 8ba2d1e45..ba1add888 100644
--- a/src/renderer/src/modules/feed-column/category.tsx
+++ b/src/renderer/src/modules/feed-column/category.tsx
@@ -154,6 +154,13 @@ function FeedCategoryImpl({
},
})),
},
+ {
+ type: "text",
+ label: "Mark as read",
+ click: () => {
+ subscriptionActions.markReadByFeedIds(ids)
+ },
+ },
{ type: "separator" },
{
type: "text",