feat(guild): require opt-in for emoji and sticker cloning (#2712)

This commit is contained in:
Hampus authored and GitHub committed 2026-09-12 00:33:23 +02:00
1 parent 7b15e5be0f
commit 3affd295e8
63 files changed
+4189 -1752

No files matched your search

@@ -39,7 +39,10 @@ import {
HardwareAccelerationControl,
NativeTitleBarControl,
} from '@app/features/user/components/modals/tabs/advanced_settings_tab/AdvancedDesktopControls';
import {UnreadBadgeCustomizationControl} from '@app/features/user/components/modals/tabs/advanced_settings_tab/AdvancedExperimentalControls';
import {
ExpressionCloneShortcutsControl,
UnreadBadgeCustomizationControl,
} from '@app/features/user/components/modals/tabs/advanced_settings_tab/AdvancedExperimentalControls';
import {
OpenH264Control,
ScreenShareAv1OptInControl,
@@ -92,6 +95,7 @@ export const DIRECT_CONTROL_ITEM_IDS = new Set([
'voice-video-screen-share-preview-behavior',
'voice-video-screen-share-encoder-controls',
'advanced-unread-badge-customization',
'advanced-expression-clone-shortcuts',
'client-developer-mode',
'accessibility-stay-interactive-unfocused',
'advanced-native-title-bar',
@@ -129,6 +133,7 @@ export const COMPACT_SWITCH_CONTROL_ITEM_IDS = new Set([
'voice-video-screen-share-av1-opt-in',
'voice-video-screen-share-hevc-opt-in',
'advanced-unread-badge-customization',
'advanced-expression-clone-shortcuts',
'client-developer-mode',
'accessibility-stay-interactive-unfocused',
'advanced-native-title-bar',
@@ -305,6 +310,10 @@ export const AdvancedSettingControl = observer(({item}: {item: SearchableSetting
return (
<UnreadBadgeCustomizationControl data-flx="user.advanced-setting-direct-controls.advanced-setting-control.unread-badge-customization-control" />
);
case 'advanced-expression-clone-shortcuts':
return (
<ExpressionCloneShortcutsControl data-flx="user.advanced-setting-direct-controls.advanced-setting-control.expression-clone-shortcuts-control" />
);
case 'client-developer-mode':
return (
<DeveloperModeControl data-flx="user.advanced-setting-direct-controls.advanced-setting-control.developer-mode-control" />
@@ -23,3 +23,21 @@ export const UnreadBadgeCustomizationControl = observer(() => {
/>
);
});
const ENABLE_EXPRESSION_CLONE_SHORTCUTS_DESCRIPTOR = msg({
message: 'Enable emoji and sticker cloning shortcuts',
comment: 'Short label for the experimental advanced setting.',
});
export const ExpressionCloneShortcutsControl = observer(() => {
const {i18n} = useLingui();
return (
<Switch
ariaLabel={i18n._(ENABLE_EXPRESSION_CLONE_SHORTCUTS_DESCRIPTOR)}
value={AdvancedSettings.expressionCloneShortcutsEnabled}
onChange={AdvancedSettings.setExpressionCloneShortcutsEnabled}
compact
data-flx="user.advanced-settings-tab.switch.expression-clone-shortcuts"
/>
);
});