+
}>
{approvals?.length || 0}
diff --git a/packages/next-common/utils/consts/menu/data.js b/packages/next-common/utils/consts/menu/data.js
index bec6b36812..513038f54d 100644
--- a/packages/next-common/utils/consts/menu/data.js
+++ b/packages/next-common/utils/consts/menu/data.js
@@ -1,12 +1,11 @@
import { MenuData } from "@osn/icons/subsquare";
+import getChainSettings from "../settings";
+import { CHAIN } from "next-common/utils/constants";
-const Data = {
- name: "Data",
- value: "data",
- pathname: "/proxies",
- icon: ,
- extraMatchNavMenuActivePathnames: ["/proxies", "/multisigs"],
- children: [
+function getDataMenu() {
+ const { modules } = getChainSettings(CHAIN);
+
+ const children = [
{
name: "Proxies",
value: "proxies",
@@ -17,7 +16,24 @@ const Data = {
value: "multisig",
pathname: "/multisigs",
},
- ],
-};
+ ];
+
+ if (modules?.recovery) {
+ children.push({
+ name: "Recovery",
+ value: "recovery",
+ pathname: "/recovery",
+ });
+ }
+
+ return {
+ name: "Data",
+ value: "data",
+ pathname: "/proxies",
+ icon: ,
+ extraMatchNavMenuActivePathnames: children.map((c) => c.pathname),
+ children,
+ };
+}
-export default Data;
+export default getDataMenu;
diff --git a/packages/next-common/utils/consts/menu/index.js b/packages/next-common/utils/consts/menu/index.js
index 9620609dae..e1cf81ebc7 100644
--- a/packages/next-common/utils/consts/menu/index.js
+++ b/packages/next-common/utils/consts/menu/index.js
@@ -21,7 +21,7 @@ import { coretimeMenu } from "./coretime";
import { getPeopleMenu } from "./people";
import { stakingMenu } from "./staking";
import whitelist from "./whitelist";
-import Data from "./data";
+import getDataMenu from "./data";
import vesting from "./vesting";
import getAdvancedMenu from "next-common/utils/consts/menu/advanced";
import { NAV_MENU_TYPE } from "next-common/utils/constants";
@@ -69,7 +69,7 @@ export function getHomeMenu({
modules?.vesting && vesting,
modules?.scheduler && scheduler,
modules?.whitelist && whitelist,
- (modules?.proxy || hasMultisig) && Data,
+ (modules?.proxy || hasMultisig) && getDataMenu(),
calendarMenu,
votingSpace && votingMenu,
navigationMenu,
diff --git a/packages/next-common/utils/consts/settings/common/modules.js b/packages/next-common/utils/consts/settings/common/modules.js
index 52aa39633b..ec01b85207 100644
--- a/packages/next-common/utils/consts/settings/common/modules.js
+++ b/packages/next-common/utils/consts/settings/common/modules.js
@@ -45,6 +45,7 @@ const base = {
provider: "server",
},
vesting: false,
+ recovery: false,
};
/**
diff --git a/packages/next-common/utils/consts/settings/westend/index.js b/packages/next-common/utils/consts/settings/westend/index.js
index 0394764a47..0ddd7eb7a2 100644
--- a/packages/next-common/utils/consts/settings/westend/index.js
+++ b/packages/next-common/utils/consts/settings/westend/index.js
@@ -47,6 +47,7 @@ const westend = {
vesting: true,
staking: true,
scheduler: true,
+ recovery: true,
treasury: {
spends: true,
proposals: true,
diff --git a/packages/next/pages/recovery/index.jsx b/packages/next/pages/recovery/index.jsx
new file mode 100644
index 0000000000..9ae958a185
--- /dev/null
+++ b/packages/next/pages/recovery/index.jsx
@@ -0,0 +1,16 @@
+import { getServerSidePropsWithTracks } from "next-common/services/serverSide/serverSidePropsWithTracks";
+import { DataRecovery } from "next-common/components/data";
+import DataTabsProvider from "next-common/components/data/context/tabs";
+import { RelayChainApiProvider } from "next-common/context/relayChain";
+
+export default function RecoveryPage() {
+ return (
+
+
+
+
+
+ );
+}
+
+export const getServerSideProps = getServerSidePropsWithTracks;