diff --git a/app/soapbox/features/chats/components/chat-page/components/chat-page-settings.tsx b/app/soapbox/features/chats/components/chat-page/components/chat-page-settings.tsx index 4c214ff07..e63aeee45 100644 --- a/app/soapbox/features/chats/components/chat-page/components/chat-page-settings.tsx +++ b/app/soapbox/features/chats/components/chat-page/components/chat-page-settings.tsx @@ -7,7 +7,7 @@ import { useOwnAccount } from 'soapbox/hooks'; import { useUpdateCredentials } from 'soapbox/queries/accounts'; type FormData = { - accepting_messages?: boolean + accepts_chat_messages?: boolean chats_onboarded: boolean } @@ -26,7 +26,7 @@ const ChatPageSettings = () => { const [data, setData] = useState({ chats_onboarded: true, - accepting_messages: account?.accepting_messages, + accepts_chat_messages: account?.accepts_chat_messages, }); const handleSubmit = (event: React.FormEvent) => { @@ -49,8 +49,8 @@ const ChatPageSettings = () => { hint={intl.formatMessage(messages.acceptingMessageHint)} > setData((prevData) => ({ ...prevData, accepting_messages: event.target.checked }))} + checked={data.accepts_chat_messages} + onChange={(event) => setData((prevData) => ({ ...prevData, accepts_chat_messages: event.target.checked }))} /> diff --git a/app/soapbox/features/chats/components/chat-page/components/welcome.tsx b/app/soapbox/features/chats/components/chat-page/components/welcome.tsx index d70cf7d93..3d2c3156f 100644 --- a/app/soapbox/features/chats/components/chat-page/components/welcome.tsx +++ b/app/soapbox/features/chats/components/chat-page/components/welcome.tsx @@ -7,7 +7,7 @@ import { useOwnAccount } from 'soapbox/hooks'; import { useUpdateCredentials } from 'soapbox/queries/accounts'; type FormData = { - accepting_messages?: boolean + accepts_chat_messages?: boolean chats_onboarded: boolean } @@ -27,7 +27,7 @@ const Welcome = () => { const [data, setData] = useState({ chats_onboarded: true, - accepting_messages: account?.accepting_messages, + accepts_chat_messages: account?.accepts_chat_messages, }); const handleSubmit = (event: React.FormEvent) => { @@ -65,8 +65,8 @@ const Welcome = () => { hint={intl.formatMessage(messages.acceptingMessageHint)} > setData((prevData) => ({ ...prevData, accepting_messages: event.target.checked }))} + checked={data.accepts_chat_messages} + onChange={(event) => setData((prevData) => ({ ...prevData, accepts_chat_messages: event.target.checked }))} /> diff --git a/app/soapbox/features/settings/components/messages-settings.tsx b/app/soapbox/features/settings/components/messages-settings.tsx index c96dc1468..f5706f058 100644 --- a/app/soapbox/features/settings/components/messages-settings.tsx +++ b/app/soapbox/features/settings/components/messages-settings.tsx @@ -17,7 +17,7 @@ const MessagesSettings = () => { const updateCredentials = useUpdateCredentials(); const handleChange = (event: React.ChangeEvent) => { - updateCredentials.mutate({ accepting_messages: event.target.checked }); + updateCredentials.mutate({ accepts_chat_messages: event.target.checked }); }; if (!account) { @@ -31,7 +31,7 @@ const MessagesSettings = () => { hint={intl.formatMessage(messages.hint)} > diff --git a/app/soapbox/normalizers/account.ts b/app/soapbox/normalizers/account.ts index 63ad77c48..30cfd512d 100644 --- a/app/soapbox/normalizers/account.ts +++ b/app/soapbox/normalizers/account.ts @@ -21,7 +21,7 @@ import type { Emoji, Field, EmbeddedEntity, Relationship } from 'soapbox/types/e // https://docs.joinmastodon.org/entities/account/ export const AccountRecord = ImmutableRecord({ - accepting_messages: false, + accepts_chat_messages: false, acct: '', avatar: '', avatar_static: '', @@ -264,6 +264,12 @@ const normalizeDiscoverable = (account: ImmutableMap) => { return account.set('discoverable', discoverable); }; +/** Normalize message acceptance between Pleroma and Truth Social. */ +const normalizeMessageAcceptance = (account: ImmutableMap) => { + const acceptance = Boolean(account.getIn(['pleroma', 'accepts_chat_messages']) || account.get('accepting_messages')); + return account.set('accepts_chat_messages', acceptance); +}; + /** Normalize undefined/null birthday to empty string. */ const fixBirthday = (account: ImmutableMap) => { const birthday = account.get('birthday'); @@ -285,6 +291,7 @@ export const normalizeAccount = (account: Record) => { normalizeFqn(account); normalizeFavicon(account); normalizeDiscoverable(account); + normalizeMessageAcceptance(account); addDomain(account); addStaffFields(account); fixUsername(account); diff --git a/app/soapbox/queries/accounts.ts b/app/soapbox/queries/accounts.ts index 228c9a2b1..75d1193f6 100644 --- a/app/soapbox/queries/accounts.ts +++ b/app/soapbox/queries/accounts.ts @@ -30,7 +30,7 @@ export type IAccount = { } type UpdateCredentialsData = { - accepting_messages?: boolean + accepts_chat_messages?: boolean chats_onboarded?: boolean }