From 3d1087986f34b12bfe42283774b5a621de3b1262 Mon Sep 17 00:00:00 2001 From: Angelina Filippova Date: Mon, 3 Aug 2020 21:12:13 +0300 Subject: [PATCH] Add parsing Sender settings value --- src/store/modules/normalizers.js | 37 ++++++++++++------- .../components/inputComponents/index.js | 1 + 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/store/modules/normalizers.js b/src/store/modules/normalizers.js index c7fc33e8..14561c9f 100644 --- a/src/store/modules/normalizers.js +++ b/src/store/modules/normalizers.js @@ -89,8 +89,8 @@ export const parseTuples = (tuples, key) => { }, []) } else if (item.tuple[0] === ':prune') { accum[item.tuple[0]] = item.tuple[1] === ':disabled' ? [item.tuple[1]] : item.tuple[1].tuple - } else if (item.tuple[0] === ':proxy_url') { - accum[item.tuple[0]] = parseProxyUrl(item.tuple[1]) + } else if (item.tuple[0] === ':proxy_url' || item.tuple[0] === ':sender') { + accum[item.tuple[0]] = parseStringOrTupleValue(item.tuple[0], item.tuple[1]) } else if (item.tuple[0] === ':args') { accum[item.tuple[0]] = parseNonTuples(item.tuple[0], item.tuple[1]) } else if (Array.isArray(item.tuple[1]) && @@ -122,18 +122,29 @@ const parseObject = object => { }, {}) } -const parseProxyUrl = value => { - if (value && !Array.isArray(value) && - typeof value === 'object' && - value.tuple.length === 3 && - value.tuple[0] === ':socks5') { - const [, host, port] = value.tuple - return { socks5: true, host, port } - } else if (typeof value === 'string') { - const [host, port] = value.split(':') - return { socks5: false, host, port } +const parseStringOrTupleValue = (key, value) => { + if (key === ':proxy_url') { + if (value && !Array.isArray(value) && + typeof value === 'object' && + value.tuple.length === 3 && + value.tuple[0] === ':socks5') { + const [, host, port] = value.tuple + return { socks5: true, host, port } + } else if (typeof value === 'string') { + const [host, port] = value.split(':') + return { socks5: false, host, port } + } + return { socks5: false, host: null, port: null } + } else if (key === ':sender') { + if (typeof value === 'string') { + return { email: value } + } else if (value && + typeof value === 'object' && + value.tuple.length === 2) { + const [nickname, email] = value.tuple + return { nickname, email } + } } - return { socks5: false, host: null, port: null } } const prependWithСolon = (type, value) => { diff --git a/src/views/settings/components/inputComponents/index.js b/src/views/settings/components/inputComponents/index.js index 0ef58841..a5a9a7f1 100644 --- a/src/views/settings/components/inputComponents/index.js +++ b/src/views/settings/components/inputComponents/index.js @@ -8,4 +8,5 @@ export { default as PruneInput } from './PruneInput' export { default as RateLimitInput } from './RateLimitInput' export { default as RegInvitesInput } from './RegInvitesInput' export { default as SelectInputWithReducedLabels } from './SelectInputWithReducedLabels' +export { default as SenderInput } from './SenderInput' export { default as SpecificMultipleSelect } from './SpecificMultipleSelect'