mirror of
https://github.com/lux-tel/websites.git
synced 2026-10-30 20:31:36 +00:00
182 lines
7.4 KiB
TypeScript
182 lines
7.4 KiB
TypeScript
export enum EXPERIMENTAL_FEATURE_FLAG {
|
|
HIDE_REGISTRATIONS = 'experimental_hideRegistrations',
|
|
HIDE_STAKED_NODES = 'experimental_hideStakedNodes',
|
|
WALLET_SHEET = 'experimental_walletSheet',
|
|
}
|
|
|
|
export enum REMOTE_FEATURE_FLAG {
|
|
CUSTOM_BANNER = 'remote_customBanner',
|
|
DISABLE_NODE_REGISTRATION = 'remote_disableNodeRegistration',
|
|
DISABLE_NODE_REGISTRATION_SOLO = 'remote_disableNodeRegistrationSolo',
|
|
DISABLE_NODE_REGISTRATION_MULTI = 'remote_disableNodeRegistrationMulti',
|
|
DISABLE_NODE_REGISTRATION_RESERVED = 'remote_disableNodeRegistrationReserved',
|
|
DISABLE_CLAIM_REWARDS = 'remote_disableClaimRewards',
|
|
DISABLE_REQUEST_NODE_EXIT = 'remote_disableRequestNodeExit',
|
|
DISABLE_NODE_EXIT = 'remote_disableNodeExit',
|
|
DISABLE_NODE_STAKING_MULTI = 'remote_disableNodeStakingMulti',
|
|
ENABLE_MAINTENANCE_MODE = 'remote_enableMaintenanceMode',
|
|
ENABLE_APP_MAINTENANCE_MODE = 'remote_enableAppMaintenanceMode',
|
|
DISABLE_PRICE_MODULE = 'remote_disablePriceModule',
|
|
}
|
|
|
|
export const remoteFeatureFlagsInfo: Record<
|
|
REMOTE_FEATURE_FLAG,
|
|
{ name: string; description: string }
|
|
> = {
|
|
[REMOTE_FEATURE_FLAG.DISABLE_NODE_REGISTRATION]: {
|
|
name: 'Disable Node Registration',
|
|
description: 'Disable the ability to register a node.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_CLAIM_REWARDS]: {
|
|
name: 'Disable Claim Rewards',
|
|
description: 'Disable the ability to claim rewards.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_REQUEST_NODE_EXIT]: {
|
|
name: 'Disable Node Exit Request',
|
|
description: 'Disable the ability to request a nodes exit.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_NODE_EXIT]: {
|
|
name: 'Disable Node Exit',
|
|
description: 'Disable the ability to exit a node from the network.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.CUSTOM_BANNER]: {
|
|
name: 'Custom Banner',
|
|
description: 'Use a custom with custom text.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_NODE_REGISTRATION_MULTI]: {
|
|
name: 'Disable Node Registration Multi',
|
|
description: 'Disable the ability to register a node.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_NODE_REGISTRATION_RESERVED]: {
|
|
name: 'Disable Node Registration Reserved',
|
|
description: 'Disable reserve slots on open nodes.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_NODE_REGISTRATION_SOLO]: {
|
|
name: 'Disable Node Registration Solo',
|
|
description: 'Disable the ability to register a node. (Solo)',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_NODE_STAKING_MULTI]: {
|
|
name: 'Disable Node Staking Multi',
|
|
description: 'Disable the ability to stake to an open node.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.ENABLE_MAINTENANCE_MODE]: {
|
|
name: 'Enable Maintenance Mode',
|
|
description: 'Enable the maintenance mode.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.ENABLE_APP_MAINTENANCE_MODE]: {
|
|
name: 'Enable App Maintenance Mode',
|
|
description: 'Enable the app maintenance mode.',
|
|
},
|
|
[REMOTE_FEATURE_FLAG.DISABLE_PRICE_MODULE]: {
|
|
name: 'Disable Price Module',
|
|
description: 'Disable the price module and use the notice module.',
|
|
},
|
|
};
|
|
|
|
export const experimentalFeatureFlags = Object.values(
|
|
EXPERIMENTAL_FEATURE_FLAG
|
|
) as Array<EXPERIMENTAL_FEATURE_FLAG>;
|
|
|
|
export const experimentalFeatureFlagsInfo: Record<
|
|
EXPERIMENTAL_FEATURE_FLAG,
|
|
{
|
|
name: string;
|
|
description: string;
|
|
}
|
|
> = {
|
|
[EXPERIMENTAL_FEATURE_FLAG.HIDE_REGISTRATIONS]: {
|
|
name: 'Hide Registrations',
|
|
description:
|
|
'Hide selected prepared registrations from the Pending Session Nodes list. The list of hidden registrations can be found in the settings tab.',
|
|
},
|
|
[EXPERIMENTAL_FEATURE_FLAG.HIDE_STAKED_NODES]: {
|
|
name: 'Hide Staked Nodes',
|
|
description:
|
|
'Hide selected staked nodes from the Staked Nodes list on the My Stakes page. The visibility of these hidden nodes can be toggled on the page.',
|
|
},
|
|
[EXPERIMENTAL_FEATURE_FLAG.WALLET_SHEET]: {
|
|
name: 'Wallet Sheet',
|
|
description:
|
|
"Use the new Wallet Sheet. This is a replacement for the wallet info modal and shows up when the wallet button is clicked. It's the new home of settings, network switching, and token management.",
|
|
},
|
|
};
|
|
|
|
export enum FEATURE_FLAG {
|
|
MOCK_STAKED_NODES = 'mockStakedNodes',
|
|
MOCK_NO_STAKED_NODES = 'mockNoStakedNodes',
|
|
MOCK_OPEN_NODES = 'mockOpenNodes',
|
|
MOCK_NO_OPEN_NODES = 'mockNoOpenNodes',
|
|
MOCK_PENDING_NODES_ONE = 'mockPendingNodesOne',
|
|
MOCK_PENDING_NODES_TWO = 'mockPendingNodesTwo',
|
|
MOCK_PENDING_NODES_THREE = 'mockPendingNodesThree',
|
|
MOCK_PENDING_NODES_MANY = 'mockPendingNodesMany',
|
|
MOCK_NO_PENDING_NODES = 'mockNoPendingNodes',
|
|
MOCK_REGISTRATION = 'mockRegistration',
|
|
CLEAR_ACCEPT_BUG_BOUNTY = 'clearAcceptTOS',
|
|
CLEAR_ACCEPT_EXPERIMENTAL = 'clearAcceptExperimental',
|
|
SHOW_ALL_TIMERS = 'showAllTimers',
|
|
SHOW_NODE_RAW_DATA = 'showNodeRawData',
|
|
THROW_TESTING_ERROR = 'throwTestingError',
|
|
THROW_TESTING_ERROR_LONG = 'throwTestingErrorLong',
|
|
FORCE_CLAIM_OVER_THRESHOLD = 'forceClaimOverThreshold',
|
|
}
|
|
|
|
export const FEATURE_FLAG_DESCRIPTION = {
|
|
[FEATURE_FLAG.MOCK_STAKED_NODES]: 'Replace staked nodes with mock data',
|
|
[FEATURE_FLAG.MOCK_NO_STAKED_NODES]: 'Replace staked nodes with no data',
|
|
[FEATURE_FLAG.MOCK_OPEN_NODES]: 'Replace open nodes with mock data',
|
|
[FEATURE_FLAG.MOCK_NO_OPEN_NODES]: 'Replace open nodes with no data',
|
|
[FEATURE_FLAG.MOCK_PENDING_NODES_ONE]: 'Replace pending nodes with 1 node with mock data',
|
|
[FEATURE_FLAG.MOCK_PENDING_NODES_TWO]: 'Replace pending nodes with 2 node with mock data',
|
|
[FEATURE_FLAG.MOCK_PENDING_NODES_THREE]: 'Replace pending nodes with 3 node with mock data',
|
|
[FEATURE_FLAG.MOCK_PENDING_NODES_MANY]: 'Replace pending nodes with many node with mock data',
|
|
[FEATURE_FLAG.MOCK_NO_PENDING_NODES]: 'Replace pending nodes with no data',
|
|
[FEATURE_FLAG.MOCK_REGISTRATION]: 'Use a mock node for the registration form',
|
|
[FEATURE_FLAG.CLEAR_ACCEPT_BUG_BOUNTY]: 'Clear the accepted bug bounty conditions',
|
|
[FEATURE_FLAG.CLEAR_ACCEPT_EXPERIMENTAL]: 'Clear the accepted experimental features conditions',
|
|
[FEATURE_FLAG.SHOW_ALL_TIMERS]: 'Show all staked node timers',
|
|
[FEATURE_FLAG.SHOW_NODE_RAW_DATA]: 'Show raw data for staked nodes',
|
|
[FEATURE_FLAG.THROW_TESTING_ERROR]: 'Throw a testing error',
|
|
[FEATURE_FLAG.THROW_TESTING_ERROR_LONG]: 'Throw a long testing error',
|
|
[FEATURE_FLAG.FORCE_CLAIM_OVER_THRESHOLD]:
|
|
'Force the client to think the claim threshold will be hit',
|
|
};
|
|
|
|
export const validFeatureFlags = Object.values(FEATURE_FLAG);
|
|
|
|
export const pageFeatureFlags: Record<string, Array<FEATURE_FLAG>> = {
|
|
mystakes: [
|
|
FEATURE_FLAG.MOCK_STAKED_NODES,
|
|
FEATURE_FLAG.MOCK_NO_STAKED_NODES,
|
|
FEATURE_FLAG.SHOW_ALL_TIMERS,
|
|
FEATURE_FLAG.SHOW_NODE_RAW_DATA,
|
|
FEATURE_FLAG.FORCE_CLAIM_OVER_THRESHOLD,
|
|
],
|
|
vestedStakes: [FEATURE_FLAG.SHOW_ALL_TIMERS, FEATURE_FLAG.SHOW_NODE_RAW_DATA],
|
|
address: [
|
|
FEATURE_FLAG.MOCK_STAKED_NODES,
|
|
FEATURE_FLAG.MOCK_NO_STAKED_NODES,
|
|
FEATURE_FLAG.SHOW_ALL_TIMERS,
|
|
FEATURE_FLAG.SHOW_NODE_RAW_DATA,
|
|
],
|
|
stake: [
|
|
FEATURE_FLAG.MOCK_OPEN_NODES,
|
|
FEATURE_FLAG.MOCK_NO_OPEN_NODES,
|
|
FEATURE_FLAG.MOCK_PENDING_NODES_ONE,
|
|
FEATURE_FLAG.MOCK_PENDING_NODES_TWO,
|
|
FEATURE_FLAG.MOCK_PENDING_NODES_THREE,
|
|
FEATURE_FLAG.MOCK_PENDING_NODES_MANY,
|
|
FEATURE_FLAG.MOCK_NO_PENDING_NODES,
|
|
],
|
|
register: [FEATURE_FLAG.MOCK_REGISTRATION],
|
|
};
|
|
|
|
export const globalFeatureFlags = [
|
|
FEATURE_FLAG.CLEAR_ACCEPT_BUG_BOUNTY,
|
|
FEATURE_FLAG.CLEAR_ACCEPT_EXPERIMENTAL,
|
|
FEATURE_FLAG.THROW_TESTING_ERROR,
|
|
FEATURE_FLAG.THROW_TESTING_ERROR_LONG,
|
|
];
|
|
|
|
export type FeatureFlags = Record<FEATURE_FLAG | EXPERIMENTAL_FEATURE_FLAG, boolean>;
|