diff --git a/src/app.css b/src/app.css
index ee127f6a..7834b5e2 100644
--- a/src/app.css
+++ b/src/app.css
@@ -1577,7 +1577,7 @@ body > .szh-menu-container {
position: fixed !important;
z-index: 10;
}
-.szh-menu-container:has(.szh-menu--state-open) {
+.szh-menu-container:not(:empty) {
inset: 0;
inset: env(safe-area-inset-top) env(safe-area-inset-right)
env(safe-area-inset-bottom) env(safe-area-inset-left);
diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx
index f3b2ecaa..142bc998 100644
--- a/src/components/account-info.jsx
+++ b/src/components/account-info.jsx
@@ -29,6 +29,7 @@ import Icon from './icon';
import Link from './link';
import ListAddEdit from './list-add-edit';
import Loader from './loader';
+import Menu2 from './menu2';
import MenuConfirm from './menu-confirm';
import Modal from './modal';
import TranslationBlock from './translation-block';
@@ -906,7 +907,6 @@ function RelatedActions({
}, [info, isSelf]);
const loading = relationshipUIState === 'loading';
- const menuInstanceRef = useRef(null);
const [showTranslatedBio, setShowTranslatedBio] = useState(false);
const [showAddRemoveLists, setShowAddRemoveLists] = useState(false);
@@ -947,8 +947,7 @@ function RelatedActions({
{privateNote}
)}
-
+
{!relationship && relationshipUIState === 'loading' && (
)}
diff --git a/src/components/compose.jsx b/src/components/compose.jsx
index ed06d3e2..bb6542c6 100644
--- a/src/components/compose.jsx
+++ b/src/components/compose.jsx
@@ -107,20 +107,20 @@ function countableText(inputText) {
// https://github.com/mastodon/mastodon/blob/c03bd2a238741a012aa4b98dc4902d6cf948ab63/app/models/account.rb#L69
const USERNAME_RE = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i;
const MENTION_RE = new RegExp(
- `(?$3') // URLs
- .replace(MENTION_RE, '$&') // Mentions
- .replace(HASHTAG_RE, '#$1') // Hashtags
+ .replace(MENTION_RE, '$1$2') // Mentions
+ .replace(HASHTAG_RE, '$1$2') // Hashtags
.replace(
SCAN_RE,
- '$&',
+ '$1$2',
); // Emoji shortcodes
return html + leftoverHTML;
@@ -1474,8 +1474,10 @@ const Textarea = forwardRef((props, ref) => {
if (!textarea) return;
const resizeObserver = new ResizeObserver(() => {
// Get height of textarea, set height to textExpander
- const { height } = textarea.getBoundingClientRect();
- textExpanderRef.current.style.height = height + 'px';
+ if (textExpanderRef.current) {
+ const { height } = textarea.getBoundingClientRect();
+ textExpanderRef.current.style.height = height + 'px';
+ }
});
resizeObserver.observe(textarea);
}, []);
diff --git a/src/components/media-alt-modal.jsx b/src/components/media-alt-modal.jsx
index 58908013..5c99d925 100644
--- a/src/components/media-alt-modal.jsx
+++ b/src/components/media-alt-modal.jsx
@@ -7,6 +7,7 @@ import localeMatch from '../utils/locale-match';
import states from '../utils/states';
import Icon from './icon';
+import Menu2 from './menu2';
import TranslationBlock from './translation-block';
export default function MediaAltModal({ alt, lang, onClose }) {
@@ -33,7 +34,7 @@ export default function MediaAltModal({ alt, lang, onClose }) {
diff --git a/src/components/media-modal.jsx b/src/components/media-modal.jsx
index 46ea7661..3b80630b 100644
--- a/src/components/media-modal.jsx
+++ b/src/components/media-modal.jsx
@@ -15,6 +15,7 @@ import states from '../utils/states';
import Icon from './icon';
import Link from './link';
import Media from './media';
+import Menu2 from './menu2';
import MenuLink from './menu-link';
function MediaModal({
@@ -259,11 +260,10 @@ function MediaModal({
)}
-
Open original media
- {' '}
+ {' '}
) : (
-
+
)}
);
diff --git a/src/components/status.jsx b/src/components/status.jsx
index 9e0f2dfb..202ba726 100644
--- a/src/components/status.jsx
+++ b/src/components/status.jsx
@@ -28,6 +28,7 @@ import { snapshot } from 'valtio/vanilla';
import AccountBlock from '../components/account-block';
import EmojiText from '../components/emoji-text';
import Loader from '../components/loader';
+import Menu2 from '../components/menu2';
import MenuConfirm from '../components/menu-confirm';
import Modal from '../components/modal';
import NameText from '../components/name-text';
@@ -1629,7 +1630,7 @@ function Status({
onClick={bookmarkStatus}
/>
-
+
>
)}
diff --git a/src/pages/accounts.jsx b/src/pages/accounts.jsx
index 59d43719..5d57ba21 100644
--- a/src/pages/accounts.jsx
+++ b/src/pages/accounts.jsx
@@ -7,6 +7,7 @@ import { useReducer } from 'preact/hooks';
import Avatar from '../components/avatar';
import Icon from '../components/icon';
import Link from '../components/link';
+import Menu2 from '../components/menu2';
import MenuConfirm from '../components/menu-confirm';
import NameText from '../components/name-text';
import { api } from '../utils/api';
@@ -92,7 +93,7 @@ function Accounts({ onClose }) {
Default{' '}
>
)}
-
Log out…
-
+
);
diff --git a/src/pages/status.jsx b/src/pages/status.jsx
index e8de6597..22ffdb83 100644
--- a/src/pages/status.jsx
+++ b/src/pages/status.jsx
@@ -23,6 +23,7 @@ import Icon from '../components/icon';
import Link from '../components/link';
import Loader from '../components/loader';
import MediaModal from '../components/media-modal';
+import Menu2 from '../components/menu2';
import NameText from '../components/name-text';
import RelativeTime from '../components/relative-time';
import Status from '../components/status';
@@ -1034,7 +1035,7 @@ function StatusThread({ id, closeLink = '/', instance: propInstance }) {
>
-
+