(
+export const MemorialNote: React.FC = () => (
);
-
-export default MemorialNote;
diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx b/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx
deleted file mode 100644
index 2c996ff769..0000000000
--- a/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import { FormattedMessage } from 'react-intl';
-
-import { Link } from 'react-router-dom';
-
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-
-import { AvatarOverlay } from '../../../components/avatar_overlay';
-import { DisplayName } from '../../../components/display_name';
-
-export default class MovedNote extends ImmutablePureComponent {
-
- static propTypes = {
- from: ImmutablePropTypes.map.isRequired,
- to: ImmutablePropTypes.map.isRequired,
- };
-
- render () {
- const { from, to } = this.props;
-
- return (
-
- );
- }
-
-}
diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx b/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx
new file mode 100644
index 0000000000..51dbb93c8b
--- /dev/null
+++ b/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx
@@ -0,0 +1,53 @@
+import { FormattedMessage } from 'react-intl';
+
+import { Link } from 'react-router-dom';
+
+import { AvatarOverlay } from 'mastodon/components/avatar_overlay';
+import { DisplayName } from 'mastodon/components/display_name';
+import { useAppSelector } from 'mastodon/store';
+
+export const MovedNote: React.FC<{
+ accountId: string;
+ targetAccountId: string;
+}> = ({ accountId, targetAccountId }) => {
+ const from = useAppSelector((state) => state.accounts.get(accountId));
+ const to = useAppSelector((state) => state.accounts.get(targetAccountId));
+
+ return (
+
+
+
+
+
+ ),
+ }}
+ />
+
+
+
+
+ );
+};