From 2b98e6ef5e76f15b7accb95b1af3ada9bfabd216 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Mon, 21 Oct 2024 22:26:14 +0800 Subject: [PATCH] feat: allow disable action close https://github.com/RSSNext/Follow/issues/989 --- .../src/components/ui/input/Input.tsx | 1 + apps/renderer/src/models/types.ts | 1 + .../src/modules/settings/action-card.tsx | 77 ++++++++++++++----- packages/shared/src/hono.ts | 17 ++++ 4 files changed, 78 insertions(+), 18 deletions(-) diff --git a/apps/renderer/src/components/ui/input/Input.tsx b/apps/renderer/src/components/ui/input/Input.tsx index f1ad58703..77a836ef8 100644 --- a/apps/renderer/src/components/ui/input/Input.tsx +++ b/apps/renderer/src/components/ui/input/Input.tsx @@ -24,6 +24,7 @@ export const Input = forwardRef< "border border-border", "placeholder:text-theme-placeholder-text dark:bg-zinc-700/[0.15] dark:text-zinc-200", "hover:border-accent/60", + "disabled:cursor-not-allowed disabled:opacity-50", props.type === "password" ? "font-mono placeholder:font-sans" : "font-sans", "w-full", className, diff --git a/apps/renderer/src/models/types.ts b/apps/renderer/src/models/types.ts index 822eb8acf..851b6736f 100644 --- a/apps/renderer/src/models/types.ts +++ b/apps/renderer/src/models/types.ts @@ -101,6 +101,7 @@ export type ActionsInput = { value?: string }[] result: { + disabled?: boolean translation?: string summary?: boolean readability?: boolean diff --git a/apps/renderer/src/modules/settings/action-card.tsx b/apps/renderer/src/modules/settings/action-card.tsx index db4762545..899d45d11 100644 --- a/apps/renderer/src/modules/settings/action-card.tsx +++ b/apps/renderer/src/modules/settings/action-card.tsx @@ -73,7 +73,7 @@ const DeleteTableCell = ({ disabled, onClick }: { disabled?: boolean; onClick?: ) -const AddTableRow = ({ onClick }: { onClick?: () => void }) => { +const AddTableRow = ({ onClick, disabled }: { onClick?: () => void; disabled?: boolean }) => { const { t } = useTranslation("settings") return ( @@ -91,10 +92,12 @@ const OperationTableCell = ({ type, value, onValueChange, + disabled, }: { type: string value?: ActionOperation onValueChange?: (value: ActionOperation) => void + disabled?: boolean }) => { const { t } = useTranslation("settings") @@ -141,7 +144,7 @@ const OperationTableCell = ({ const options = OperationOptions.filter((option) => option.types.includes(type)) return ( - @@ -260,6 +263,8 @@ export function ActionCard({ ] }, [t]) + const { disabled } = data.result + return ( @@ -287,6 +292,14 @@ export function ActionCard({ />
{data.name}
+ { + data.result.disabled = !checked + onChange(data) + }} + onClick={stopPropagation} + /> } > @@ -307,8 +320,12 @@ export function ActionCard({ onChange(data) }} > - - + + @@ -331,6 +348,7 @@ export function ActionCard({ return ( { data.condition.splice(conditionIdx, 1) onChange(data) @@ -338,6 +356,7 @@ export function ActionCard({ /> change("value", value)} value={condition.value} > @@ -367,6 +388,7 @@ export function ActionCard({ ) : ( { data.condition.push({}) onChange(data) @@ -396,6 +419,7 @@ export function ActionCard({ {t("actions.action_card.generate_summary")} { data.result.summary = checked @@ -410,6 +434,7 @@ export function ActionCard({ {t("actions.action_card.translate_into")} change("from", e.target.value)} @@ -547,6 +578,7 @@ export function ActionCard({ change("to", e.target.value)} @@ -559,6 +591,7 @@ export function ActionCard({ )} { if (!data.result.rewriteRules) { data.result.rewriteRules = [] @@ -596,6 +629,7 @@ export function ActionCard({ return ( { if (data.result.blockRules?.length === 1) { delete data.result.blockRules @@ -607,6 +641,7 @@ export function ActionCard({ /> change("operator", value)} /> )} { if (!data.result.blockRules) { data.result.blockRules = [] @@ -666,6 +704,7 @@ export function ActionCard({ return (
{ if (data.result.webhooks?.length === 1) { delete data.result.webhooks @@ -676,6 +715,7 @@ export function ActionCard({ }} /> )} { if (!data.result.webhooks) { data.result.webhooks = [] diff --git a/packages/shared/src/hono.ts b/packages/shared/src/hono.ts index 6d410905f..02e5d0e77 100644 --- a/packages/shared/src/hono.ts +++ b/packages/shared/src/hono.ts @@ -213,6 +213,7 @@ declare const actions: drizzle_orm_pg_core.PgTableWithColumns<{ value: string; }[]; result: { + disabled?: boolean; translation?: z.infer; summary?: boolean; readability?: boolean; @@ -260,6 +261,7 @@ declare const actionsItemOpenAPISchema: z.ZodObject<{ operator: "contains" | "not_contains" | "eq" | "not_eq" | "gt" | "lt" | "regex"; }>, "many">; result: z.ZodObject<{ + disabled: z.ZodOptional; translation: z.ZodOptional>; summary: z.ZodOptional; readability: z.ZodOptional; @@ -292,6 +294,7 @@ declare const actionsItemOpenAPISchema: z.ZodObject<{ webhooks: z.ZodOptional>; }, "strip", z.ZodTypeAny, { summary?: boolean | undefined; + disabled?: boolean | undefined; translation?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; readability?: boolean | undefined; sourceContent?: boolean | undefined; @@ -309,6 +312,7 @@ declare const actionsItemOpenAPISchema: z.ZodObject<{ webhooks?: string[] | undefined; }, { summary?: boolean | undefined; + disabled?: boolean | undefined; translation?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; readability?: boolean | undefined; sourceContent?: boolean | undefined; @@ -329,6 +333,7 @@ declare const actionsItemOpenAPISchema: z.ZodObject<{ name: string; result: { summary?: boolean | undefined; + disabled?: boolean | undefined; translation?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; readability?: boolean | undefined; sourceContent?: boolean | undefined; @@ -354,6 +359,7 @@ declare const actionsItemOpenAPISchema: z.ZodObject<{ name: string; result: { summary?: boolean | undefined; + disabled?: boolean | undefined; translation?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; readability?: boolean | undefined; sourceContent?: boolean | undefined; @@ -400,6 +406,7 @@ declare const actionsOpenAPISchema: z.ZodObject, "many">; result: z.ZodObject<{ + disabled: z.ZodOptional; translation: z.ZodOptional>; summary: z.ZodOptional; readability: z.ZodOptional; @@ -432,6 +439,7 @@ declare const actionsOpenAPISchema: z.ZodObject>; }, "strip", z.ZodTypeAny, { summary?: boolean | undefined; + disabled?: boolean | undefined; translation?: "en" | "ja" | "zh-CN" | "zh-TW" | undefined; readability?: boolean | undefined; sourceContent?: boolean | undefined; @@ -449,6 +457,7 @@ declare const actionsOpenAPISchema: z.ZodObject