diff --git a/src/components/fields/CheckBoxField/index.tsx b/src/components/fields/CheckBoxField/index.tsx index bc53064e0..b631178a1 100644 --- a/src/components/fields/CheckBoxField/index.tsx +++ b/src/components/fields/CheckBoxField/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { ReactNode } from 'react'; import classNames from 'classnames'; import { useThemeContext } from '@aave/aave-ui-kit'; @@ -12,7 +12,7 @@ export interface onChange { interface CheckBoxFieldProps { className?: string; - title?: string; + title?: string | ReactNode; value: boolean; name: string; onChange: ({ name: string, value: boolean }: onChange) => void; diff --git a/src/helpers/timeHelper/index.ts b/src/helpers/timeHelper/index.ts new file mode 100644 index 000000000..570d5d593 --- /dev/null +++ b/src/helpers/timeHelper/index.ts @@ -0,0 +1,19 @@ +import messages from './messages'; + +export const daysFromSeconds = (time: number) => time / 60 / 60 / 24; +export const hoursFromSeconds = (time: number) => time / 60 / 60; +export const minutesFromSeconds = (time: number) => time / 60; + +export const formattedTime = (time: number) => + daysFromSeconds(time) < 1 + ? hoursFromSeconds(time) < 1 + ? minutesFromSeconds(time) + : hoursFromSeconds(time) + : daysFromSeconds(time); + +export const timeText = (time: number) => + daysFromSeconds(time) < 1 + ? hoursFromSeconds(time) < 1 + ? messages.minutes + : messages.hours + : messages.days; diff --git a/src/helpers/timeHelper/messages.ts b/src/helpers/timeHelper/messages.ts new file mode 100644 index 000000000..d395dc0c4 --- /dev/null +++ b/src/helpers/timeHelper/messages.ts @@ -0,0 +1,7 @@ +import { defineMessages } from 'react-intl'; + +export default defineMessages({ + days: 'days', + hours: 'hours', + minutes: 'minutes', +}); diff --git a/src/images/warningTransparentOrange.svg b/src/images/warningTransparentOrange.svg new file mode 100644 index 000000000..0b69e5f4a --- /dev/null +++ b/src/images/warningTransparentOrange.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/modules/staking/components/CooldownInfoModal/index.tsx b/src/modules/staking/components/CooldownInfoModal/index.tsx new file mode 100644 index 000000000..6be2fe28c --- /dev/null +++ b/src/modules/staking/components/CooldownInfoModal/index.tsx @@ -0,0 +1,196 @@ +import React, { useEffect, useState } from 'react'; +import { useIntl } from 'react-intl'; +import { Stake, valueToBigNumber } from '@aave/protocol-js'; +import { BasicModal, rgba, useThemeContext } from '@aave/aave-ui-kit'; + +import { StakeData } from '../../../../libs/pool-data-provider/types/stake'; +import { formattedTime, timeText } from '../../../../helpers/timeHelper'; +import Caption from '../../../../components/basic/Caption'; +import CheckBoxField from '../../../../components/fields/CheckBoxField'; +import Link from '../../../../components/basic/Link'; +import DefaultButton from '../../../../components/basic/DefaultButton'; + +import messages from './messages'; +import staticStyles from './style'; + +import closeIcon from '../../../../images/closeIcon.svg'; +import whiteCloseIcon from '../../../../images/whiteCloseIcon.svg'; +import warningIcon from '../../../../images/warningTransparentOrange.svg'; + +interface CooldownInfoModalProps { + stake: Stake; + stakeData: StakeData; + isVisible: boolean; + onBackdropPress: () => void; +} + +export default function CooldownInfoModal({ + stake, + stakeData, + isVisible, + onBackdropPress, +}: CooldownInfoModalProps) { + const intl = useIntl(); + const { currentTheme, isCurrentThemeDark } = useThemeContext(); + + const [isCheckboxActive, setIsCheckboxActive] = useState(false); + + useEffect(() => { + setIsCheckboxActive(false); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isVisible]); + + const cooldownTime = stakeData.stakeCooldownSeconds; + const unstakeWindowTime = stakeData.stakeUnstakeWindow; + const totalTime = cooldownTime + unstakeWindowTime; + const cooldownPercent = valueToBigNumber(cooldownTime) + .dividedBy(totalTime) + .multipliedBy(100) + .toNumber(); + const unstakeWindowPercent = valueToBigNumber(unstakeWindowTime) + .dividedBy(totalTime) + .multipliedBy(100) + .toNumber(); + + const isPercentSame = cooldownPercent === unstakeWindowPercent; + + const timeMessage = (time: number) => { + return `${intl.formatNumber(formattedTime(time))} ${intl.formatMessage(timeText(time))}`; + }; + + const infoBackground = rgba( + `${currentTheme.orange.rgb}, ${isCurrentThemeDark ? '0.15' : '0.08'}` + ); + + return ( + + + {timeMessage(cooldownTime)}, + unstakeWindowPeriod: {timeMessage(unstakeWindowTime)}, + })} + /> + + + {intl.formatMessage(messages.continueReceiving)} + + + + + {intl.formatMessage(messages.infoDescription)} + + + + + + {intl.formatMessage(messages.cooldownTitle)} + + + {intl.formatMessage(messages.unstakeHere)} + {intl.formatMessage(messages.unstakeWindowTitle)} + + + + + + + {timeMessage(cooldownTime)} + + + + + {timeMessage(unstakeWindowTime)} + + + + + + setIsCheckboxActive(!isCheckboxActive)} + title={intl.formatMessage(messages.checkboxText, { + cooldownPeriod: {timeMessage(cooldownTime)}, + unstakingWindowPeriod: {timeMessage(unstakeWindowTime)}, + })} + /> + + + + + + + + + + + + + ); +} diff --git a/src/modules/staking/components/CooldownInfoModal/messages.ts b/src/modules/staking/components/CooldownInfoModal/messages.ts new file mode 100644 index 000000000..2d36684fb --- /dev/null +++ b/src/modules/staking/components/CooldownInfoModal/messages.ts @@ -0,0 +1,19 @@ +import { defineMessages } from 'react-intl'; + +export default defineMessages({ + caption: 'Cooldown & Unstake Window Period', + description: + 'The cooldown period is {cooldownPeriod}. After the {cooldownPeriod} of cooldown, you will enter the unstake window of {unstakeWindowPeriod}.', + continueReceiving: 'You will continue receiving rewards during the cooldown and unstake window.', + + infoDescription: + 'If you do not unstake within the 2 days unstake window you will need to activate the cooldown process again', + + cooldownTitle: 'Cooldown period', + unstakeHere: 'You unstake here', + unstakeWindowTitle: 'Unstake window', + + checkboxText: + 'I understand how the cooldown ({cooldownPeriod}) and unstaking window ({unstakingWindowPeriod}) work', + activateCooldown: 'Activate Cooldown', +}); diff --git a/src/modules/staking/components/CooldownInfoModal/style.ts b/src/modules/staking/components/CooldownInfoModal/style.ts new file mode 100644 index 000000000..6762a602b --- /dev/null +++ b/src/modules/staking/components/CooldownInfoModal/style.ts @@ -0,0 +1,190 @@ +import css from 'styled-jsx/css'; + +/*language=SCSS*/ +const staticStyles = css.global` + @import 'src/_mixins/vars'; + @import 'src/_mixins/screen-size'; + + .CooldownInfoModal { + max-width: 650px !important; + padding: 50px 20px 55px !important; + font-size: $large; + @include respond-to(xl) { + max-width: 620px !important; + padding: 50px 40px 40px !important; + font-size: $regular; + } + @include respond-to(lg) { + max-width: 550px !important; + padding: 40px 20px !important; + font-size: $medium; + } + @include respond-to(md) { + max-width: 620px !important; + padding: 50px 40px 40px !important; + font-size: $regular; + } + @include respond-to(sm) { + padding: 40px 10px !important; + } + + &__content { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + + .Caption, + &__infoText, + &__checkboxInner { + max-width: 440px; + margin-bottom: 30px; + @include respond-to(xl) { + max-width: 390px; + margin-bottom: 20px; + } + @include respond-to(lg) { + max-width: 350px; + } + @include respond-to(md) { + max-width: 390px; + } + } + + &__infoPanel { + padding: 16px 16px 15px 14px; + margin-bottom: 20px; + max-width: 510px; + text-align: left; + display: flex; + align-items: flex-start; + @include respond-to(xl) { + max-width: 440px; + } + + img { + width: 16px; + height: 14px; + margin-right: 10px; + } + + p { + font-size: $medium; + @include respond-to(xl) { + font-size: $small; + } + } + } + + &__graphs { + width: 100%; + max-width: 500px; + margin-bottom: 50px; + font-size: $medium; + @include respond-to(xl) { + font-size: $small; + } + } + &__graphsText { + display: flex; + align-items: flex-end; + width: 100%; + margin-bottom: 10px; + } + &__graphTopText { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + span { + display: block; + font-size: $extraSmall; + margin-bottom: 5px; + } + } + + &__graphInner { + display: flex; + align-items: center; + justify-content: center; + } + &__graph { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + strong { + margin-top: 10px; + white-space: nowrap; + } + } + &__graphLine { + width: 100%; + height: 5px; + position: relative; + &:after, + &:before { + content: ''; + position: absolute; + height: 20px; + width: 2px; + top: 50%; + transform: translateY(-50%); + } + &:after { + left: 0; + } + &:before { + right: 0; + } + } + + &__checkboxInner { + text-align: left; + + .CheckBoxField__label { + align-items: flex-start; + font-weight: 400; + span { + min-width: 16px; + width: 16px; + height: 16px; + top: 2px; + } + } + } + + .DefaultButton { + font-size: $medium; + @include respond-to(xl) { + font-size: $small; + width: 160px; + min-height: 40px; + } + @include respond-to(lg) { + width: 100px; + min-height: 28px; + font-size: $extraSmall; + } + @include respond-to(md) { + font-size: $small; + width: 160px; + min-height: 40px; + } + } + } + + @media only screen and (max-height: 610px) and (min-width: 768px) { + .CooldownInfoModal.ReactModal__Content.ReactModal__Content--after-open { + position: absolute !important; + top: 5% !important; + bottom: 5% !important; + display: block; + overflow: auto !important; + } + } +`; + +export default staticStyles; diff --git a/src/modules/staking/components/StakingWrapper/index.tsx b/src/modules/staking/components/StakingWrapper/index.tsx index 5d9ad8527..12021768b 100644 --- a/src/modules/staking/components/StakingWrapper/index.tsx +++ b/src/modules/staking/components/StakingWrapper/index.tsx @@ -19,10 +19,11 @@ import NoDataPanel from '../../../../components/NoDataPanel'; import StakingTopPanel from '../StakingTopPanel'; import SidePanelCard from '../SidePanelCard'; import MainnetWarning from '../../../../components/MainnetWarning'; +import { ComputedStakeData } from '../../../../libs/pool-data-provider/types/stake'; +import CooldownInfoModal from '../CooldownInfoModal'; import messages from './messages'; import staticStyles from './style'; -import { ComputedStakeData } from '../../../../libs/pool-data-provider/types/stake'; interface StakingWrapperProps { children: ReactNode; @@ -37,6 +38,7 @@ export default function StakingWrapper({ children }: StakingWrapperProps) { const [isShowYourIncentives, setShowYourIncentives] = useState(false); const [currentAsset, setCurrentAsset] = useState(Stake.aave); + const [isActivateCooldownModalVisible, setActivateCooldownModalVisible] = useState(false); const isCurrentAssetAAVE = currentAsset === Stake.aave; @@ -175,27 +177,20 @@ export default function StakingWrapper({ children }: StakingWrapperProps) { withGradientBorder={cooldownStep === 2} > {cooldownStep === 0 && ( - { + setShowYourIncentives(false); + setActivateCooldownModalVisible(true); + }} + color="dark" disabled={ location.pathname === `/staking/${currentAsset}/activate-cooldown/confirmation` || selectedStakeData.stakeTokenUserBalance === '0' } - > - setShowYourIncentives(false)} - color="dark" - disabled={ - location.pathname === - `/staking/${currentAsset}/activate-cooldown/confirmation` || - selectedStakeData.stakeTokenUserBalance === '0' - } - /> - + /> )} {cooldownStep === 1 && ( @@ -328,6 +323,13 @@ export default function StakingWrapper({ children }: StakingWrapperProps) { + setActivateCooldownModalVisible(false)} + /> + diff --git a/src/translations/cn.json b/src/translations/cn.json index e8b4344ed..65b1b52c7 100644 --- a/src/translations/cn.json +++ b/src/translations/cn.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "借款构成", "components.DepositBorrowTopPanel.borrowInformation": "借款信息", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "已使用的借贷能力", "components.DepositBorrowTopPanel.connectWallet": "请连接钱包", "components.DepositBorrowTopPanel.currentLTV": "当前 LTV", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "更安全", "components.compositionBars.BorrowCompositionBar.title": "借款构成", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "抵押品构成", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "可用借款能力", "components.compositionBars.CollateralCompositionBar.collateralComposition": "抵押品构成", "components.compositionBars.CompositionBar.left": "剩下", "components.compositionBars.DepositCompositionBar.title": "存款构成", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "扩大", "components.wrappers.TopPanelWrapper.minimize": "最小化", "deposit": "存款", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "请将网络更改为以下之一:{networks}", "libs.web3-data-provider.errorTitle": "网络连接错误。", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} 代币", "modules.staking.components.AboutStakingModal.tradingFees": "交易费用", "modules.staking.components.AboutStakingModal.upTo": "短缺事件,最高30%。", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "这里", "modules.staking.components.RiskInfoPanel.title": "资产抵押涉及到风险,想要了解更多请关注{here}!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "SM中的资金", diff --git a/src/translations/default.json b/src/translations/default.json index 38d1debaa..3d58be516 100644 --- a/src/translations/default.json +++ b/src/translations/default.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "Approximate balance", "components.DepositBorrowTopPanel.borrowComposition": "Borrow Composition", "components.DepositBorrowTopPanel.borrowInformation": "Borrow Information", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "Borrowing power available", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Borrowing Power Used", "components.DepositBorrowTopPanel.connectWallet": "Please connect your wallet", "components.DepositBorrowTopPanel.currentLTV": "Current LTV", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "Safer", "components.compositionBars.BorrowCompositionBar.title": "Borrow Composition", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "Collateral Composition", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "Borrowing power available", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Collateral composition", "components.compositionBars.CompositionBar.left": "Left", "components.compositionBars.DepositCompositionBar.title": "Deposit Composition", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Expand", "components.wrappers.TopPanelWrapper.minimize": "Minimize", "deposit": "Deposit", + "helpers.timeHelper.days": "days", + "helpers.timeHelper.hours": "hours", + "helpers.timeHelper.minutes": "minutes", "libs.web3-data-provider.errorDescription": "Please change your network to one of: {networks}", "libs.web3-data-provider.errorTitle": "You are connected to the wrong network", "libs.web3-data-provider.ledgerDisconnected": "Ledger device is disconnected or locked. Try again to plug and unlock your Ledger device.", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} Token", "modules.staking.components.AboutStakingModal.tradingFees": "Trading Fees", "modules.staking.components.AboutStakingModal.upTo": "shortfall event, up to 30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "Activate Cooldown", + "modules.staking.components.CooldownInfoModal.caption": "Cooldown & Unstake Window Period", + "modules.staking.components.CooldownInfoModal.checkboxText": "I understand how the cooldown ({cooldownPeriod}) and unstaking window ({unstakingWindowPeriod}) work", + "modules.staking.components.CooldownInfoModal.continueReceiving": "You will continue receiving rewards during the cooldown and unstake window.", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "Cooldown period", + "modules.staking.components.CooldownInfoModal.description": "The cooldown period is {cooldownPeriod}. After the {cooldownPeriod} of cooldown, you will enter the unstake window of {unstakeWindowPeriod}.", + "modules.staking.components.CooldownInfoModal.infoDescription": "If you do not unstake within the 2 days unstake window you will need to activate the cooldown process again", + "modules.staking.components.CooldownInfoModal.unstakeHere": "You unstake here", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "Unstake window", "modules.staking.components.RiskInfoPanel.here": "here", "modules.staking.components.RiskInfoPanel.title": "There are risks involved with staking your assets. To learn more follow me {here}!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "Funds in the Safety Module", diff --git a/src/translations/en.json b/src/translations/en.json index ca28a6995..4aa341000 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "", "components.DepositBorrowTopPanel.borrowInformation": "", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "", "components.DepositBorrowTopPanel.connectWallet": "", "components.DepositBorrowTopPanel.currentLTV": "", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "", "components.compositionBars.BorrowCompositionBar.title": "", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "", "components.compositionBars.CollateralCompositionBar.collateralComposition": "", "components.compositionBars.CompositionBar.left": "", "components.compositionBars.DepositCompositionBar.title": "", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "", "components.wrappers.TopPanelWrapper.minimize": "", "deposit": "", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "", "libs.web3-data-provider.errorTitle": "", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "", "modules.staking.components.AboutStakingModal.tradingFees": "", "modules.staking.components.AboutStakingModal.upTo": "", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "", "modules.staking.components.RiskInfoPanel.title": "", "modules.staking.components.StakingTopPanel.fundsInTheSM": "", diff --git a/src/translations/es.json b/src/translations/es.json index 56b16e6c9..484ff536a 100644 --- a/src/translations/es.json +++ b/src/translations/es.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "Composición del préstamo", "components.DepositBorrowTopPanel.borrowInformation": "Información de préstamo", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Capacidad de préstamo utilizada", "components.DepositBorrowTopPanel.connectWallet": "Por favor conecta tu cartera", "components.DepositBorrowTopPanel.currentLTV": "LTV actual", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "Más seguro", "components.compositionBars.BorrowCompositionBar.title": "Composición del préstamo", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "Composición de la garantía", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "Capacidad de préstamo disponible", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Composición de la garantía", "components.compositionBars.CompositionBar.left": "Restante", "components.compositionBars.DepositCompositionBar.title": "Composición del depósito", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Expandir", "components.wrappers.TopPanelWrapper.minimize": "Minimizar", "deposit": "Deposit", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "Cambie su red a : {networks}", "libs.web3-data-provider.errorTitle": "Estás conectado a la red equivocada", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} Token", "modules.staking.components.AboutStakingModal.tradingFees": "Comisiones de intercambio", "modules.staking.components.AboutStakingModal.upTo": "shortfall event, de hasta un 30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "aquí", "modules.staking.components.RiskInfoPanel.title": "Hay riesgos involucrados en el proceso de staking de tus activos. ¡Para aprender más accede {here}!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "Fondos en el módulo de seguridad", diff --git a/src/translations/fr.json b/src/translations/fr.json index 8c12b0bd6..64bb4ccdd 100644 --- a/src/translations/fr.json +++ b/src/translations/fr.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "Composition de l'emprunt", "components.DepositBorrowTopPanel.borrowInformation": "Informations sur les emprunts", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Capacité d'emprunt utilisée", "components.DepositBorrowTopPanel.connectWallet": "Veuillez connecter un wallet", "components.DepositBorrowTopPanel.currentLTV": "LTV actuelle", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "Plus sûr", "components.compositionBars.BorrowCompositionBar.title": "Composition de l'emprunt", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "composition du collatéral", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "capacité d'emprunt disponible", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Composition de la garantie", "components.compositionBars.CompositionBar.left": "Restant", "components.compositionBars.DepositCompositionBar.title": "Composition des dépôts", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Développer", "components.wrappers.TopPanelWrapper.minimize": "Minimiser", "deposit": "Déposer", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "Veuillez changer votre réseau en l'un de ceux-ci : {networks}", "libs.web3-data-provider.errorTitle": "Vous êtes connecté au mauvais réseau", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} Token", "modules.staking.components.AboutStakingModal.tradingFees": "Trading Fees", "modules.staking.components.AboutStakingModal.upTo": "un déficit, jusqu'à 30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "ici", "modules.staking.components.RiskInfoPanel.title": "Il y a des risques liés au staking de vos actifs. Pour en savoir plus, c'est {ici}!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "Fonds dans le SM", diff --git a/src/translations/it.json b/src/translations/it.json index 3eb7bd92e..5db3af58a 100644 --- a/src/translations/it.json +++ b/src/translations/it.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "Borrow Composition", "components.DepositBorrowTopPanel.borrowInformation": "Informazioni sul prestito", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Borrowing power utilizzato", "components.DepositBorrowTopPanel.connectWallet": "Per favore connettere un portafoglio", "components.DepositBorrowTopPanel.currentLTV": "LTV corrente", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "Più sicuro", "components.compositionBars.BorrowCompositionBar.title": "Borrow Composition", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "Collateral composition", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "Borrowing power disponibile", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Composizione della garanzia", "components.compositionBars.CompositionBar.left": "Left", "components.compositionBars.DepositCompositionBar.title": "Deposit Composition", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Espandere", "components.wrappers.TopPanelWrapper.minimize": "Minimizzare", "deposit": "Depositare", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "Cambia la tua rete in una tra queste: {networks}", "libs.web3-data-provider.errorTitle": "Sei connesso alla rete sbagliata.", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} Token", "modules.staking.components.AboutStakingModal.tradingFees": "Trading Fees", "modules.staking.components.AboutStakingModal.upTo": "Caso di carenza, fino al 30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "qui", "modules.staking.components.RiskInfoPanel.title": "Ci sono dei rischi legati con l'opzione staking dei tuoi assets. Per saperne di più seguimi {here} !", "modules.staking.components.StakingTopPanel.fundsInTheSM": "Fondi nel SM", diff --git a/src/translations/ja.json b/src/translations/ja.json index 305fa617c..7e5440abb 100644 --- a/src/translations/ja.json +++ b/src/translations/ja.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "借入構成", "components.DepositBorrowTopPanel.borrowInformation": "借入情報", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "利用対象の借入能力", "components.DepositBorrowTopPanel.connectWallet": "ウォレットを接続してください", "components.DepositBorrowTopPanel.currentLTV": "現在のLTV", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "より安全", "components.compositionBars.BorrowCompositionBar.title": "借入構成", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "担保の構成", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "利用可能の借入能力", "components.compositionBars.CollateralCompositionBar.collateralComposition": "担保の構成", "components.compositionBars.CompositionBar.left": "残り", "components.compositionBars.DepositCompositionBar.title": "預金構成", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "展開", "components.wrappers.TopPanelWrapper.minimize": "最小化", "deposit": "入金", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "ネットワークを{networks}のいずれかに変更してください", "libs.web3-data-provider.errorTitle": "正しいネットワークに接続されていません。", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset}トークン", "modules.staking.components.AboutStakingModal.tradingFees": "取引手数料", "modules.staking.components.AboutStakingModal.upTo": "不足事件発生、最大30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "こちら", "modules.staking.components.RiskInfoPanel.title": "お客様のステーキング資産に伴うリスクがあります。詳細については、 {here}へご確認ください。", "modules.staking.components.StakingTopPanel.fundsInTheSM": "SMの資金", diff --git a/src/translations/ko.json b/src/translations/ko.json index cba23f487..939af115c 100644 --- a/src/translations/ko.json +++ b/src/translations/ko.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "대출 구성", "components.DepositBorrowTopPanel.borrowInformation": "대출 정보", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "사용된 대출 능력", "components.DepositBorrowTopPanel.connectWallet": "지갑을 연결해 주시기 바랍니다", "components.DepositBorrowTopPanel.currentLTV": "현재 LTV (Loan to Value)", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "더욱 안전한", "components.compositionBars.BorrowCompositionBar.title": "대출 구성", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "담보 구성", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "사용할 수 있는 차입 능력", "components.compositionBars.CollateralCompositionBar.collateralComposition": "담보 구성", "components.compositionBars.CompositionBar.left": "왼쪽", "components.compositionBars.DepositCompositionBar.title": "예치 구성", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "확장", "components.wrappers.TopPanelWrapper.minimize": "최소화", "deposit": "", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "네트워크를 {networks} 중 하나로 변경하십시오", "libs.web3-data-provider.errorTitle": "잘못된 네트워크에 연결되었습니다", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} 토큰", "modules.staking.components.AboutStakingModal.tradingFees": "트레이딩 비", "modules.staking.components.AboutStakingModal.upTo": "쇼트폴 이벤트, 30% 까지", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "여기", "modules.staking.components.RiskInfoPanel.title": "자산을 스테이킹 하는 것은 리스크가 동반되어 있습니다. {here}를 눌러 더 알아보세요!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "안전 모듈에 있는 자금", diff --git a/src/translations/pt.json b/src/translations/pt.json index 251e27f55..2f98cfd14 100644 --- a/src/translations/pt.json +++ b/src/translations/pt.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "Composição do Empréstimo", "components.DepositBorrowTopPanel.borrowInformation": "Informação do Empréstimo", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Poder de Empréstimo Utilizado", "components.DepositBorrowTopPanel.connectWallet": "Ligue a sua carteira", "components.DepositBorrowTopPanel.currentLTV": "LTV atual", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "Mais seguro", "components.compositionBars.BorrowCompositionBar.title": "Composição do Empréstimo", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "Composição da garantia", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "Poder de empréstimo disponível", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Composição da garantia", "components.compositionBars.CompositionBar.left": "Left", "components.compositionBars.DepositCompositionBar.title": "Composição do Depósito", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Expandir", "components.wrappers.TopPanelWrapper.minimize": "Minimizar", "deposit": "", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "Por favor, mude a sua rede para uma das seguintes: {networks}", "libs.web3-data-provider.errorTitle": "Está ligado à rede errada", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "Token {asset}", "modules.staking.components.AboutStakingModal.tradingFees": "Taxas de negociação", "modules.staking.components.AboutStakingModal.upTo": "evento de escassez, até 30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "Aqui", "modules.staking.components.RiskInfoPanel.title": "Existem riscos envolvidos com o stake dos seus ativos. Para saber mais, siga {here}!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "Fundos no Módulo de Segurança", diff --git a/src/translations/tr.json b/src/translations/tr.json index 8331dd472..008053aae 100644 --- a/src/translations/tr.json +++ b/src/translations/tr.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "Borçlanma Kompozisyonu", "components.DepositBorrowTopPanel.borrowInformation": "Borç Bilgileri", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Kullanılan Borçlanma Gücü", "components.DepositBorrowTopPanel.connectWallet": "Lütfen bir cüzdan bağlayın", "components.DepositBorrowTopPanel.currentLTV": "Mevcut LTV", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "Daha güvenli", "components.compositionBars.BorrowCompositionBar.title": "Borçlanma Kompozisyonu", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "Teminat Kompozisyonu", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "Mevcut borçlanma gücü", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Teminat bileşimi", "components.compositionBars.CompositionBar.left": "Sol", "components.compositionBars.DepositCompositionBar.title": "Mevduat Kompozisyonu", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Genişlet", "components.wrappers.TopPanelWrapper.minimize": "En aza indirmek", "deposit": "Para Yatırma", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "Lütfen ağınızı şunlardan biriyle değiştirin: {networks}", "libs.web3-data-provider.errorTitle": "Yanlış ağa bağlısınız", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} Token", "modules.staking.components.AboutStakingModal.tradingFees": "İşlem Ücretleri", "modules.staking.components.AboutStakingModal.upTo": "eksiklik olayı,% 30'a kadar", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "buraya", "modules.staking.components.RiskInfoPanel.title": "Varlıklarınızı kilitlemek ile ilgili riskler vardır. Daha fazla bilgi edinmek için beni {here} takip edin!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "SM'deki fonlar", diff --git a/src/translations/vi.json b/src/translations/vi.json index abcce2d21..21584ecdf 100644 --- a/src/translations/vi.json +++ b/src/translations/vi.json @@ -34,6 +34,7 @@ "components.DepositBorrowTopPanel.approximateBalance": "", "components.DepositBorrowTopPanel.borrowComposition": "Thành phần vay", "components.DepositBorrowTopPanel.borrowInformation": "Thông tin vay", + "components.DepositBorrowTopPanel.borrowingPowerAvailable": "", "components.DepositBorrowTopPanel.borrowingPowerUsed": "Quyền vay tiền đã sử dụng", "components.DepositBorrowTopPanel.connectWallet": "Vui lòng kết nối ví của bạn", "components.DepositBorrowTopPanel.currentLTV": "Tỷ lệ cho vay hiện tại", @@ -196,7 +197,6 @@ "components.basic.RiskBar.safer": "An toàn hơn", "components.compositionBars.BorrowCompositionBar.title": "Thành phần vay", "components.compositionBars.CircleCollateralCompositionBar.collateralComposition": "Thành phần tài sản thế chấp", - "components.compositionBars.CircleCompositionBar.borrowingPowerAvailable": "Khả năng đi vay có sẵn", "components.compositionBars.CollateralCompositionBar.collateralComposition": "Thành phần tài sản thế chấp", "components.compositionBars.CompositionBar.left": "Phía bên trái", "components.compositionBars.DepositCompositionBar.title": "Thành phần tiền gửi", @@ -288,6 +288,9 @@ "components.wrappers.TopPanelWrapper.expand": "Mở rộng", "components.wrappers.TopPanelWrapper.minimize": "Mức tối thiểu", "deposit": "", + "helpers.timeHelper.days": "", + "helpers.timeHelper.hours": "", + "helpers.timeHelper.minutes": "", "libs.web3-data-provider.errorDescription": "Vui lòng thay đổi mạng của bạn thành một trong: {networks}", "libs.web3-data-provider.errorTitle": "Kết nối mạng của bạn bị lỗi", "libs.web3-data-provider.ledgerDisconnected": "", @@ -795,6 +798,15 @@ "modules.staking.components.AboutStakingModal.token": "{asset} Token", "modules.staking.components.AboutStakingModal.tradingFees": "Phí giao dịch", "modules.staking.components.AboutStakingModal.upTo": "sự kiện giá giảm, lên tới 30%", + "modules.staking.components.CooldownInfoModal.activateCooldown": "", + "modules.staking.components.CooldownInfoModal.caption": "", + "modules.staking.components.CooldownInfoModal.checkboxText": "", + "modules.staking.components.CooldownInfoModal.continueReceiving": "", + "modules.staking.components.CooldownInfoModal.cooldownTitle": "", + "modules.staking.components.CooldownInfoModal.description": "", + "modules.staking.components.CooldownInfoModal.infoDescription": "", + "modules.staking.components.CooldownInfoModal.unstakeHere": "", + "modules.staking.components.CooldownInfoModal.unstakeWindowTitle": "", "modules.staking.components.RiskInfoPanel.here": "tại đây", "modules.staking.components.RiskInfoPanel.title": "Có những rủi ro liên quan đến việc staking tài sản của bạn. Để tìm hiểu thêm, hãy theo dõi tôi {here}!", "modules.staking.components.StakingTopPanel.fundsInTheSM": "Nguồn quỹ trong Mô - đun an toàn",
{intl.formatMessage(messages.continueReceiving)}
{intl.formatMessage(messages.infoDescription)}
{intl.formatMessage(messages.cooldownTitle)}
{intl.formatMessage(messages.unstakeWindowTitle)}