Visibility modal: Match dropdown width to button (#36054)

This commit is contained in:
diondiondion 2025-09-08 14:43:38 +02:00 committed by GitHub
parent 24fb862a65
commit 0153b49ef7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 21 additions and 2 deletions

View File

@ -11,6 +11,8 @@ import Overlay from 'react-overlays/Overlay';
import type { SelectItem } from '../dropdown_selector';
import { DropdownSelector } from '../dropdown_selector';
import { matchWidth } from './utils';
interface DropdownProps {
title: string;
disabled?: boolean;
@ -86,6 +88,7 @@ export const Dropdown: FC<
target={buttonRef.current}
popperConfig={{
strategy: 'fixed',
modifiers: [matchWidth],
}}
>
{({ props, placement }) => (

View File

@ -0,0 +1,17 @@
import type { Modifier, UsePopperState } from 'react-overlays/esm/usePopper';
export const matchWidth: Modifier<'sameWidth', UsePopperState> = {
name: 'sameWidth',
enabled: true,
phase: 'beforeWrite',
requires: ['computeStyles'],
fn: ({ state }) => {
if (state.styles.popper) {
state.styles.popper.width = `${state.rects.reference.width}px`;
}
},
effect: ({ state }) => {
const reference = state.elements.reference as HTMLElement;
state.elements.popper.style.width = `${reference.offsetWidth}px`;
},
};

View File

@ -163,7 +163,6 @@ export const VisibilityModal: FC<VisibilityModalProps> = forwardRef(
value: 'unlisted',
text: intl.formatMessage(privacyMessages.unlisted_short),
meta: intl.formatMessage(privacyMessages.unlisted_long),
extra: intl.formatMessage(privacyMessages.unlisted_extra),
icon: 'unlock',
iconComponent: QuietTimeIcon,
},

View File

@ -5500,7 +5500,6 @@ a.status-card {
border-radius: 4px;
overflow: hidden;
z-index: 2;
width: 300px;
&.top {
transform-origin: 50% 100%;
@ -5607,6 +5606,7 @@ a.status-card {
.language-dropdown {
&__dropdown {
width: 300px;
padding: 0;
.emoji-mart-search {