This is an automated email from the ASF dual-hosted git repository.
dengliming pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new 12d75e3f fix: preserve metadata path filter on reload (#683)
12d75e3f is described below
commit 12d75e3f51a60e7ec34fbe8b7d85ef4857e4bd24
Author: Carlos Acosta <[email protected]>
AuthorDate: Sun Sep 27 00:31:02 2026 -0500
fix: preserve metadata path filter on reload (#683)
Co-authored-by: Aeontra <aeontra@localhost>
---
src/models/metadata.js | 4 +--
src/models/metadata.test.js | 51 +++++++++++++++++++++++++++++++++++++
src/routes/System/Metadata/index.js | 19 ++++++--------
3 files changed, 61 insertions(+), 13 deletions(-)
diff --git a/src/models/metadata.js b/src/models/metadata.js
index a47e2f0b..7363a93d 100644
--- a/src/models/metadata.js
+++ b/src/models/metadata.js
@@ -128,8 +128,8 @@ export default {
},
*reload(params, { put }) {
const { fetchValue } = params;
- const { appName, currentPage, pageSize, namespaceId } = fetchValue;
- const payload = { appName, currentPage, pageSize, namespaceId };
+ const { path, currentPage, pageSize, namespaceId } = fetchValue;
+ const payload = { path, currentPage, pageSize, namespaceId };
yield put({ type: "fetch", payload });
},
},
diff --git a/src/models/metadata.test.js b/src/models/metadata.test.js
new file mode 100644
index 00000000..453d0ca0
--- /dev/null
+++ b/src/models/metadata.test.js
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import model from "./metadata";
+
+jest.mock("../services/api", () => ({
+ addMetadata: jest.fn(),
+ deleteMetadata: jest.fn(),
+ findMetadata: jest.fn(),
+ getAllMetadata: jest.fn(),
+ syncData: jest.fn(),
+ updateEnabled: jest.fn(),
+ updateMetadata: jest.fn(),
+}));
+jest.mock("../utils/IntlUtils", () => ({
+ getIntlContent: (key) => key,
+}));
+
+const put = (action) => ({ type: "put", action });
+
+it("preserves the path filter when reloading metadata", () => {
+ const fetchValue = {
+ path: "/api/orders",
+ currentPage: 3,
+ pageSize: 20,
+ namespaceId: "namespace-1",
+ };
+ const generator = model.effects.reload({ fetchValue }, { put });
+
+ expect(generator.next().value).toEqual(
+ put({
+ type: "fetch",
+ payload: fetchValue,
+ }),
+ );
+ expect(generator.next().done).toBe(true);
+});
diff --git a/src/routes/System/Metadata/index.js
b/src/routes/System/Metadata/index.js
index 862a96a4..88aadb0b 100644
--- a/src/routes/System/Metadata/index.js
+++ b/src/routes/System/Metadata/index.js
@@ -47,7 +47,6 @@ export default class Metadata extends Component {
currentPage: 1,
pageSize: 12,
selectedRowKeys: [],
- appName: "",
path: "",
popup: "",
localeName: window.sessionStorage.getItem("locale")
@@ -119,8 +118,7 @@ export default class Metadata extends Component {
editClick = (record, copy) => {
const { dispatch, currentNamespaceId } = this.props;
- const { currentPage, pageSize } = this.state;
- const name = this.state.appName;
+ const { currentPage, pageSize, path: filterPath } = this.state;
dispatch({
type: "metadata/fetchItem",
payload: {
@@ -166,7 +164,7 @@ export default class Metadata extends Component {
type: `metadata/${copy ? "add" : "update"}`,
payload,
fetchValue: {
- appName: name,
+ path: filterPath,
currentPage,
pageSize,
namespaceId: currentNamespaceId,
@@ -196,7 +194,7 @@ export default class Metadata extends Component {
deleteClick = () => {
const { dispatch, currentNamespaceId } = this.props;
- const { appName, currentPage, pageSize, selectedRowKeys } = this.state;
+ const { path, currentPage, pageSize, selectedRowKeys } = this.state;
if (selectedRowKeys && selectedRowKeys.length > 0) {
dispatch({
type: "metadata/delete",
@@ -205,7 +203,7 @@ export default class Metadata extends Component {
namespaceId: currentNamespaceId,
},
fetchValue: {
- appName,
+ path,
currentPage,
pageSize,
namespaceId: currentNamespaceId,
@@ -221,8 +219,7 @@ export default class Metadata extends Component {
};
addClick = () => {
- const { currentPage, pageSize } = this.state;
- const name = this.state.appName;
+ const { currentPage, pageSize, path: filterPath } = this.state;
this.setState({
popup: (
<AddModal
@@ -255,7 +252,7 @@ export default class Metadata extends Component {
namespaceId: currentNamespaceId,
},
fetchValue: {
- appName: name,
+ path: filterPath,
currentPage,
pageSize,
namespaceId: currentNamespaceId,
@@ -279,7 +276,7 @@ export default class Metadata extends Component {
statusSwitch = ({ list, enabled, callback }) => {
const { dispatch, currentNamespaceId } = this.props;
- const { appName, currentPage, pageSize } = this.state;
+ const { path, currentPage, pageSize } = this.state;
dispatch({
type: "metadata/updateEn",
payload: {
@@ -288,7 +285,7 @@ export default class Metadata extends Component {
namespaceId: currentNamespaceId,
},
fetchValue: {
- appName,
+ path,
currentPage,
pageSize,
namespaceId: currentNamespaceId,