diff --git a/client/src/components/ui/Guide.js b/client/src/components/ui/Guide.js index cef1c6f8..a06af83b 100644 --- a/client/src/components/ui/Guide.js +++ b/client/src/components/ui/Guide.js @@ -2,22 +2,25 @@ import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Trans, useTranslation } from 'react-i18next'; import i18next from 'i18next'; +import { useSelector } from 'react-redux'; import Tabs from './Tabs'; import Icons from './Icons'; +import { getPathWithQueryString } from '../../helpers/helpers'; const MOBILE_CONFIG_LINKS = { DOT: '/apple/dot.mobileconfig', DOH: '/apple/doh.mobileconfig', }; - -const renderMobileconfigInfo = ({ label, components }) =>
text
,
- ],
- },
- {
- label: 'setup_dns_privacy_android_3',
- components: [
- {
- key: 0,
- href: 'https://getintra.org/',
- },
- text
,
- ],
- },
- ],
-},
-{
- title: 'iOS',
- list: [
+const getDnsPrivacyList = (server_name) => {
+ const iosList = [
{
label: 'setup_dns_privacy_ios_2',
components: [
@@ -79,13 +53,6 @@ const dnsPrivacyList = [{
text
,
],
},
- {
- label: 'setup_dns_privacy_4',
- components: {
- highlight:
,
- },
- renderComponent: renderMobileconfigInfo,
- },
{
label: 'setup_dns_privacy_ios_1',
components: [
@@ -93,68 +60,114 @@ const dnsPrivacyList = [{
key: 0,
href: 'https://itunes.apple.com/app/id1452162351',
},
- text
,
- {
- key: 2,
- href: 'https://dnscrypt.info/stamps',
- },
+ text
,
+ {
+ key: 2,
+ href: 'https://dnscrypt.info/stamps',
+ },
],
- },
- ],
-},
-{
- title: 'setup_dns_privacy_other_title',
- list: [
- {
- label: 'setup_dns_privacy_other_1',
- },
- {
- label: 'setup_dns_privacy_other_2',
- components: [
- {
- key: 0,
- href: 'https://github.com/AdguardTeam/dnsproxy',
- },
- ],
- },
- {
- href: 'https://github.com/jedisct1/dnscrypt-proxy',
- label: 'setup_dns_privacy_other_3',
- components: [
- {
- key: 0,
- href: 'https://github.com/jedisct1/dnscrypt-proxy',
- },
+ }];
+ /* Insert second element if can generate .mobileconfig links */
+ if (server_name) {
+ iosList.splice(1, 0, {
+ label: 'setup_dns_privacy_4',
+ components: {
+ highlight:
,
+ },
+ renderComponent: ({ label, components }) => renderMobileconfigInfo({
+ label,
+ components,
+ server_name,
+ }),
+ });
+ }
+
+ return [{
+ title: 'Android',
+ list: [
+ {
+ label: 'setup_dns_privacy_android_1',
+ },
+ {
+ label: 'setup_dns_privacy_android_2',
+ components: [
+ {
+ key: 0,
+ href: 'https://adguard.com/adguard-android/overview.html',
+ },
text
,
- ],
- },
- {
- label: 'setup_dns_privacy_other_4',
- components: [
- {
- key: 0,
- href: 'https://support.mozilla.org/kb/firefox-dns-over-https',
- },
+ ],
+ },
+ {
+ label: 'setup_dns_privacy_android_3',
+ components: [
+ {
+ key: 0,
+ href: 'https://getintra.org/',
+ },
text
,
- ],
- },
- {
- label: 'setup_dns_privacy_other_5',
- components: [
- {
- key: 0,
- href: 'https://dnscrypt.info/implementations',
- },
- {
- key: 1,
- href: 'https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Clients',
- },
- ],
- },
- ],
-},
-];
+ ],
+ },
+ ],
+ },
+ {
+ title: 'iOS',
+ list: iosList,
+ },
+ {
+ title: 'setup_dns_privacy_other_title',
+ list: [
+ {
+ label: 'setup_dns_privacy_other_1',
+ },
+ {
+ label: 'setup_dns_privacy_other_2',
+ components: [
+ {
+ key: 0,
+ href: 'https://github.com/AdguardTeam/dnsproxy',
+ },
+ ],
+ },
+ {
+ href: 'https://github.com/jedisct1/dnscrypt-proxy',
+ label: 'setup_dns_privacy_other_3',
+ components: [
+ {
+ key: 0,
+ href: 'https://github.com/jedisct1/dnscrypt-proxy',
+ },
+ text
,
+ ],
+ },
+ {
+ label: 'setup_dns_privacy_other_4',
+ components: [
+ {
+ key: 0,
+ href: 'https://support.mozilla.org/kb/firefox-dns-over-https',
+ },
+ text
,
+ ],
+ },
+ {
+ label: 'setup_dns_privacy_other_5',
+ components: [
+ {
+ key: 0,
+ href: 'https://dnscrypt.info/implementations',
+ },
+ {
+ key: 1,
+ href: 'https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Clients',
+ },
+ ],
+ },
+ ],
+ },
+ ];
+};
const renderDnsPrivacyList = ({ title, list }) =>