* 🚧 feat(token-page): Scaffold sidebar components for token page * 🚧 feat(staking/governance): Scaffold adding Panels to Staking and Governance page * ✨ Update and add icons * 🧱 Add strideZoneApp to shared config * 🧱 Add dialogs, update ExternalLinkDialog * 🚧 Add New Panels/Update paths * Fix mobile Profile Panel * 💄 fix desktop padding * ✨ Add New tag * 💄 Highlight tag on StrideStakingPanel * 💄 Single columns for panels on mobile breakpoint * 💄 fix import nits and alignment nits on panels * Add circular keplr icon
80 lines
4.1 KiB
TypeScript
80 lines
4.1 KiB
TypeScript
import { useDispatch, useSelector } from 'react-redux';
|
|
|
|
import { DialogTypes } from '@/constants/dialogs';
|
|
|
|
import { closeDialog, openDialog } from '@/state/dialogs';
|
|
|
|
import { getActiveDialog } from '@/state/dialogsSelectors';
|
|
|
|
import { ClosePositionDialog } from '@/views/dialogs/ClosePositionDialog';
|
|
import { DepositDialog } from '@/views/dialogs/DepositDialog';
|
|
import { DisconnectDialog } from '@/views/dialogs/DisconnectDialog';
|
|
import { DisplaySettingsDialog } from '@/views/dialogs/DisplaySettingsDialog';
|
|
import { ExchangeOfflineDialog } from '@/views/dialogs/ExchangeOfflineDialog';
|
|
import { HelpDialog } from '@/views/dialogs/HelpDialog';
|
|
import { ExternalLinkDialog } from '@/views/dialogs/ExternalLinkDialog';
|
|
import { ExternalNavKeplrDialog } from '@/views/dialogs/ExternalNavKeplrDialog';
|
|
import { MnemonicExportDialog } from '@/views/dialogs/MnemonicExportDialog';
|
|
import { MobileSignInDialog } from '@/views/dialogs/MobileSignInDialog';
|
|
import { OnboardingDialog } from '@/views/dialogs/OnboardingDialog';
|
|
import { PreferencesDialog } from '@/views/dialogs/PreferencesDialog';
|
|
import { RateLimitDialog } from '@/views/dialogs/RateLimitDialog';
|
|
import { RestrictedGeoDialog } from '@/views/dialogs/RestrictedGeoDialog';
|
|
import { TradeDialog } from '@/views/dialogs/TradeDialog';
|
|
import { TransferDialog } from '@/views/dialogs/TransferDialog';
|
|
import { RestrictedWalletDialog } from '@/views/dialogs/RestrictedWalletDialog';
|
|
import { WithdrawDialog } from '@/views/dialogs/WithdrawDialog';
|
|
import { ManageFundsDialog } from '@/views/dialogs/ManageFundsDialog';
|
|
|
|
import { OrderDetailsDialog } from '@/views/dialogs/DetailsDialog/OrderDetailsDialog';
|
|
import { FillDetailsDialog } from '@/views/dialogs/DetailsDialog/FillDetailsDialog';
|
|
import { NewMarketMessageDetailsDialog } from '@/views/dialogs/NewMarketMessageDetailsDialog';
|
|
import { NewMarketAgreementDialog } from '@/views/dialogs/NewMarketAgreementDialog';
|
|
import { ExternalNavStrideDialog } from '@/views/dialogs/ExternalNavStrideDialog';
|
|
|
|
export const DialogManager = () => {
|
|
const dispatch = useDispatch();
|
|
const activeDialog = useSelector(getActiveDialog);
|
|
|
|
if (!activeDialog) return null;
|
|
const { dialogProps, type } = activeDialog;
|
|
|
|
const modalProps = {
|
|
...dialogProps,
|
|
setIsOpen: (isOpen: boolean) => {
|
|
dispatch(
|
|
isOpen
|
|
? openDialog({ type: activeDialog.type, dialogProps: activeDialog.dialogProps })
|
|
: closeDialog()
|
|
);
|
|
},
|
|
};
|
|
|
|
return {
|
|
[DialogTypes.ClosePosition]: <ClosePositionDialog {...modalProps} />,
|
|
[DialogTypes.Deposit]: <DepositDialog {...modalProps} />,
|
|
[DialogTypes.DisplaySettings]: <DisplaySettingsDialog {...modalProps} />,
|
|
[DialogTypes.DisconnectWallet]: <DisconnectDialog {...modalProps} />,
|
|
[DialogTypes.ExchangeOffline]: <ExchangeOfflineDialog {...modalProps} />,
|
|
[DialogTypes.FillDetails]: <FillDetailsDialog {...modalProps} />,
|
|
[DialogTypes.Help]: <HelpDialog {...modalProps} />,
|
|
[DialogTypes.ExternalNavKeplr]: <ExternalNavKeplrDialog {...modalProps} />,
|
|
[DialogTypes.ExternalLink]: <ExternalLinkDialog {...modalProps} />,
|
|
[DialogTypes.ExternalNavStride]: <ExternalNavStrideDialog {...modalProps} />,
|
|
[DialogTypes.MnemonicExport]: <MnemonicExportDialog {...modalProps} />,
|
|
[DialogTypes.MobileSignIn]: <MobileSignInDialog {...modalProps} />,
|
|
[DialogTypes.Onboarding]: <OnboardingDialog {...modalProps} />,
|
|
[DialogTypes.OrderDetails]: <OrderDetailsDialog {...modalProps} />,
|
|
[DialogTypes.Preferences]: <PreferencesDialog {...modalProps} />,
|
|
[DialogTypes.RateLimit]: <RateLimitDialog {...modalProps} />,
|
|
[DialogTypes.RestrictedGeo]: <RestrictedGeoDialog {...modalProps} />,
|
|
[DialogTypes.RestrictedWallet]: <RestrictedWalletDialog {...modalProps} />,
|
|
[DialogTypes.Trade]: <TradeDialog {...modalProps} />,
|
|
[DialogTypes.Transfer]: <TransferDialog {...modalProps} />,
|
|
[DialogTypes.Withdraw]: <WithdrawDialog {...modalProps} />,
|
|
[DialogTypes.ManageFunds]: <ManageFundsDialog {...modalProps} />,
|
|
[DialogTypes.NewMarketMessageDetails]: <NewMarketMessageDetailsDialog {...modalProps} />,
|
|
[DialogTypes.NewMarketAgreement]: <NewMarketAgreementDialog {...modalProps} />,
|
|
}[type];
|
|
};
|