From ec5dc45d919bb75a165d48dde5ee23c3533307ed Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 20:19:45 +0100 Subject: [PATCH 01/10] Improve centering of message --- scss/composer/_composer.scss | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scss/composer/_composer.scss b/scss/composer/_composer.scss index 99c677fabf..6d6a408fa8 100644 --- a/scss/composer/_composer.scss +++ b/scss/composer/_composer.scss @@ -1,17 +1,18 @@ .composer { background-color: var(--composerBg); border-left: 1px solid rgba(16, 22, 26, 0.1); + &.composer--disabled-message-input { --composerHeight: 40px; + + display: flex; + justify-content: center; + align-items: center; text-align: center; - padding: calc((var(--composerHeight) - 16px) / 2); height: var(--composerHeight); + padding: 3px; color: #999; overflow: hidden; - - @media only screen and (max-width: 830px) { - padding: 0px 3px; - } } &.contact-request { From d3e1d39754441b4e2d99c6ee3259b855e38f0954 Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 20:20:06 +0100 Subject: [PATCH 02/10] Remove unused ref and do not use tx for bug case --- src/renderer/components/composer/Composer.tsx | 2 +- .../composer/DisabledMessageInput.tsx | 61 +++++++++---------- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/src/renderer/components/composer/Composer.tsx b/src/renderer/components/composer/Composer.tsx index 8b82bf410b..4581c714b9 100644 --- a/src/renderer/components/composer/Composer.tsx +++ b/src/renderer/components/composer/Composer.tsx @@ -305,7 +305,7 @@ const Composer = forwardRef< ) } else if (isDisabled) { - return + return } else { return (
diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index e6ba45ba1f..d1286e065c 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -1,4 +1,4 @@ -import React, { forwardRef, useMemo } from 'react' +import React, { useMemo } from 'react' import { useTranslationFunction } from '../../contexts' import { DisabledChatReasons } from './useIsChatDisabled' @@ -7,40 +7,37 @@ type Props = { reason?: DisabledChatReasons } -const DisabledMessageInput = forwardRef( - ({ reason }: Props, ref) => { - const tx = useTranslationFunction() - - const reasonMessage = useMemo(() => { - switch (reason) { - case DisabledChatReasons.MAILING_LIST: - return tx('messaging_disabled_mailing_list') - case DisabledChatReasons.NOT_IN_GROUP: - return tx('messaging_disabled_not_in_group') - case DisabledChatReasons.DEADDROP: - return tx('messaging_disabled_deaddrop') - case DisabledChatReasons.UNKNOWN: - default: - return tx('messaging_disabled_unknown') - } - }, [reason, tx]) - - // If no reason was given we return no component - if (!reason) { - return null +const DisabledMessageInput = ({ reason }: Props) => { + const tx = useTranslationFunction() + + const reasonMessage = useMemo(() => { + switch (reason) { + case DisabledChatReasons.MAILING_LIST: + return tx('messaging_disabled_mailing_list') + case DisabledChatReasons.NOT_IN_GROUP: + return tx('messaging_disabled_not_in_group') + case DisabledChatReasons.DEADDROP: + return tx('messaging_disabled_deaddrop') + case DisabledChatReasons.UNKNOWN: + return 'UNKNOWN_DISABLED_CHAT_REASON' } + }, [reason, tx]) - // If we're in the device message chat we also do not want to show anything - if (reason === DisabledChatReasons.DEVICE_CHAT) { - return null - } + // If no reason was given we return no component + if (!reason) { + return null + } - return ( -
- {reasonMessage} -
- ) + // If we're in the device message chat we also do not want to show anything + if (reason === DisabledChatReasons.DEVICE_CHAT) { + return null } -) + + return ( +
+ {reasonMessage} +
+ ) +} export default DisabledMessageInput From 239b0cd67d3bff320964e2a302baefd5577afd0b Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 20:23:07 +0100 Subject: [PATCH 03/10] Add entry to CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index da7e9ec9ca..3264b055a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### Fixed - fix: files search not case-insensitive - fix: bug in emoji detection for jumbomoji #3508 +- Improve layout and fix unknown locale of DisabledMessageInput #3537 From 1f5ddc203e1ce8c71916f7193d56827f45ddb890 Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 20:37:32 +0100 Subject: [PATCH 04/10] Throw an error instead on unknown reason for read-only status --- src/renderer/components/composer/DisabledMessageInput.tsx | 2 -- src/renderer/components/composer/useIsChatDisabled.ts | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index d1286e065c..16fadb7d1c 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -18,8 +18,6 @@ const DisabledMessageInput = ({ reason }: Props) => { return tx('messaging_disabled_not_in_group') case DisabledChatReasons.DEADDROP: return tx('messaging_disabled_deaddrop') - case DisabledChatReasons.UNKNOWN: - return 'UNKNOWN_DISABLED_CHAT_REASON' } }, [reason, tx]) diff --git a/src/renderer/components/composer/useIsChatDisabled.ts b/src/renderer/components/composer/useIsChatDisabled.ts index 1da94eaa83..62de4570f7 100644 --- a/src/renderer/components/composer/useIsChatDisabled.ts +++ b/src/renderer/components/composer/useIsChatDisabled.ts @@ -5,7 +5,6 @@ export enum DisabledChatReasons { DEVICE_CHAT, MAILING_LIST, NOT_IN_GROUP, - UNKNOWN, } export default function useIsChatDisabled( @@ -28,5 +27,7 @@ export default function useIsChatDisabled( return [true, DisabledChatReasons.NOT_IN_GROUP] } - return [true, DisabledChatReasons.UNKNOWN] + throw new Error( + 'Could not determine read-only state of chat due to invalid chat information' + ) } From 6a3ae8152bd753b1c8641fb218c7836f478490d9 Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 21:16:07 +0100 Subject: [PATCH 05/10] Revert "Throw an error instead on unknown reason for read-only status" This reverts commit 1f5ddc203e1ce8c71916f7193d56827f45ddb890. --- src/renderer/components/composer/DisabledMessageInput.tsx | 2 ++ src/renderer/components/composer/useIsChatDisabled.ts | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index 16fadb7d1c..d1286e065c 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -18,6 +18,8 @@ const DisabledMessageInput = ({ reason }: Props) => { return tx('messaging_disabled_not_in_group') case DisabledChatReasons.DEADDROP: return tx('messaging_disabled_deaddrop') + case DisabledChatReasons.UNKNOWN: + return 'UNKNOWN_DISABLED_CHAT_REASON' } }, [reason, tx]) diff --git a/src/renderer/components/composer/useIsChatDisabled.ts b/src/renderer/components/composer/useIsChatDisabled.ts index 62de4570f7..1da94eaa83 100644 --- a/src/renderer/components/composer/useIsChatDisabled.ts +++ b/src/renderer/components/composer/useIsChatDisabled.ts @@ -5,6 +5,7 @@ export enum DisabledChatReasons { DEVICE_CHAT, MAILING_LIST, NOT_IN_GROUP, + UNKNOWN, } export default function useIsChatDisabled( @@ -27,7 +28,5 @@ export default function useIsChatDisabled( return [true, DisabledChatReasons.NOT_IN_GROUP] } - throw new Error( - 'Could not determine read-only state of chat due to invalid chat information' - ) + return [true, DisabledChatReasons.UNKNOWN] } From 8059e94166a2b5d0da82e21258e5136e688c0d3c Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 21:17:54 +0100 Subject: [PATCH 06/10] Throw error on view level instead --- src/renderer/components/composer/DisabledMessageInput.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index d1286e065c..1c8141275f 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -19,7 +19,7 @@ const DisabledMessageInput = ({ reason }: Props) => { case DisabledChatReasons.DEADDROP: return tx('messaging_disabled_deaddrop') case DisabledChatReasons.UNKNOWN: - return 'UNKNOWN_DISABLED_CHAT_REASON' + throw new Error('Invalid read-only chat status') } }, [reason, tx]) From b09f6a7ccf6c0366035371527472f69b379e0060 Mon Sep 17 00:00:00 2001 From: adz Date: Thu, 16 Nov 2023 21:20:01 +0100 Subject: [PATCH 07/10] Use default case instead to raise errors --- src/renderer/components/composer/DisabledMessageInput.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index 1c8141275f..53ba2d158e 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -18,8 +18,10 @@ const DisabledMessageInput = ({ reason }: Props) => { return tx('messaging_disabled_not_in_group') case DisabledChatReasons.DEADDROP: return tx('messaging_disabled_deaddrop') - case DisabledChatReasons.UNKNOWN: - throw new Error('Invalid read-only chat status') + case DisabledChatReasons.DEVICE_CHAT: + return tx('messaging_disabled_device_chat') + default: + throw new Error('Unknown read-only chat status') } }, [reason, tx]) From 753ed0c0f0faa1e506fb11ef093d304ebdabb4c8 Mon Sep 17 00:00:00 2001 From: adz Date: Fri, 17 Nov 2023 12:24:37 +0100 Subject: [PATCH 08/10] Do not throw error on unknown case, return string instead --- src/renderer/components/composer/DisabledMessageInput.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index 53ba2d158e..f3e379d6ec 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -20,8 +20,10 @@ const DisabledMessageInput = ({ reason }: Props) => { return tx('messaging_disabled_deaddrop') case DisabledChatReasons.DEVICE_CHAT: return tx('messaging_disabled_device_chat') + case DisabledChatReasons.UNKNOWN: + return 'messaging_disabled_unknown' default: - throw new Error('Unknown read-only chat status') + throw new Error('Invalid read-only chat status') } }, [reason, tx]) @@ -30,7 +32,7 @@ const DisabledMessageInput = ({ reason }: Props) => { return null } - // If we're in the device message chat we also do not want to show anything + // If we're in the "device message" chat we also do not want to show anything if (reason === DisabledChatReasons.DEVICE_CHAT) { return null } From 438b13493bc751a90652f1c6c3595370453c0008 Mon Sep 17 00:00:00 2001 From: adz Date: Fri, 17 Nov 2023 12:25:57 +0100 Subject: [PATCH 09/10] Explain this a little with a comment --- src/renderer/components/composer/DisabledMessageInput.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index f3e379d6ec..954325f6b9 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -21,6 +21,8 @@ const DisabledMessageInput = ({ reason }: Props) => { case DisabledChatReasons.DEVICE_CHAT: return tx('messaging_disabled_device_chat') case DisabledChatReasons.UNKNOWN: + // Unknown cases are likely to be caused by a bug somewhere else, + // but we don't want to crash the UI return 'messaging_disabled_unknown' default: throw new Error('Invalid read-only chat status') From 5f0371534401e3f66772313a1ce84c968f3e0066 Mon Sep 17 00:00:00 2001 From: Andreas Dzialocha Date: Fri, 17 Nov 2023 18:41:18 +0100 Subject: [PATCH 10/10] Update comment Co-authored-by: Simon Laux --- src/renderer/components/composer/DisabledMessageInput.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/components/composer/DisabledMessageInput.tsx b/src/renderer/components/composer/DisabledMessageInput.tsx index 954325f6b9..bc5522b760 100644 --- a/src/renderer/components/composer/DisabledMessageInput.tsx +++ b/src/renderer/components/composer/DisabledMessageInput.tsx @@ -21,7 +21,7 @@ const DisabledMessageInput = ({ reason }: Props) => { case DisabledChatReasons.DEVICE_CHAT: return tx('messaging_disabled_device_chat') case DisabledChatReasons.UNKNOWN: - // Unknown cases are likely to be caused by a bug somewhere else, + // Unknown cases are likely to be caused by a new case introduced by a new core update that is not yet handled here, // but we don't want to crash the UI return 'messaging_disabled_unknown' default: