From 5ae0b836a596f5f47b3af1b1727211538dc3e366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Gangloff?= Date: Thu, 22 Aug 2024 01:44:50 +0200 Subject: [PATCH] refactor: move functions --- assets/components/LoginForm.tsx | 3 +- assets/components/RegisterForm.tsx | 3 +- assets/components/search/DomainResult.tsx | 19 ++- assets/components/search/EntitiesList.tsx | 5 +- assets/components/search/EventTimeline.tsx | 3 +- .../tracking/watchlist/WatchlistCard.tsx | 3 +- .../tracking/watchlist/WatchlistForm.tsx | 3 +- .../diagram/ViewDiagramWatchlistButton.tsx | 2 +- .../watchlist/diagram/watchlistToEdges.tsx | 3 +- .../watchlist/diagram/watchlistToNodes.tsx | 3 +- assets/pages/info/TldPage.tsx | 20 +-- assets/pages/search/DomainSearchPage.tsx | 2 +- assets/pages/tracking/ConnectorsPage.tsx | 3 +- assets/pages/tracking/WatchlistPage.tsx | 3 +- assets/utils/functions/actionToColor.tsx | 11 ++ assets/utils/functions/actionToIcon.tsx | 26 ++++ assets/utils/functions/entityToName.tsx | 11 ++ assets/utils/functions/getCountryCode.tsx | 5 + assets/utils/functions/roleToAvatar.tsx | 24 +++ assets/utils/functions/rolesToColor.tsx | 6 + assets/utils/functions/showErrorAPI.tsx | 27 ++++ assets/utils/functions/sortDomainEntities.tsx | 9 ++ assets/utils/functions/tldToEmoji.tsx | 12 ++ assets/utils/index.tsx | 111 -------------- translations/translations.pot | 142 +++++++++--------- 25 files changed, 244 insertions(+), 215 deletions(-) create mode 100644 assets/utils/functions/actionToColor.tsx create mode 100644 assets/utils/functions/actionToIcon.tsx create mode 100644 assets/utils/functions/entityToName.tsx create mode 100644 assets/utils/functions/getCountryCode.tsx create mode 100644 assets/utils/functions/roleToAvatar.tsx create mode 100644 assets/utils/functions/rolesToColor.tsx create mode 100644 assets/utils/functions/showErrorAPI.tsx create mode 100644 assets/utils/functions/sortDomainEntities.tsx create mode 100644 assets/utils/functions/tldToEmoji.tsx delete mode 100644 assets/utils/index.tsx diff --git a/assets/components/LoginForm.tsx b/assets/components/LoginForm.tsx index 65d3a08..036634c 100644 --- a/assets/components/LoginForm.tsx +++ b/assets/components/LoginForm.tsx @@ -4,7 +4,8 @@ import React, {useContext, useEffect} from "react"; import {getUser, login} from "../utils/api"; import {AuthenticatedContext} from "../pages/LoginPage"; import {useNavigate} from "react-router-dom"; -import {showErrorAPI} from "../utils"; + +import {showErrorAPI} from "../utils/functions/showErrorAPI"; type FieldType = { diff --git a/assets/components/RegisterForm.tsx b/assets/components/RegisterForm.tsx index ff5389f..9035035 100644 --- a/assets/components/RegisterForm.tsx +++ b/assets/components/RegisterForm.tsx @@ -3,7 +3,8 @@ import {t} from "ttag"; import React, {useState} from "react"; import {register} from "../utils/api"; import {useNavigate} from "react-router-dom"; -import {showErrorAPI} from "../utils"; + +import {showErrorAPI} from "../utils/functions/showErrorAPI"; type FieldType = { diff --git a/assets/components/search/DomainResult.tsx b/assets/components/search/DomainResult.tsx index 1bcd00e..aa1d3b2 100644 --- a/assets/components/search/DomainResult.tsx +++ b/assets/components/search/DomainResult.tsx @@ -6,19 +6,30 @@ import {DomainDiagram} from "./DomainDiagram"; import React from "react"; import {Domain} from "../../utils/api"; import {rdapStatusCodeDetailTranslation} from "./rdapTranslation"; +import {regionNames} from "../../i18n"; + +import {getCountryCode} from "../../utils/functions/getCountryCode"; export function DomainResult({domain}: { domain: Domain }) { const rdapStatusCodeDetailTranslated = rdapStatusCodeDetailTranslation() + const {tld} = domain return - + {`.${domain.tld.tld.toUpperCase()} (${tld.type})`} + + } color={ - domain.tld.type === 'ccTLD' ? 'purple' : - (domain.tld.type === 'gTLD' && domain.tld.specification13) ? "volcano" : - domain.tld.type === 'gTLD' ? "green" + tld.type === 'ccTLD' ? 'purple' : + (tld.type === 'gTLD' && tld.specification13) ? "volcano" : + tld.type === 'gTLD' ? "green" : "cyan" }> + {domain.ldhName}{domain.handle && {domain.handle}} } diff --git a/assets/components/search/EntitiesList.tsx b/assets/components/search/EntitiesList.tsx index 072e497..599e7bb 100644 --- a/assets/components/search/EntitiesList.tsx +++ b/assets/components/search/EntitiesList.tsx @@ -2,7 +2,10 @@ import {List, Tag, Tooltip} from "antd"; import React from "react"; import {Domain} from "../../utils/api"; import {rdapRoleDetailTranslation, rdapRoleTranslation} from "./rdapTranslation"; -import {entityToName, rolesToColor, roleToAvatar, sortDomainEntities} from "../../utils"; +import {roleToAvatar} from "../../utils/functions/roleToAvatar"; +import {rolesToColor} from "../../utils/functions/rolesToColor"; +import {entityToName} from "../../utils/functions/entityToName"; +import {sortDomainEntities} from "../../utils/functions/sortDomainEntities"; export function EntitiesList({domain}: { domain: Domain }) { diff --git a/assets/components/search/EventTimeline.tsx b/assets/components/search/EventTimeline.tsx index a25134a..c5a4a16 100644 --- a/assets/components/search/EventTimeline.tsx +++ b/assets/components/search/EventTimeline.tsx @@ -3,7 +3,8 @@ import React from "react"; import {Domain} from "../../utils/api"; import useBreakpoint from "../../hooks/useBreakpoint"; import {rdapEventDetailTranslation, rdapEventNameTranslation} from "./rdapTranslation"; -import {actionToColor, actionToIcon} from "../../utils"; +import {actionToColor} from "../../utils/functions/actionToColor"; +import {actionToIcon} from "../../utils/functions/actionToIcon"; export function EventTimeline({domain}: { domain: Domain }) { const sm = useBreakpoint('sm') diff --git a/assets/components/tracking/watchlist/WatchlistCard.tsx b/assets/components/tracking/watchlist/WatchlistCard.tsx index dfd9903..6abc64f 100644 --- a/assets/components/tracking/watchlist/WatchlistCard.tsx +++ b/assets/components/tracking/watchlist/WatchlistCard.tsx @@ -11,7 +11,8 @@ import {Connector} from "../../../utils/api/connectors"; import useBreakpoint from "../../../hooks/useBreakpoint"; import {CalendarWatchlistButton} from "./CalendarWatchlistButton"; import {rdapEventDetailTranslation, rdapEventNameTranslation} from "../../search/rdapTranslation"; -import {actionToColor} from "../../../utils"; + +import {actionToColor} from "../../../utils/functions/actionToColor"; export function WatchlistCard({watchlist, onUpdateWatchlist, connectors, onDelete}: { watchlist: Watchlist, diff --git a/assets/components/tracking/watchlist/WatchlistForm.tsx b/assets/components/tracking/watchlist/WatchlistForm.tsx index eb8380a..02a22e7 100644 --- a/assets/components/tracking/watchlist/WatchlistForm.tsx +++ b/assets/components/tracking/watchlist/WatchlistForm.tsx @@ -4,7 +4,8 @@ import {ApiOutlined, MinusCircleOutlined, PlusOutlined} from "@ant-design/icons" import React from "react"; import {Connector} from "../../../utils/api/connectors"; import {rdapEventDetailTranslation, rdapEventNameTranslation} from "../../search/rdapTranslation"; -import {actionToColor, actionToIcon} from "../../../utils"; +import {actionToColor} from "../../../utils/functions/actionToColor"; +import {actionToIcon} from "../../../utils/functions/actionToIcon"; type TagRender = SelectProps['tagRender']; diff --git a/assets/components/tracking/watchlist/diagram/ViewDiagramWatchlistButton.tsx b/assets/components/tracking/watchlist/diagram/ViewDiagramWatchlistButton.tsx index fbc4395..be1674c 100644 --- a/assets/components/tracking/watchlist/diagram/ViewDiagramWatchlistButton.tsx +++ b/assets/components/tracking/watchlist/diagram/ViewDiagramWatchlistButton.tsx @@ -26,7 +26,7 @@ export function ViewDiagramWatchlistButton({token}: { token: string }) { if (!open) return setLoading(true) getWatchlist(token).then(w => { - const e = getLayoutedElements(watchlistToNodes(w), watchlistToEdges(w)) + const e = getLayoutedElements(watchlistToNodes(w, true), watchlistToEdges(w, true)) setNodes(e.nodes) setEdges(e.edges) }).catch(() => setOpen(false)).finally(() => setLoading(false)) diff --git a/assets/components/tracking/watchlist/diagram/watchlistToEdges.tsx b/assets/components/tracking/watchlist/diagram/watchlistToEdges.tsx index 165a02d..8168d3e 100644 --- a/assets/components/tracking/watchlist/diagram/watchlistToEdges.tsx +++ b/assets/components/tracking/watchlist/diagram/watchlistToEdges.tsx @@ -1,7 +1,8 @@ import {Domain, Watchlist} from "../../../../utils/api"; import {rdapRoleTranslation} from "../../../search/rdapTranslation"; import {t} from "ttag"; -import {rolesToColor} from "../../../../utils"; + +import {rolesToColor} from "../../../../utils/functions/rolesToColor"; export function domainEntitiesToEdges(d: Domain, withRegistrar = false) { const rdapRoleTranslated = rdapRoleTranslation() diff --git a/assets/components/tracking/watchlist/diagram/watchlistToNodes.tsx b/assets/components/tracking/watchlist/diagram/watchlistToNodes.tsx index e6e3836..3819bd1 100644 --- a/assets/components/tracking/watchlist/diagram/watchlistToNodes.tsx +++ b/assets/components/tracking/watchlist/diagram/watchlistToNodes.tsx @@ -1,7 +1,8 @@ import {Domain, Nameserver, Tld, Watchlist} from "../../../../utils/api"; import React from "react"; import {t} from 'ttag' -import {entityToName} from "../../../../utils"; + +import {entityToName} from "../../../../utils/functions/entityToName"; export const domainToNode = (d: Domain) => ({ id: d.ldhName, diff --git a/assets/pages/info/TldPage.tsx b/assets/pages/info/TldPage.tsx index 6467895..6e3c7df 100644 --- a/assets/pages/info/TldPage.tsx +++ b/assets/pages/info/TldPage.tsx @@ -6,28 +6,14 @@ import {regionNames} from "../../i18n"; import useBreakpoint from "../../hooks/useBreakpoint"; import {ColumnType} from "antd/es/table"; import punycode from "punycode/punycode"; +import {getCountryCode} from "../../utils/functions/getCountryCode"; +import {tldToEmoji} from "../../utils/functions/tldToEmoji"; const {Text, Paragraph} = Typography type TldType = 'iTLD' | 'sTLD' | 'gTLD' | 'ccTLD' type FiltersType = { type: TldType, contractTerminated?: boolean, specification13?: boolean } -const toEmoji = (tld: string) => { - if (tld.startsWith('xn--')) return '-' - - return String.fromCodePoint( - ...getCountryCode(tld) - .toUpperCase() - .split('') - .map((char) => 127397 + char.charCodeAt(0)) - ) -} - -const getCountryCode = (tld: string): string => { - const exceptions = {uk: 'gb', su: 'ru', tp: 'tl'} - if (tld in exceptions) return exceptions[tld as keyof typeof exceptions] - return tld.toUpperCase() -} function TldTable(filters: FiltersType) { const sm = useBreakpoint('sm') @@ -55,7 +41,7 @@ function TldTable(filters: FiltersType) { return { ...rowData, - Flag: toEmoji(tld.tld), + Flag: tldToEmoji(tld.tld), Country: countryName } case 'gTLD': diff --git a/assets/pages/search/DomainSearchPage.tsx b/assets/pages/search/DomainSearchPage.tsx index 5f50815..9049b34 100644 --- a/assets/pages/search/DomainSearchPage.tsx +++ b/assets/pages/search/DomainSearchPage.tsx @@ -4,8 +4,8 @@ import {Domain, getDomain} from "../../utils/api"; import {AxiosError} from "axios" import {t} from 'ttag' import {DomainSearchBar, FieldType} from "../../components/search/DomainSearchBar"; -import {showErrorAPI} from "../../utils"; import {DomainResult} from "../../components/search/DomainResult"; +import {showErrorAPI} from "../../utils/functions/showErrorAPI"; export default function DomainSearchPage() { const [domain, setDomain] = useState() diff --git a/assets/pages/tracking/ConnectorsPage.tsx b/assets/pages/tracking/ConnectorsPage.tsx index 85675b8..ab91c67 100644 --- a/assets/pages/tracking/ConnectorsPage.tsx +++ b/assets/pages/tracking/ConnectorsPage.tsx @@ -5,7 +5,8 @@ import {Connector, getConnectors, postConnector} from "../../utils/api/connector import {ConnectorForm} from "../../components/tracking/connector/ConnectorForm"; import {AxiosError} from "axios"; import {ConnectorElement, ConnectorsList} from "../../components/tracking/connector/ConnectorsList"; -import {showErrorAPI} from "../../utils"; + +import {showErrorAPI} from "../../utils/functions/showErrorAPI"; export default function ConnectorsPage() { const [form] = Form.useForm() diff --git a/assets/pages/tracking/WatchlistPage.tsx b/assets/pages/tracking/WatchlistPage.tsx index c2bcd74..7e37796 100644 --- a/assets/pages/tracking/WatchlistPage.tsx +++ b/assets/pages/tracking/WatchlistPage.tsx @@ -6,7 +6,8 @@ import {t} from 'ttag' import {WatchlistForm} from "../../components/tracking/watchlist/WatchlistForm"; import {WatchlistsList} from "../../components/tracking/watchlist/WatchlistsList"; import {Connector, getConnectors} from "../../utils/api/connectors"; -import {showErrorAPI} from "../../utils"; + +import {showErrorAPI} from "../../utils/functions/showErrorAPI"; export type Watchlist = { diff --git a/assets/utils/functions/actionToColor.tsx b/assets/utils/functions/actionToColor.tsx new file mode 100644 index 0000000..6a6ad25 --- /dev/null +++ b/assets/utils/functions/actionToColor.tsx @@ -0,0 +1,11 @@ +import {EventAction} from "../api"; + +export const actionToColor = (a: EventAction) => a === 'registration' ? 'green' : + a === 'reregistration' ? 'cyan' : + a === 'expiration' ? 'red' : + a === 'deletion' ? 'magenta' : + a === 'transfer' ? 'orange' : + a === 'last changed' ? 'blue' : + a === 'registrar expiration' ? 'red' : + a === 'reinstantiation' ? 'purple' : + a === 'enum validation expiration' ? 'red' : 'default' \ No newline at end of file diff --git a/assets/utils/functions/actionToIcon.tsx b/assets/utils/functions/actionToIcon.tsx new file mode 100644 index 0000000..3f1c3e8 --- /dev/null +++ b/assets/utils/functions/actionToIcon.tsx @@ -0,0 +1,26 @@ +import {EventAction} from "../api"; +import { + ClockCircleOutlined, + DeleteOutlined, + LockOutlined, + ReloadOutlined, + ShareAltOutlined, + SignatureOutlined, + SyncOutlined, + UnlockOutlined +} from "@ant-design/icons"; +import React from "react"; + +export const actionToIcon = (a: EventAction) => a === 'registration' ? + : a === 'expiration' ? + : a === 'transfer' ? + : a === 'last changed' ? + : a === 'deletion' ? + : a === 'reregistration' ? + : a === 'locked' ? + : a === 'unlocked' ? + : a === 'registrar expiration' ? + : a === 'enum validation expiration' ? + : a === 'reinstantiation' ? + : undefined \ No newline at end of file diff --git a/assets/utils/functions/entityToName.tsx b/assets/utils/functions/entityToName.tsx new file mode 100644 index 0000000..1df483f --- /dev/null +++ b/assets/utils/functions/entityToName.tsx @@ -0,0 +1,11 @@ +import {Entity} from "../api"; +import vCard from "vcf"; + +export const entityToName = (e: { entity: Entity }): string => { + if (e.entity.jCard.length === 0) return e.entity.handle + + const jCard = vCard.fromJSON(e.entity.jCard) + let name = e.entity.handle + if (jCard.data.fn && !Array.isArray(jCard.data.fn) && jCard.data.fn.valueOf() !== '') name = jCard.data.fn.valueOf() + return name +} \ No newline at end of file diff --git a/assets/utils/functions/getCountryCode.tsx b/assets/utils/functions/getCountryCode.tsx new file mode 100644 index 0000000..ba8a482 --- /dev/null +++ b/assets/utils/functions/getCountryCode.tsx @@ -0,0 +1,5 @@ +export const getCountryCode = (tld: string): string => { + const exceptions = {uk: 'gb', su: 'ru', tp: 'tl'} + if (tld in exceptions) return exceptions[tld as keyof typeof exceptions] + return tld.toUpperCase() +} \ No newline at end of file diff --git a/assets/utils/functions/roleToAvatar.tsx b/assets/utils/functions/roleToAvatar.tsx new file mode 100644 index 0000000..308520e --- /dev/null +++ b/assets/utils/functions/roleToAvatar.tsx @@ -0,0 +1,24 @@ +import {Avatar} from "antd"; +import { + BankOutlined, + DollarOutlined, + IdcardOutlined, + SignatureOutlined, + ToolOutlined, + UserOutlined +} from "@ant-design/icons"; +import React from "react"; + +import {rolesToColor} from "./rolesToColor"; + +export const roleToAvatar = (e: { roles: string[] }) => : e.roles.includes('registrar') ? + : + e.roles.includes('technical') ? + : + e.roles.includes('administrative') ? + : + e.roles.includes('billing') ? + : + }/> \ No newline at end of file diff --git a/assets/utils/functions/rolesToColor.tsx b/assets/utils/functions/rolesToColor.tsx new file mode 100644 index 0000000..f4d40f0 --- /dev/null +++ b/assets/utils/functions/rolesToColor.tsx @@ -0,0 +1,6 @@ +export const rolesToColor = (roles: string[]) => roles.includes('registrant') ? 'green' : + roles.includes('administrative') ? 'blue' : + roles.includes('technical') ? 'orange' : + roles.includes('registrar') ? 'purple' : + roles.includes('sponsor') ? 'magenta' : + roles.includes('billing') ? 'cyan' : 'default' \ No newline at end of file diff --git a/assets/utils/functions/showErrorAPI.tsx b/assets/utils/functions/showErrorAPI.tsx new file mode 100644 index 0000000..ec28f01 --- /dev/null +++ b/assets/utils/functions/showErrorAPI.tsx @@ -0,0 +1,27 @@ +import {AxiosError, AxiosResponse} from "axios"; +import {MessageInstance, MessageType} from "antd/lib/message/interface"; +import {t} from "ttag"; + +export function showErrorAPI(e: AxiosError, messageApi: MessageInstance): MessageType | undefined { + + const response = e.response as AxiosResponse + const data = response.data + + if ('message' in data) { + return messageApi.error(data.message as string) + } + + if (!('detail' in data)) return + const detail = data.detail as string + + if (response.status === 429) { + const duration = response.headers['retry-after'] + return messageApi.error(t`Please retry after ${duration} seconds`) + } + + if (response.status.toString()[0] === '4') { + return messageApi.warning(detail !== '' ? detail : t`An error occurred`) + } + + return messageApi.error(detail !== '' ? detail : t`An error occurred`) +} \ No newline at end of file diff --git a/assets/utils/functions/sortDomainEntities.tsx b/assets/utils/functions/sortDomainEntities.tsx new file mode 100644 index 0000000..c098f42 --- /dev/null +++ b/assets/utils/functions/sortDomainEntities.tsx @@ -0,0 +1,9 @@ +import {Domain} from "../api"; + +export const sortDomainEntities = (domain: Domain) => domain.entities.sort((e1, e2) => { + const p = (r: string[]) => r.includes('registrant') ? 5 : + r.includes('administrative') ? 4 : + r.includes('billing') ? 3 : + r.includes('registrar') ? 2 : 1 + return p(e2.roles) - p(e1.roles) +}) \ No newline at end of file diff --git a/assets/utils/functions/tldToEmoji.tsx b/assets/utils/functions/tldToEmoji.tsx new file mode 100644 index 0000000..2640aac --- /dev/null +++ b/assets/utils/functions/tldToEmoji.tsx @@ -0,0 +1,12 @@ +import {getCountryCode} from "./getCountryCode"; + +export const tldToEmoji = (tld: string) => { + if (tld.startsWith('xn--')) return '-' + + return String.fromCodePoint( + ...getCountryCode(tld) + .toUpperCase() + .split('') + .map((char) => 127397 + char.charCodeAt(0)) + ) +} \ No newline at end of file diff --git a/assets/utils/index.tsx b/assets/utils/index.tsx deleted file mode 100644 index 8c4b8b7..0000000 --- a/assets/utils/index.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import {MessageInstance, MessageType} from "antd/lib/message/interface"; -import {AxiosError, AxiosResponse} from "axios"; -import {t} from "ttag"; -import {Avatar} from "antd"; -import { - BankOutlined, - ClockCircleOutlined, - DeleteOutlined, - DollarOutlined, - IdcardOutlined, - LockOutlined, - ReloadOutlined, - ShareAltOutlined, - SignatureOutlined, - SyncOutlined, - ToolOutlined, - UnlockOutlined, - UserOutlined -} from "@ant-design/icons"; -import {Domain, Entity, EventAction} from "./api"; -import vCard from "vcf"; -import React from "react"; - - -export const roleToAvatar = (e: { roles: string[] }) => : e.roles.includes('registrar') ? - : - e.roles.includes('technical') ? - : - e.roles.includes('administrative') ? - : - e.roles.includes('billing') ? - : - }/> - - -export const rolesToColor = (roles: string[]) => roles.includes('registrant') ? 'green' : - roles.includes('administrative') ? 'blue' : - roles.includes('technical') ? 'orange' : - roles.includes('registrar') ? 'purple' : - roles.includes('sponsor') ? 'magenta' : - roles.includes('billing') ? 'cyan' : 'default' - - -export const actionToColor = (a: EventAction) => a === 'registration' ? 'green' : - a === 'reregistration' ? 'cyan' : - a === 'expiration' ? 'red' : - a === 'deletion' ? 'magenta' : - a === 'transfer' ? 'orange' : - a === 'last changed' ? 'blue' : - a === 'registrar expiration' ? 'red' : - a === 'reinstantiation' ? 'purple' : - a === 'enum validation expiration' ? 'red' : 'default' - -export const actionToIcon = (a: EventAction) => a === 'registration' ? - : a === 'expiration' ? - : a === 'transfer' ? - : a === 'last changed' ? - : a === 'deletion' ? - : a === 'reregistration' ? - : a === 'locked' ? - : a === 'unlocked' ? - : a === 'registrar expiration' ? - : a === 'enum validation expiration' ? - : a === 'reinstantiation' ? - : undefined - - -export const entityToName = (e: { entity: Entity }): string => { - if (e.entity.jCard.length === 0) return e.entity.handle - - const jCard = vCard.fromJSON(e.entity.jCard) - let name = e.entity.handle - if (jCard.data.fn && !Array.isArray(jCard.data.fn) && jCard.data.fn.valueOf() !== '') name = jCard.data.fn.valueOf() - return name -} - -export const sortDomainEntities = (domain: Domain) => domain.entities.sort((e1, e2) => { - const p = (r: string[]) => r.includes('registrant') ? 5 : - r.includes('administrative') ? 4 : - r.includes('billing') ? 3 : - r.includes('registrar') ? 2 : 1 - return p(e2.roles) - p(e1.roles) -}) - - -export function showErrorAPI(e: AxiosError, messageApi: MessageInstance): MessageType | undefined { - - const response = e.response as AxiosResponse - const data = response.data - - if ('message' in data) { - return messageApi.error(data.message as string) - } - - if (!('detail' in data)) return - const detail = data.detail as string - - if (response.status === 429) { - const duration = response.headers['retry-after'] - return messageApi.error(t`Please retry after ${duration} seconds`) - } - - if (response.status.toString()[0] === '4') { - return messageApi.warning(detail !== '' ? detail : t`An error occurred`) - } - - return messageApi.error(detail !== '' ? detail : t`An error occurred`) -} \ No newline at end of file diff --git a/translations/translations.pot b/translations/translations.pot index 467e21d..1f6a7b2 100644 --- a/translations/translations.pot +++ b/translations/translations.pot @@ -3,15 +3,15 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: assets/components/LoginForm.tsx:51 -#: assets/components/RegisterForm.tsx:38 +#: assets/components/LoginForm.tsx:52 +#: assets/components/RegisterForm.tsx:39 msgid "Email address" msgstr "" -#: assets/components/LoginForm.tsx:53 -#: assets/components/LoginForm.tsx:61 -#: assets/components/RegisterForm.tsx:40 -#: assets/components/RegisterForm.tsx:48 +#: assets/components/LoginForm.tsx:54 +#: assets/components/LoginForm.tsx:62 +#: assets/components/RegisterForm.tsx:41 +#: assets/components/RegisterForm.tsx:49 #: assets/components/search/DomainSearchBar.tsx:22 #: assets/components/tracking/connector/ConnectorForm.tsx:43 #: assets/components/tracking/connector/ConnectorForm.tsx:69 @@ -22,21 +22,21 @@ msgstr "" #: assets/components/tracking/connector/ConnectorForm.tsx:142 #: assets/components/tracking/connector/ConnectorForm.tsx:156 #: assets/components/tracking/connector/ConnectorForm.tsx:165 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:114 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:211 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:115 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:212 msgid "Required" msgstr "" -#: assets/components/LoginForm.tsx:59 -#: assets/components/RegisterForm.tsx:46 +#: assets/components/LoginForm.tsx:60 +#: assets/components/RegisterForm.tsx:47 msgid "Password" msgstr "" -#: assets/components/LoginForm.tsx:69 +#: assets/components/LoginForm.tsx:70 msgid "Submit" msgstr "" -#: assets/components/LoginForm.tsx:74 +#: assets/components/LoginForm.tsx:75 msgid "Log in with SSO" msgstr "" @@ -456,20 +456,20 @@ msgid "" "registry." msgstr "" -#: assets/components/search/DomainResult.tsx:28 +#: assets/components/search/DomainResult.tsx:39 msgid "EPP Status Codes" msgstr "" -#: assets/components/search/DomainResult.tsx:42 +#: assets/components/search/DomainResult.tsx:53 msgid "Timeline" msgstr "" -#: assets/components/search/DomainResult.tsx:47 +#: assets/components/search/DomainResult.tsx:58 msgid "Entities" msgstr "" #: assets/components/search/DomainSearchBar.tsx:25 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:117 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:118 msgid "This domain name does not appear to be valid" msgstr "" @@ -544,12 +544,12 @@ msgid "" msgstr "" #: assets/components/tracking/connector/ConnectorForm.tsx:176 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:251 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:252 msgid "Create" msgstr "" #: assets/components/tracking/connector/ConnectorForm.tsx:179 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:254 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:255 msgid "Reset" msgstr "" @@ -582,72 +582,72 @@ msgstr "" msgid "No" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:71 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:72 msgid "Name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:82 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:83 msgid "Watchlist Name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:83 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:84 msgid "Naming the Watchlist makes it easier to find in the list below." msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:94 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:95 msgid "At least one domain name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:28 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:105 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:29 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:106 msgid "Domain names" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:123 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:124 msgid "Domain name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:140 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:141 msgid "Add a Domain name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:32 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:147 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:33 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:148 msgid "Tracked events" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:149 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:150 msgid "At least one trigger" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:172 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:186 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:173 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:187 msgid "Connector" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:182 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:183 msgid "" "Please make sure the connector information is valid to purchase a domain " "that may be available soon." msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:202 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:203 msgid "DSN" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:214 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:215 msgid "This DSN does not appear to be valid" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:232 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:233 msgid "Check out this link to the Symfony documentation to help you build the DSN" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:241 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:242 msgid "Add a Webhook" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:251 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:252 msgid "Update" msgstr "" @@ -671,11 +671,11 @@ msgstr "" msgid "Watchlist Entity Diagram" msgstr "" -#: assets/components/tracking/watchlist/diagram/watchlistToEdges.tsx:36 +#: assets/components/tracking/watchlist/diagram/watchlistToEdges.tsx:37 msgid "Registry" msgstr "" -#: assets/components/tracking/watchlist/diagram/watchlistToNodes.tsx:29 +#: assets/components/tracking/watchlist/diagram/watchlistToNodes.tsx:30 #, javascript-format msgid ".${ tld.tld } Registry" msgstr "" @@ -697,11 +697,11 @@ msgstr "" msgid "Are you sure to delete this Watchlist?" msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:45 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:46 msgid "This Watchlist is not linked to a Connector." msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:48 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:49 msgid "Watchlist" msgstr "" @@ -722,7 +722,7 @@ msgid "Domain Finder" msgstr "" #: assets/components/Sider.tsx:48 -#: assets/pages/info/TldPage.tsx:79 +#: assets/pages/info/TldPage.tsx:65 msgid "TLD" msgstr "" @@ -777,7 +777,7 @@ msgstr "" msgid "Log in" msgstr "" -#: assets/components/RegisterForm.tsx:55 +#: assets/components/RegisterForm.tsx:56 #: assets/pages/LoginPage.tsx:25 msgid "Register" msgstr "" @@ -796,23 +796,23 @@ msgid "" "WHOIS by its registrar." msgstr "" -#: assets/pages/info/TldPage.tsx:85 +#: assets/pages/info/TldPage.tsx:71 msgid "Flag" msgstr "" -#: assets/pages/info/TldPage.tsx:88 +#: assets/pages/info/TldPage.tsx:74 msgid "Country" msgstr "" -#: assets/pages/info/TldPage.tsx:93 +#: assets/pages/info/TldPage.tsx:79 msgid "Registry Operator" msgstr "" -#: assets/pages/info/TldPage.tsx:120 +#: assets/pages/info/TldPage.tsx:106 msgid "This page presents all active TLDs in the root zone database." msgstr "" -#: assets/pages/info/TldPage.tsx:123 +#: assets/pages/info/TldPage.tsx:109 msgid "" "IANA provides the list of currently active TLDs, regardless of their type, " "and ICANN provides the list of gTLDs.\n" @@ -824,42 +824,42 @@ msgid "" "At the same time, the list of root RDAP servers is updated." msgstr "" -#: assets/pages/info/TldPage.tsx:134 +#: assets/pages/info/TldPage.tsx:120 msgid "Sponsored Top-Level-Domains" msgstr "" -#: assets/pages/info/TldPage.tsx:136 +#: assets/pages/info/TldPage.tsx:122 msgid "" "Top-level domains sponsored by specific organizations that set rules for " "registration and use, often related to particular interest groups or " "industries." msgstr "" -#: assets/pages/info/TldPage.tsx:143 +#: assets/pages/info/TldPage.tsx:129 msgid "Generic Top-Level-Domains" msgstr "" -#: assets/pages/info/TldPage.tsx:145 +#: assets/pages/info/TldPage.tsx:131 msgid "" "Generic top-level domains open to everyone, not restricted by specific " "criteria, representing various themes or industries." msgstr "" -#: assets/pages/info/TldPage.tsx:152 +#: assets/pages/info/TldPage.tsx:138 msgid "Brand Generic Top-Level-Domains" msgstr "" -#: assets/pages/info/TldPage.tsx:154 +#: assets/pages/info/TldPage.tsx:140 msgid "" "Generic top-level domains associated with specific brands, allowing " "companies to use their own brand names as domains." msgstr "" -#: assets/pages/info/TldPage.tsx:161 +#: assets/pages/info/TldPage.tsx:147 msgid "Country-Code Top-Level-Domains" msgstr "" -#: assets/pages/info/TldPage.tsx:163 +#: assets/pages/info/TldPage.tsx:149 msgid "" "Top-level domains based on country codes, identifying websites according to " "their country of origin." @@ -873,23 +873,23 @@ msgstr "" msgid "Roles" msgstr "" -#: assets/pages/tracking/ConnectorsPage.tsx:19 +#: assets/pages/tracking/ConnectorsPage.tsx:20 msgid "Connector created !" msgstr "" -#: assets/pages/tracking/ConnectorsPage.tsx:38 +#: assets/pages/tracking/ConnectorsPage.tsx:39 msgid "Create a Connector" msgstr "" -#: assets/pages/tracking/WatchlistPage.tsx:64 +#: assets/pages/tracking/WatchlistPage.tsx:65 msgid "Watchlist created !" msgstr "" -#: assets/pages/tracking/WatchlistPage.tsx:76 +#: assets/pages/tracking/WatchlistPage.tsx:77 msgid "Watchlist updated !" msgstr "" -#: assets/pages/tracking/WatchlistPage.tsx:100 +#: assets/pages/tracking/WatchlistPage.tsx:101 msgid "Create a Watchlist" msgstr "" @@ -901,6 +901,16 @@ msgstr "" msgid "Create an account" msgstr "" +#: assets/utils/functions/showErrorAPI.tsx:19 +#, javascript-format +msgid "Please retry after ${ duration } seconds" +msgstr "" + +#: assets/utils/functions/showErrorAPI.tsx:23 +#: assets/utils/functions/showErrorAPI.tsx:26 +msgid "An error occurred" +msgstr "" + #: assets/utils/providers/index.tsx:11 msgid "" "Retrieve a set of tokens from your customer account on the Provider's " @@ -943,16 +953,6 @@ msgid "" "another" msgstr "" -#: assets/utils/index.tsx:103 -#, javascript-format -msgid "Please retry after ${ duration } seconds" -msgstr "" - -#: assets/utils/index.tsx:107 -#: assets/utils/index.tsx:110 -msgid "An error occurred" -msgstr "" - #: assets/App.tsx:101 msgid "TOS" msgstr ""