Merge branch 'add-nip-05-nag-post' into 'main'
Add nip 05 nag post Closes #1740 See merge request soapbox-pub/soapbox!3135
This commit is contained in:
commit
20cca0165b
|
@ -1,8 +1,8 @@
|
|||
import clsx from 'clsx';
|
||||
import { CLEAR_EDITOR_COMMAND, TextNode, type LexicalEditor, $getRoot } from 'lexical';
|
||||
import React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
||||
import { Link, useHistory } from 'react-router-dom';
|
||||
import { defineMessages, useIntl } from 'react-intl';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import { length } from 'stringz';
|
||||
|
||||
import {
|
||||
|
@ -39,7 +39,6 @@ import SpoilerInput from './spoiler-input';
|
|||
import TextCharacterCounter from './text-character-counter';
|
||||
import UploadForm from './upload-form';
|
||||
import VisualCharacterCounter from './visual-character-counter';
|
||||
import Warning from './warning';
|
||||
|
||||
import type { Emoji } from 'soapbox/features/emoji';
|
||||
|
||||
|
@ -73,7 +72,6 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
|
|||
const compose = useCompose(id);
|
||||
const showSearch = useAppSelector((state) => state.search.submitted && !state.search.hidden);
|
||||
const maxTootChars = instance.configuration.statuses.max_characters;
|
||||
const scheduledStatusCount = useAppSelector((state) => state.scheduled_statuses.size);
|
||||
const features = useFeatures();
|
||||
|
||||
const {
|
||||
|
@ -246,25 +244,6 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
|
|||
|
||||
return (
|
||||
<Stack className='w-full' space={4} ref={formRef} onClick={handleClick} element='form' onSubmit={handleSubmit}>
|
||||
{scheduledStatusCount > 0 && !event && !group && (
|
||||
<Warning
|
||||
message={(
|
||||
<FormattedMessage
|
||||
id='compose_form.scheduled_statuses.message'
|
||||
defaultMessage='You have scheduled posts. {click_here} to see them.'
|
||||
values={{ click_here: (
|
||||
<Link to='/scheduled_statuses'>
|
||||
<FormattedMessage
|
||||
id='compose_form.scheduled_statuses.click_here'
|
||||
defaultMessage='Click here'
|
||||
/>
|
||||
</Link>
|
||||
) }}
|
||||
/>)
|
||||
}
|
||||
/>
|
||||
)}
|
||||
|
||||
<WarningContainer composeId={id} />
|
||||
|
||||
{!shouldCondense && !event && !group && groupId && <ReplyGroupIndicator composeId={id} />}
|
||||
|
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
|||
import { FormattedMessage } from 'react-intl';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import { useAppSelector, useCompose } from 'soapbox/hooks';
|
||||
import { useAppSelector, useCompose, useOwnAccount, useSettingsNotifications } from 'soapbox/hooks';
|
||||
import { selectOwnAccount } from 'soapbox/selectors';
|
||||
|
||||
import Warning from '../components/warning';
|
||||
|
@ -15,11 +15,60 @@ interface IWarningWrapper {
|
|||
|
||||
const WarningWrapper: React.FC<IWarningWrapper> = ({ composeId }) => {
|
||||
const compose = useCompose(composeId);
|
||||
const scheduledStatusCount = useAppSelector((state) => state.scheduled_statuses.size);
|
||||
const { account } = useOwnAccount();
|
||||
const settingsNotifications = useSettingsNotifications();
|
||||
|
||||
const needsLockWarning = useAppSelector((state) => compose.privacy === 'private' && !selectOwnAccount(state)!.locked);
|
||||
const hashtagWarning = (compose.privacy !== 'public' && compose.privacy !== 'group') && APPROX_HASHTAG_RE.test(compose.text);
|
||||
const directMessageWarning = compose.privacy === 'direct';
|
||||
|
||||
if (scheduledStatusCount > 0) {
|
||||
return (
|
||||
<Warning
|
||||
message={(
|
||||
<FormattedMessage
|
||||
id='compose_form.scheduled_statuses.message'
|
||||
defaultMessage='You have scheduled posts. {click_here} to see them.'
|
||||
values={{ click_here: (
|
||||
<Link to='/scheduled_statuses'>
|
||||
<FormattedMessage
|
||||
id='compose_form.scheduled_statuses.click_here'
|
||||
defaultMessage='Click here'
|
||||
/>
|
||||
</Link>
|
||||
) }}
|
||||
/>)
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (account?.source?.nostr?.nip05 === undefined) {
|
||||
if (settingsNotifications.has('needsNip05')) {
|
||||
return (
|
||||
<FormattedMessage
|
||||
id='compose_form.nip05.warning'
|
||||
defaultMessage={'You don\'t have a username configured. {click} to set one up.'}
|
||||
values={{
|
||||
click: (
|
||||
<Link to='/settings/identity'>
|
||||
<FormattedMessage id='compose_form.nip05.warning.click' defaultMessage='Click here' />
|
||||
</Link>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<FormattedMessage
|
||||
id='compose_form.nip05.pending'
|
||||
defaultMessage='Your username request is under review.'
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (needsLockWarning) {
|
||||
return (
|
||||
<Warning
|
||||
|
|
|
@ -22,3 +22,4 @@ export { useSettings } from './useSettings';
|
|||
export { useSoapboxConfig } from './useSoapboxConfig';
|
||||
export { useSystemTheme } from './useSystemTheme';
|
||||
export { useTheme } from './useTheme';
|
||||
export { useSettingsNotifications } from './useSettingsNotifications';
|
|
@ -479,6 +479,9 @@
|
|||
"compose_form.markdown.marked": "Post markdown enabled",
|
||||
"compose_form.markdown.unmarked": "Post markdown disabled",
|
||||
"compose_form.message": "Message",
|
||||
"compose_form.nip05.pending": "Your username request is under review.",
|
||||
"compose_form.nip05.warning": "You don't have a username configured. {click} to set one up.",
|
||||
"compose_form.nip05.warning.click": "Click here",
|
||||
"compose_form.placeholder": "What's on your mind?",
|
||||
"compose_form.poll.add_option": "Add an answer",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
|
|
|
@ -478,6 +478,9 @@
|
|||
"compose_form.markdown.marked": "Markdown do post ativado",
|
||||
"compose_form.markdown.unmarked": "Markdown do post desativado",
|
||||
"compose_form.message": "Mensagem",
|
||||
"compose_form.nip05.pending": "Seu pedido de nome de usuário está em revisão.",
|
||||
"compose_form.nip05.warning": "Você não tem um nome de usuário configurado. {click} para configurá-lo.",
|
||||
"compose_form.nip05.warning.click": "Clique aqui",
|
||||
"compose_form.placeholder": "No que você está pensando?",
|
||||
"compose_form.poll.add_option": "Adicionar uma resposta",
|
||||
"compose_form.poll.duration": "Duração da enquete",
|
||||
|
|
Loading…
Reference in New Issue