Skip to content

Commit 11b246e

Browse files
authored
Merge pull request #1009 from fudiwei/main
2 parents 8ebfe89 + 9e8f36c commit 11b246e

File tree

7 files changed

+22
-19
lines changed

7 files changed

+22
-19
lines changed

ui/eslint.config.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,14 @@ export default defineConfig(
120120
// React
121121
{
122122
name: "react",
123-
extends: [reactHooksPlugin.configs.flat["recommended"], reactRefreshPlugin.configs["vite"]],
123+
extends: [reactHooksPlugin.configs.flat["recommended-latest"], reactRefreshPlugin.configs["vite"]],
124124
rules: {
125+
"react-hooks/exhaustive-deps": ["warn"],
126+
"react-hooks/immutability": ["warn"],
127+
"react-hooks/refs": ["warn"],
128+
"react-hooks/preserve-manual-memoization": ["warn"],
129+
"react-hooks/set-state-in-effect": ["warn"],
130+
"react-hooks/set-state-in-render": ["warn"],
125131
"react-refresh/only-export-components": [
126132
"warn",
127133
{

ui/src/components/access/AccessEditDrawer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { IconX } from "@tabler/icons-react";
44
import { useControllableValue, useGetState } from "ahooks";
55
import { App, Button, Drawer, Flex, Form } from "antd";
66

7+
import { notifyTest } from "@/api/notify";
78
import AccessProviderPicker from "@/components/provider/AccessProviderPicker";
89
import Show from "@/components/Show";
910
import { type AccessModel } from "@/domain/access";
1011
import { ACCESS_USAGES } from "@/domain/provider";
11-
import { notifyTest } from "@/api/notify";
1212
import { useTriggerElement, useZustandShallowSelector } from "@/hooks";
1313
import { useAccessesStore } from "@/stores/access";
1414
import { getErrMsg } from "@/utils/error";
@@ -126,7 +126,7 @@ const AccessEditDrawer = ({ afterSubmit, mode, data, loading, trigger, usage, ..
126126
}
127127

128128
try {
129-
await notifyTest({ provider: fieldProvider, accessId: data?.id! });
129+
await notifyTest({ provider: fieldProvider, accessId: data!.id });
130130
message.success(t("common.text.operation_succeeded"));
131131
} catch (err) {
132132
notification.error({ message: t("common.text.request_error"), description: getErrMsg(err) });

ui/src/components/provider/_shared.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export interface SharedSelectProps<T extends Provider>
1919
export const useSelectDataSource = <T extends Provider>({
2020
dataSource,
2121
filters,
22-
deps,
22+
deps = [],
2323
}: {
2424
dataSource: T[];
2525
filters?: Array<(value: string, option: T) => boolean>;
@@ -39,7 +39,7 @@ export const useSelectDataSource = <T extends Provider>({
3939

4040
return true;
4141
});
42-
}, [dataSource, filters, ...(deps ?? [])]);
42+
}, [dataSource, filters, deps]);
4343

4444
const availableDataSource = useMemo(() => {
4545
return filteredDataSource.filter((provider) => {
@@ -49,11 +49,11 @@ export const useSelectDataSource = <T extends Provider>({
4949
return access.provider === provider.type;
5050
});
5151
});
52-
}, [accesses, filteredDataSource, ...(deps ?? [])]);
52+
}, [accesses, filteredDataSource, deps]);
5353

5454
const unavailableDataSource = useMemo(() => {
5555
return filteredDataSource.filter((item) => !availableDataSource.includes(item));
56-
}, [filteredDataSource, availableDataSource, ...(deps ?? [])]);
56+
}, [filteredDataSource, availableDataSource, deps]);
5757

5858
return {
5959
raw: dataSource,
@@ -94,7 +94,7 @@ export const usePickerDataSource = <T extends Provider>({
9494
dataSource,
9595
filters,
9696
keyword,
97-
deps,
97+
deps = [],
9898
}: {
9999
dataSource: T[];
100100
filters?: Array<(value: string, option: T) => boolean>;
@@ -126,7 +126,7 @@ export const usePickerDataSource = <T extends Provider>({
126126

127127
return true;
128128
});
129-
}, [dataSource, filters, keyword, ...(deps ?? [])]);
129+
}, [dataSource, filters, keyword, deps]);
130130

131131
const availableDataSource = useMemo(() => {
132132
return filteredDataSource.filter((provider) => {
@@ -136,11 +136,11 @@ export const usePickerDataSource = <T extends Provider>({
136136
return access.provider === provider.type;
137137
});
138138
});
139-
}, [accesses, filteredDataSource, ...(deps ?? [])]);
139+
}, [accesses, filteredDataSource, deps]);
140140

141141
const unavailableDataSource = useMemo(() => {
142142
return filteredDataSource.filter((item) => !availableDataSource.includes(item));
143-
}, [filteredDataSource, availableDataSource, ...(deps ?? [])]);
143+
}, [filteredDataSource, availableDataSource, deps]);
144144

145145
return {
146146
raw: dataSource,

ui/src/components/workflow/designer/Designer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import {
44
EditorRenderer,
55
EditorState,
66
FixedLayoutEditorProvider,
7-
FlowLayoutDefault,
87
type FixedLayoutPluginContext,
98
type FixedLayoutProps,
109
type FlowDocumentJSON,
10+
FlowLayoutDefault,
1111
type FlowNodeEntity,
1212
FlowTextKey,
1313
} from "@flowgram.ai/fixed-layout-editor";

ui/src/components/workflow/designer/forms/BizDeployNodeConfigFieldsProviderTencentCloudEO.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,7 @@ const getSchema = ({ i18n = getI18n() }: { i18n?: ReturnType<typeof getI18n> })
9393
return z.object({
9494
endpoint: z.string().nullish(),
9595
zoneId: z.string().nonempty(t("workflow_node.deploy.form.tencentcloud_eo_zone_id.placeholder")),
96-
matchPattern: z.enum(
97-
[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD],
98-
t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")
99-
),
96+
matchPattern: z.enum([MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD], t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")),
10097
domains: z.string().refine((v) => {
10198
if (!v) return false;
10299
return String(v)

ui/src/pages/accesses/AccessList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ const AccessList = () => {
302302
return draft;
303303
});
304304
getAccess(access.id).then((data) => {
305-
createDrawer.open({ data: copier(data), loading: true });
305+
createDrawer.open({ data: copier(data) });
306306
});
307307
};
308308

ui/src/pages/workflows/WorkflowDetailDesign.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const WorkflowDetailDesign = () => {
2929

3030
const designerRef = useRef<WorkflowDesignerInstance>(null);
3131
const designerPending = useRef(false); // 保存中时阻止刷新画布
32-
const [designerError, setDesignerError] = useState<any>();
32+
const [designerError, setDesignerError] = useState<unknown>();
3333
useDeepCompareEffect(() => {
3434
if (designerRef.current == null || designerRef.current.document.disposed) return;
3535
if (designerPending.current) return;
@@ -212,7 +212,7 @@ const WorkflowDetailDesign = () => {
212212
</div>
213213
</div>
214214

215-
{designerError && (
215+
{!!designerError && (
216216
<div className="absolute top-1/2 left-1/2 z-10 w-full -translate-1/2 px-4">
217217
<Result status="warning" title="Data corruption!" subTitle={`Error: ${getErrMsg(designerError)}`} />
218218
</div>

0 commit comments

Comments
 (0)