diff --git a/src/pages/regulatory/_document_accordion.js b/src/pages/regulatory/_document_accordion.tsx similarity index 96% rename from src/pages/regulatory/_document_accordion.js rename to src/pages/regulatory/_document_accordion.tsx index f310c86a081..50724f43523 100644 --- a/src/pages/regulatory/_document_accordion.js +++ b/src/pages/regulatory/_document_accordion.tsx @@ -1,6 +1,6 @@ import React from 'react' import styled from 'styled-components' -import kid_data from './data/_kid_data.js' +import kid_data from './data/_kid_data' import { Text, Accordion, AccordionItem, LinkText } from 'components/elements' import { Flex } from 'components/containers' import { localize } from 'components/localization' @@ -9,6 +9,8 @@ import PDFIcon from 'images/svg/regulatory/pdf-icon-black.svg' import XLSXIcon from 'images/svg/regulatory/excel.svg' import { DerivStore } from 'store' +type DocumentAccordionProps = { locale: { language: string } } + const FlexText = styled(LinkText)` width: 26%; display: flex; @@ -114,7 +116,7 @@ const RTS27_28 = () => ( ) -const DocumentAccordion = (locale) => { +const DocumentAccordion = (locale: DocumentAccordionProps) => { const content_style = { background: 'var(--color-white)', boxShadow: '-2px 6px 15px 0 rgba(195, 195, 195, 0.31)', @@ -135,7 +137,7 @@ const DocumentAccordion = (locale) => { const selected_language = locale.locale.language || 'en' const supported_languages = ['es', 'it', 'pl', 'pt'] - const is_supported_language = (language) => supported_languages.includes(language) + const is_supported_language = (language: string) => supported_languages.includes(language) const { is_eu_country } = React.useContext(DerivStore) diff --git a/src/pages/regulatory/_eu-grid.js b/src/pages/regulatory/_eu-grid.tsx similarity index 97% rename from src/pages/regulatory/_eu-grid.js rename to src/pages/regulatory/_eu-grid.tsx index fa1a379660f..fb207061d45 100644 --- a/src/pages/regulatory/_eu-grid.js +++ b/src/pages/regulatory/_eu-grid.tsx @@ -1,10 +1,15 @@ import React from 'react' -import PropTypes from 'prop-types' import styled from 'styled-components' import { CssGrid, CssGridColumn } from 'components/containers' import { localize, WithIntl, Localize } from 'components/localization' import { ReactComponent as ViewLicense } from 'images/svg/regulatory/view-license.svg' +type GridItemProps = { + name: string + order: string + url: string +} + const Country = styled.div` margin-bottom: 2.4rem; display: grid; @@ -61,7 +66,8 @@ const AttachmentIcon = styled(ViewLicense)` } } ` -const GridItem = ({ name, order, url }) => ( + +const GridItem = ({ name, order, url }: GridItemProps) => ( {order} @@ -72,11 +78,7 @@ const GridItem = ({ name, order, url }) => ( ) -GridItem.propTypes = { - name: PropTypes.string, - order: PropTypes.string, - url: PropTypes.string, -} + const EUgrid = () => { return ( diff --git a/src/pages/regulatory/_financial_commission.js b/src/pages/regulatory/_financial_commission.tsx similarity index 100% rename from src/pages/regulatory/_financial_commission.js rename to src/pages/regulatory/_financial_commission.tsx diff --git a/src/pages/regulatory/data/_kid_data.js b/src/pages/regulatory/data/_kid_data.tsx similarity index 100% rename from src/pages/regulatory/data/_kid_data.js rename to src/pages/regulatory/data/_kid_data.tsx diff --git a/src/pages/regulatory/index.js b/src/pages/regulatory/index.tsx similarity index 99% rename from src/pages/regulatory/index.js rename to src/pages/regulatory/index.tsx index 5accd998b54..14c3744ec3a 100644 --- a/src/pages/regulatory/index.js +++ b/src/pages/regulatory/index.tsx @@ -1,6 +1,5 @@ import React from 'react' import styled from 'styled-components' -import PropTypes from 'prop-types' import EUgrid from './_eu-grid' import DocumentAccordion from './_document_accordion' import FinancialCommission from './_financial_commission' @@ -29,6 +28,14 @@ import MGA from 'images/common/regulatory/mga.png' import SVG from 'images/svg/regulatory/svg.svg' import device from 'themes/device.js' +type BoxProps = { + padding?: string +} + +type RegulatoryProps = { + language: string +} + const Img = styled.img` display: flex; width: 16rem; @@ -52,7 +59,7 @@ const Mobile = styled(Show.Mobile)` const Desktop = styled(Show.Desktop)` display: flex; ` -const Box = styled.div` +const Box = styled.div` display: flex; flex-direction: column; align-items: center; @@ -94,7 +101,7 @@ const ResponsiveHeader = styled(StyledHeader)` const Content = styled.div` display: contents; ` -const Regulatory = (locale) => { +const Regulatory = (locale: RegulatoryProps) => { const { is_eu_country } = React.useContext(DerivStore) return ( @@ -462,8 +469,4 @@ const Regulatory = (locale) => { ) } -Regulatory.propTypes = { - locale: PropTypes.object, -} - export default WithIntl()(Regulatory) diff --git a/src/store/index.tsx b/src/store/index.tsx index ad459938a2a..222b09acb22 100644 --- a/src/store/index.tsx +++ b/src/store/index.tsx @@ -13,7 +13,7 @@ type WebsiteStatusType = { crypto_config: any } -type DerivStoreTypes = { +export type DerivStoreType = { academy_data: AcademyDataType crypto_config: any is_eu_country: boolean @@ -21,15 +21,15 @@ type DerivStoreTypes = { is_loading_lc: boolean is_p2p_allowed_country: boolean is_uk_country: boolean - LC_API: any - setFirstLoadOpenLc: Dispatch + LC_API: { open_chat_window: () => void } + setFirstLoadOpenLc: React.Dispatch> setWebsiteStatus: Dispatch user_country: string website_status_loading: boolean website_status: WebsiteStatusType } -export const DerivStore = createContext(null) +export const DerivStore = createContext(null) export const DerivProvider = ({ children }: DerivProviderProps) => { const [website_status, setWebsiteStatus, website_status_loading] = useWebsiteStatus()