-
+ {button}
+
);
};
diff --git a/app/soapbox/features/notifications/components/__tests__/notification.test.tsx b/app/soapbox/features/notifications/components/__tests__/notification.test.tsx
index b9c5df641..e75562485 100644
--- a/app/soapbox/features/notifications/components/__tests__/notification.test.tsx
+++ b/app/soapbox/features/notifications/components/__tests__/notification.test.tsx
@@ -1,4 +1,4 @@
-import * as React from 'react';
+import React from 'react';
import { updateNotifications } from 'soapbox/actions/notifications';
import { render, screen, rootState, createTestStore } from 'soapbox/jest/test-helpers';
diff --git a/app/soapbox/features/onboarding/onboarding-wizard.tsx b/app/soapbox/features/onboarding/onboarding-wizard.tsx
index ae3c3c74c..f89204885 100644
--- a/app/soapbox/features/onboarding/onboarding-wizard.tsx
+++ b/app/soapbox/features/onboarding/onboarding-wizard.tsx
@@ -1,5 +1,5 @@
import classNames from 'clsx';
-import * as React from 'react';
+import React from 'react';
import { useDispatch } from 'react-redux';
import ReactSwipeableViews from 'react-swipeable-views';
diff --git a/app/soapbox/features/onboarding/steps/avatar-selection-step.tsx b/app/soapbox/features/onboarding/steps/avatar-selection-step.tsx
index 753ef4d7f..936b59a51 100644
--- a/app/soapbox/features/onboarding/steps/avatar-selection-step.tsx
+++ b/app/soapbox/features/onboarding/steps/avatar-selection-step.tsx
@@ -1,5 +1,5 @@
import classNames from 'clsx';
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import { useDispatch } from 'react-redux';
diff --git a/app/soapbox/features/onboarding/steps/bio-step.tsx b/app/soapbox/features/onboarding/steps/bio-step.tsx
index 31c7bc6c9..bed69ecbc 100644
--- a/app/soapbox/features/onboarding/steps/bio-step.tsx
+++ b/app/soapbox/features/onboarding/steps/bio-step.tsx
@@ -1,4 +1,4 @@
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import { useDispatch } from 'react-redux';
diff --git a/app/soapbox/features/onboarding/steps/completed-step.tsx b/app/soapbox/features/onboarding/steps/completed-step.tsx
index b6637589c..a1059cb91 100644
--- a/app/soapbox/features/onboarding/steps/completed-step.tsx
+++ b/app/soapbox/features/onboarding/steps/completed-step.tsx
@@ -1,4 +1,4 @@
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import { Button, Card, CardBody, Icon, Stack, Text } from 'soapbox/components/ui';
diff --git a/app/soapbox/features/onboarding/steps/cover-photo-selection-step.tsx b/app/soapbox/features/onboarding/steps/cover-photo-selection-step.tsx
index 520fbc1b9..ee0ffa0eb 100644
--- a/app/soapbox/features/onboarding/steps/cover-photo-selection-step.tsx
+++ b/app/soapbox/features/onboarding/steps/cover-photo-selection-step.tsx
@@ -1,5 +1,5 @@
import classNames from 'clsx';
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import { useDispatch } from 'react-redux';
diff --git a/app/soapbox/features/onboarding/steps/display-name-step.tsx b/app/soapbox/features/onboarding/steps/display-name-step.tsx
index 00f38916e..d833fdc52 100644
--- a/app/soapbox/features/onboarding/steps/display-name-step.tsx
+++ b/app/soapbox/features/onboarding/steps/display-name-step.tsx
@@ -1,4 +1,4 @@
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import { useDispatch } from 'react-redux';
diff --git a/app/soapbox/features/onboarding/steps/fediverse-step.tsx b/app/soapbox/features/onboarding/steps/fediverse-step.tsx
index 6dbb26620..4d83c5b98 100644
--- a/app/soapbox/features/onboarding/steps/fediverse-step.tsx
+++ b/app/soapbox/features/onboarding/steps/fediverse-step.tsx
@@ -1,4 +1,4 @@
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import Account from 'soapbox/components/account';
diff --git a/app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx b/app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx
index e01206251..d91366899 100644
--- a/app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx
+++ b/app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx
@@ -1,5 +1,5 @@
import debounce from 'lodash/debounce';
-import * as React from 'react';
+import React from 'react';
import { FormattedMessage } from 'react-intl';
import ScrollableList from 'soapbox/components/scrollable-list';
diff --git a/app/soapbox/features/placeholder/components/placeholder-avatar.tsx b/app/soapbox/features/placeholder/components/placeholder-avatar.tsx
index d84fe1a4e..7d9fa62f0 100644
--- a/app/soapbox/features/placeholder/components/placeholder-avatar.tsx
+++ b/app/soapbox/features/placeholder/components/placeholder-avatar.tsx
@@ -1,4 +1,4 @@
-import * as React from 'react';
+import React from 'react';
import { Stack } from 'soapbox/components/ui';
diff --git a/app/soapbox/features/placeholder/components/placeholder-card.tsx b/app/soapbox/features/placeholder/components/placeholder-card.tsx
index f587589d6..f0ef9bc72 100644
--- a/app/soapbox/features/placeholder/components/placeholder-card.tsx
+++ b/app/soapbox/features/placeholder/components/placeholder-card.tsx
@@ -1,5 +1,5 @@
import classNames from 'clsx';
-import * as React from 'react';
+import React from 'react';
import { randomIntFromInterval, generateText } from '../utils';
diff --git a/app/soapbox/features/placeholder/components/placeholder-notification.tsx b/app/soapbox/features/placeholder/components/placeholder-notification.tsx
index 1a035066d..d3dab9005 100644
--- a/app/soapbox/features/placeholder/components/placeholder-notification.tsx
+++ b/app/soapbox/features/placeholder/components/placeholder-notification.tsx
@@ -1,4 +1,5 @@
-import * as React from 'react';
+import React from 'react';
+import { HStack } from 'soapbox/components/ui';
import PlaceholderAvatar from './placeholder-avatar';
import PlaceholderDisplayName from './placeholder-display-name';
@@ -13,7 +14,7 @@ const PlaceholderNotification = () => (
diff --git a/app/soapbox/features/placeholder/components/placeholder-status.tsx b/app/soapbox/features/placeholder/components/placeholder-status.tsx
index b015c9df9..51cb4a5ce 100644
--- a/app/soapbox/features/placeholder/components/placeholder-status.tsx
+++ b/app/soapbox/features/placeholder/components/placeholder-status.tsx
@@ -1,5 +1,7 @@
import classNames from 'clsx';
-import * as React from 'react';
+import React from 'react';
+
+import { HStack } from 'soapbox/components/ui';
import PlaceholderAvatar from './placeholder-avatar';
import PlaceholderDisplayName from './placeholder-display-name';
@@ -19,7 +21,7 @@ const PlaceholderStatus: React.FC
= ({ thread = false }) =>
>
-
+
@@ -27,7 +29,7 @@ const PlaceholderStatus: React.FC = ({ thread = false }) =>
-
+
diff --git a/app/soapbox/features/public-layout/components/header.tsx b/app/soapbox/features/public-layout/components/header.tsx
index 640f65d6f..053711afd 100644
--- a/app/soapbox/features/public-layout/components/header.tsx
+++ b/app/soapbox/features/public-layout/components/header.tsx
@@ -92,7 +92,7 @@ const Header = () => {
-
+
{links.get('help') && (
@@ -122,7 +122,7 @@ const Header = () => {
-
-
+
diff --git a/app/soapbox/features/reply-mentions/account.tsx b/app/soapbox/features/reply-mentions/account.tsx
index 53dc4e02c..5facac7a8 100644
--- a/app/soapbox/features/reply-mentions/account.tsx
+++ b/app/soapbox/features/reply-mentions/account.tsx
@@ -3,9 +3,9 @@ import { defineMessages, useIntl } from 'react-intl';
import { fetchAccount } from 'soapbox/actions/accounts';
import { addToMentions, removeFromMentions } from 'soapbox/actions/compose';
-import Avatar from 'soapbox/components/avatar';
-import DisplayName from 'soapbox/components/display-name';
+import AccountComponent from 'soapbox/components/account';
import IconButton from 'soapbox/components/icon-button';
+import { HStack } from 'soapbox/components/ui';
import { useAppDispatch, useAppSelector, useCompose } from 'soapbox/hooks';
import { makeGetAccount } from 'soapbox/selectors';
@@ -44,24 +44,18 @@ const Account: React.FC = ({ composeId, accountId, author }) => {
let button;
if (added) {
- button = ;
+ button = ;
} else {
- button = ;
+ button = ;
}
return (
-
-
-
-
-
- {!author && button}
-
+
+
-
+ {!author && button}
+
);
};
diff --git a/app/soapbox/features/settings/index.tsx b/app/soapbox/features/settings/index.tsx
index b8a7a33ec..946450f61 100644
--- a/app/soapbox/features/settings/index.tsx
+++ b/app/soapbox/features/settings/index.tsx
@@ -86,9 +86,11 @@ const Settings = () => {
- {isMfaEnabled ?
- intl.formatMessage(messages.mfaEnabled) :
- intl.formatMessage(messages.mfaDisabled)}
+
+ {isMfaEnabled ?
+ intl.formatMessage(messages.mfaEnabled) :
+ intl.formatMessage(messages.mfaDisabled)}
+
>
)}
diff --git a/app/soapbox/features/ui/components/modals/actions-modal.tsx b/app/soapbox/features/ui/components/modals/actions-modal.tsx
index 7648069fa..63a731d2c 100644
--- a/app/soapbox/features/ui/components/modals/actions-modal.tsx
+++ b/app/soapbox/features/ui/components/modals/actions-modal.tsx
@@ -5,7 +5,7 @@ import { spring } from 'react-motion';
import Icon from 'soapbox/components/icon';
import StatusContent from 'soapbox/components/status-content';
-import { Stack } from 'soapbox/components/ui';
+import { HStack, Stack } from 'soapbox/components/ui';
import AccountContainer from 'soapbox/containers/account-container';
import Motion from '../../util/optional-motion';
@@ -29,23 +29,24 @@ const ActionsModal: React.FC
= ({ status, actions, onClick, onClo
const { icon = null, text, meta = null, active = false, href = '#', isLogout, destructive } = action;
const Comp = href === '#' ? 'button' : 'a';
- const compProps = href === '#' ? { onClick: onClick } : { href: href };
+ const compProps = href === '#' ? { onClick: onClick } : { href: href, rel: 'noopener' };
return (
-
{icon && }
-
+
);
};
diff --git a/app/soapbox/features/ui/components/modals/report-modal/steps/reason-step.tsx b/app/soapbox/features/ui/components/modals/report-modal/steps/reason-step.tsx
index aa9c4a1bd..871ade6c4 100644
--- a/app/soapbox/features/ui/components/modals/report-modal/steps/reason-step.tsx
+++ b/app/soapbox/features/ui/components/modals/report-modal/steps/reason-step.tsx
@@ -108,7 +108,7 @@ const ReasonStep = (_props: IReasonStep) => {
data-testid={`rule-${rule.id}`}
onClick={() => dispatch(changeReportRule(rule.id))}
className={classNames({
- 'relative border border-solid border-gray-200 dark:border-gray-800 hover:bg-gray-100 dark:hover:bg-primary-800/30 text-left w-full p-4 flex justify-between items-center cursor-pointer': true,
+ 'relative border border-solid border-gray-200 dark:border-gray-800 hover:bg-gray-100 dark:hover:bg-primary-800/30 text-start w-full p-4 flex justify-between items-center cursor-pointer': true,
'rounded-tl-lg rounded-tr-lg': idx === 0,
'rounded-bl-lg rounded-br-lg': idx === rules.length - 1,
'bg-gray-200 hover:bg-gray-200 dark:bg-primary-800/50': isSelected,
diff --git a/app/soapbox/features/ui/components/navbar.tsx b/app/soapbox/features/ui/components/navbar.tsx
index 1df4df05a..82c2e4bc6 100644
--- a/app/soapbox/features/ui/components/navbar.tsx
+++ b/app/soapbox/features/ui/components/navbar.tsx
@@ -8,7 +8,7 @@ import { logIn, verifyCredentials } from 'soapbox/actions/auth';
import { fetchInstance } from 'soapbox/actions/instance';
import { openSidebar } from 'soapbox/actions/sidebar';
import SiteLogo from 'soapbox/components/site-logo';
-import { Avatar, Button, Form, IconButton, Input, Tooltip } from 'soapbox/components/ui';
+import { Avatar, Button, Form, HStack, IconButton, Input, Tooltip } from 'soapbox/components/ui';
import Search from 'soapbox/features/compose/components/search';
import { useOwnAccount, useSoapboxConfig } from 'soapbox/hooks';
@@ -99,7 +99,7 @@ const Navbar = () => {
)}
-
+
{account ? (
@@ -108,7 +108,7 @@ const Navbar = () => {
) : (
<>
-
>
)}
-
+