diff --git a/frontend/components/MainPage/sections/AlertSections/index.tsx b/frontend/components/MainPage/sections/AlertSections/index.tsx
index d9ed1af8..ee694b7a 100644
--- a/frontend/components/MainPage/sections/AlertSections/index.tsx
+++ b/frontend/components/MainPage/sections/AlertSections/index.tsx
@@ -1,4 +1,5 @@
import { CardSection } from '@/components/styled/CardSection';
+import { useFeatureFlag } from '@/hooks/useFeatureFlag';
import { AddBackupWalletAlert } from './AddBackupWalletAlert';
import { AvoidSuspensionAlert } from './AvoidSuspensionAlert';
@@ -8,10 +9,11 @@ import { NoAvailableSlotsOnTheContract } from './NoAvailableSlotsOnTheContract';
import { UpdateAvailableAlert } from './UpdateAvailableAlert';
export const AlertSections = () => {
+ const isBackupViaSafeEnabled = useFeatureFlag('backup-via-safe');
return (
-
+ {isBackupViaSafeEnabled && }
diff --git a/frontend/components/Pages/AddBackupWalletViaSafePage/index.tsx b/frontend/components/Pages/AddBackupWalletViaSafePage/index.tsx
index 0653eaaa..5d4fe6ad 100644
--- a/frontend/components/Pages/AddBackupWalletViaSafePage/index.tsx
+++ b/frontend/components/Pages/AddBackupWalletViaSafePage/index.tsx
@@ -19,7 +19,7 @@ const safeChainPrefix = {
[EvmChainId.Base]: 'base',
[EvmChainId.Optimism]: 'oeth',
[EvmChainId.Gnosis]: 'gno',
- [EvmChainId.Mode]: 'mode', // TODO: Modius - the above link doesn't have Mode, so the prefix is a guess
+ [EvmChainId.Mode]: '', // TODO: provide correct prefix once mode is supported on safe
};
export const AddBackupWalletViaSafePage = () => {
diff --git a/frontend/components/SettingsPage/index.tsx b/frontend/components/SettingsPage/index.tsx
index 72e95d31..b903d7f3 100644
--- a/frontend/components/SettingsPage/index.tsx
+++ b/frontend/components/SettingsPage/index.tsx
@@ -5,6 +5,7 @@ import { useMemo } from 'react';
import { Pages } from '@/enums/Pages';
import { SettingsScreen } from '@/enums/SettingsScreen';
+import { useFeatureFlag } from '@/hooks/useFeatureFlag';
import { useMultisig } from '@/hooks/useMultisig';
import { usePageState } from '@/hooks/usePageState';
import { useServices } from '@/hooks/useServices';
@@ -83,6 +84,8 @@ export const Settings = () => {
};
const SettingsMain = () => {
+ const isBackupViaSafeEnabled = useFeatureFlag('backup-via-safe');
+
const { selectedService } = useServices();
const { masterEoa, masterSafes } = useMasterWalletContext();
@@ -148,16 +151,21 @@ const SettingsMain = () => {
- {/* Wallet backup */}
-
- Backup wallet
- {walletBackup}
-
+ {/* Wallet backup
+ If there's no backup address and adding it
+ via safe is disabled - hide the section
+ */}
+ {!isBackupViaSafeEnabled && !masterSafeBackupAddress ? null : (
+
+ Backup wallet
+ {walletBackup}
+
+ )}
{/* Debug info */}
diff --git a/frontend/hooks/useFeatureFlag.ts b/frontend/hooks/useFeatureFlag.ts
index 88f52682..7320822c 100644
--- a/frontend/hooks/useFeatureFlag.ts
+++ b/frontend/hooks/useFeatureFlag.ts
@@ -10,6 +10,7 @@ const FeatureFlagsSchema = z.enum([
'manage-wallet',
'rewards-streak',
'staking-contract-section',
+ 'backup-via-safe',
]);
type FeatureFlags = z.infer;
@@ -29,18 +30,22 @@ const FEATURES_CONFIG = FeaturesConfigSchema.parse({
'last-transactions': true,
'rewards-streak': true,
'staking-contract-section': true,
+ 'backup-via-safe': true,
},
[AgentType.Memeooorr]: {
'manage-wallet': false,
'last-transactions': false,
'rewards-streak': false,
'staking-contract-section': false,
+ 'backup-via-safe': true,
},
[AgentType.Modius]: {
'manage-wallet': false,
'last-transactions': false,
'rewards-streak': false,
'staking-contract-section': false,
+ // temporarily hidden until mode is available on safe https://app.safe.global/new-safe/create
+ 'backup-via-safe': false,
},
});