From f7961edc29d786a57f06f9d128a5ca9e506e0eea Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 11 Oct 2024 15:21:54 +0800 Subject: [PATCH 1/2] fix: update inbox action button Signed-off-by: Innei --- .../src/components/ui/button/index.tsx | 15 ++++++++++-- .../src/modules/discover/inbox-list-form.tsx | 24 ++++++++++++------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/apps/renderer/src/components/ui/button/index.tsx b/apps/renderer/src/components/ui/button/index.tsx index 97caf5349..00716cf80 100644 --- a/apps/renderer/src/components/ui/button/index.tsx +++ b/apps/renderer/src/components/ui/button/index.tsx @@ -27,8 +27,15 @@ interface ActionButtonProps { disabled?: boolean shortcut?: string disableTriggerShortcut?: boolean + size?: "sm" | "md" | "base" } +const actionButtonStyleVariant = { + size: { + base: tw`text-xl size-8`, + sm: tw`text-sm size-6`, + }, +} export const ActionButton = React.forwardRef< HTMLButtonElement, ComponentType & React.HTMLAttributes @@ -45,6 +52,7 @@ export const ActionButton = React.forwardRef< shortcut, disabled, disableTriggerShortcut, + size = "base", ...rest }, ref, @@ -60,10 +68,11 @@ export const ActionButton = React.forwardRef< // @see https://github.com/radix-ui/primitives/issues/2248#issuecomment-2147056904 onFocusCapture={stopPropagation} className={cn( - "no-drag-region inline-flex size-8 items-center justify-center text-xl", + "no-drag-region inline-flex items-center justify-center", active && "bg-zinc-500/15 hover:bg-zinc-500/20", "rounded-md duration-200 hover:bg-theme-button-hover data-[state=open]:bg-theme-button-hover", "disabled:cursor-not-allowed disabled:opacity-50", + actionButtonStyleVariant.size[size], className, )} type="button" @@ -86,7 +95,9 @@ export const ActionButton = React.forwardRef< )} {tooltip ? ( - {Trigger} + + {Trigger} + {tooltip} diff --git a/apps/renderer/src/modules/discover/inbox-list-form.tsx b/apps/renderer/src/modules/discover/inbox-list-form.tsx index 1a422fc5c..2c4342841 100644 --- a/apps/renderer/src/modules/discover/inbox-list-form.tsx +++ b/apps/renderer/src/modules/discover/inbox-list-form.tsx @@ -3,7 +3,7 @@ import { useMutation } from "@tanstack/react-query" import { useTranslation } from "react-i18next" import { toast } from "sonner" -import { Button } from "~/components/ui/button" +import { ActionButton, Button } from "~/components/ui/button" import { CopyButton } from "~/components/ui/code-highlighter" import { useModalStack } from "~/components/ui/modal" import { @@ -78,8 +78,9 @@ export function DiscoverInboxList() { - - + ))} @@ -162,9 +163,14 @@ const ConfirmDestroyModalContent = ({ id, onSuccess }: { id: string; onSuccess: return (
-
{t("discover.inbox_destroy_warning")}
+
+ + {t("discover.inbox_destroy_warning")} +
- +
) From eae857d25e31532fc2f53e3edc71263a94410922 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Fri, 11 Oct 2024 18:19:25 +0800 Subject: [PATCH 2/2] feat: export feeds, close #873 --- apps/renderer/src/modules/settings/tabs/general.tsx | 12 ++++++++++++ locales/settings/en.json | 3 +++ 2 files changed, 15 insertions(+) diff --git a/apps/renderer/src/modules/settings/tabs/general.tsx b/apps/renderer/src/modules/settings/tabs/general.tsx index f21170432..6256a621f 100644 --- a/apps/renderer/src/modules/settings/tabs/general.tsx +++ b/apps/renderer/src/modules/settings/tabs/general.tsx @@ -1,4 +1,5 @@ import { IN_ELECTRON } from "@follow/shared/constants" +import { env } from "@follow/shared/env" import { useQuery } from "@tanstack/react-query" import { useAtom } from "jotai" import { useCallback, useEffect } from "react" @@ -159,6 +160,17 @@ export const SettingGeneral = () => { description: t("general.rebuild_database.description"), buttonText: t("general.rebuild_database.button"), }, + { + label: t("general.export.label"), + description: t("general.export.description"), + buttonText: t("general.export.button"), + action: () => { + const link = document.createElement("a") + link.href = `${env.VITE_API_URL}/subscriptions/export` + link.download = "follow.opml" + link.click() + }, + }, { type: "title", value: t("general.network"), disabled: !IN_ELECTRON }, IN_ELECTRON && NettingSetting, diff --git a/locales/settings/en.json b/locales/settings/en.json index e405e9a5e..c432afdc1 100644 --- a/locales/settings/en.json +++ b/locales/settings/en.json @@ -89,6 +89,9 @@ "general.app": "App", "general.data_persist.description": "Persist data locally to enable offline access and local search.", "general.data_persist.label": "Persist data for offline usage", + "general.export.button": "Export", + "general.export.description": "Export your feeds to an OPML file.", + "general.export.label": "Export Feeds", "general.group_by_date.description": "Group entries by date.", "general.group_by_date.label": "Group by date", "general.language": "Language",