refactor: split discord & picture settings into their own components

This commit is contained in:
pa
2025-09-23 02:58:17 +09:00
committed by Natsumi
parent 366b2f6c11
commit cd8b28be98
3 changed files with 285 additions and 258 deletions

View File

@@ -1172,218 +1172,12 @@
<!--//- Discord Presence Tab--> <!--//- Discord Presence Tab-->
<el-tab-pane lazy :label="t('view.settings.category.discord_presence')"> <el-tab-pane lazy :label="t('view.settings.category.discord_presence')">
<div class="options-container" style="margin-top: 0"> <DiscordSettings />
<span class="header">{{ t('view.settings.discord_presence.discord_presence.header') }}</span>
<div class="options-container-item">
<span>{{ t('view.settings.discord_presence.discord_presence.description') }}</span>
</div>
<div class="options-container-item" @click="showVRChatConfig" style="cursor: pointer">
<span>{{ t('view.settings.discord_presence.discord_presence.enable_tooltip') }}</span>
</div>
<br />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.enable')"
:value="discordActive"
@change="
setDiscordActive();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.world_integration')"
:value="discordWorldIntegration"
:disabled="!discordActive"
@change="
setDiscordWorldIntegration();
saveDiscordOption();
"
:tooltip="t('view.settings.discord_presence.discord_presence.world_integration_tooltip')" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.instance_type_player_count')"
:value="discordInstance"
:disabled="!discordActive"
@change="
setDiscordInstance();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.show_current_platform')"
:value="discordShowPlatform"
:disabled="!discordActive || !discordInstance"
@change="
setDiscordShowPlatform();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.show_details_in_private')"
:value="!discordHideInvite"
:disabled="!discordActive"
@change="
setDiscordHideInvite();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.join_button')"
:value="discordJoinButton"
:disabled="!discordActive"
@change="
setDiscordJoinButton();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.show_images')"
:value="!discordHideImage"
:disabled="!discordActive"
@change="
setDiscordHideImage();
saveDiscordOption();
" />
<simple-switch
:label="
t('view.settings.discord_presence.discord_presence.display_world_name_as_discord_status')
"
:value="discordWorldNameAsDiscordStatus"
:disabled="!discordActive"
@change="
setDiscordWorldNameAsDiscordStatus();
saveDiscordOption();
" />
</div>
</el-tab-pane> </el-tab-pane>
<!--//- "Pictures" Tab--> <!--//- "Pictures" Tab-->
<el-tab-pane lazy :label="t('view.settings.category.pictures')"> <el-tab-pane lazy :label="t('view.settings.category.pictures')">
<!-- redirect to tools tab --> <PictureSettings />
<div class="options-container" style="margin-top: 0">
<span class="header">{{ t('view.settings.category.pictures') }}</span>
<div class="options-container-item" style="margin-top: 15px">
<el-button-group
><el-button size="small" :icon="Picture" @click="redirectToToolsTab">{{
t('view.settings.advanced.advanced.screenshot_metadata')
}}</el-button>
</el-button-group>
</div>
</div>
<!-- redirect to tools tab end -->
<div class="options-container">
<span class="header">{{ t('view.tools.pictures.pictures.open_folder') }}</span>
<div class="options-container-item" style="margin-top: 15px">
<el-button-group>
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
t('view.tools.pictures.pictures.vrc_photos')
}}</el-button>
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
t('view.tools.pictures.pictures.steam_screenshots')
}}</el-button>
</el-button-group>
</div>
</div>
<!--//- Pictures | Screenshot Helper-->
<div class="options-container">
<span class="header">{{ t('view.settings.advanced.advanced.screenshot_helper.header') }}</span>
<div class="options-container-item">
<span class="name">{{
t('view.settings.advanced.advanced.screenshot_helper.description')
}}</span>
</div>
<simple-switch
:label="t('view.settings.advanced.advanced.screenshot_helper.enable')"
:value="screenshotHelper"
@change="setScreenshotHelper()"
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.description_tooltip')"
:long-label="true" />
<simple-switch
:label="t('view.settings.advanced.advanced.screenshot_helper.modify_filename')"
:value="screenshotHelperModifyFilename"
@change="setScreenshotHelperModifyFilename()"
:disabled="!screenshotHelper"
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.modify_filename_tooltip')"
:long-label="true" />
<simple-switch
:label="t('view.settings.advanced.advanced.screenshot_helper.copy_to_clipboard')"
:value="screenshotHelperCopyToClipboard"
@change="setScreenshotHelperCopyToClipboard()"
:long-label="true" />
<el-button size="small" :icon="Delete" @click="askDeleteAllScreenshotMetadata()">{{
t('view.settings.advanced.advanced.delete_all_screenshot_metadata.button')
}}</el-button>
</div>
<div class="options-container">
<span class="header">{{ t('view.settings.pictures.pictures.auto_delete_old_prints') }}</span>
<simple-switch
:label="t('view.settings.pictures.pictures.auto_delete_prints_from_vrc')"
:value="autoDeleteOldPrints"
@change="setAutoDeleteOldPrints()"
:long-label="true" />
</div>
<!-- //- Pictures | User Generated Content -->
<div class="options-container">
<span class="header">{{ t('view.settings.advanced.advanced.user_generated_content.header') }}</span>
<br />
<div class="options-container-item" style="margin-bottom: 5px">
<span class="name" style="min-width: 300px">{{
t('view.settings.advanced.advanced.user_generated_content.description')
}}</span>
</div>
<el-button size="small" :icon="Folder" @click="openUGCFolder()">{{
t('view.settings.advanced.advanced.user_generated_content.folder')
}}</el-button>
<el-button size="small" :icon="FolderOpened" @click="openUGCFolderSelector()">{{
t('view.settings.advanced.advanced.user_generated_content.set_folder')
}}</el-button>
<el-button size="small" :icon="Delete" @click="resetUGCFolder()" v-if="ugcFolderPath">{{
t('view.settings.advanced.advanced.user_generated_content.reset_override')
}}</el-button>
<br />
<br />
<br />
<span class="sub-header">{{
t('view.settings.advanced.advanced.save_instance_prints_to_file.header')
}}</span>
<el-tooltip
placement="top"
style="margin-left: 5px"
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.description')"
:value="saveInstancePrints"
@change="setSaveInstancePrints()"
:long-label="true" />
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.crop')"
:value="cropInstancePrints"
@change="setCropInstancePrints()"
:long-label="true" />
<br />
<span class="sub-header">{{
t('view.settings.advanced.advanced.save_instance_stickers_to_file.header')
}}</span>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_stickers_to_file.description')"
:value="saveInstanceStickers"
@change="setSaveInstanceStickers()"
:long-label="true" />
<br />
<span class="sub-header"
>{{ t('view.settings.advanced.advanced.save_instance_emoji_to_file.header') }}
</span>
<el-tooltip
placement="top"
style="margin-left: 5px"
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_emoji_to_file.description')"
:value="saveInstanceEmoji"
@change="setSaveInstanceEmoji()"
:long-label="true" />
</div>
</el-tab-pane> </el-tab-pane>
<!--//- "Advanced" Tab--> <!--//- "Advanced" Tab-->
@@ -1597,9 +1391,7 @@
> >
</div> </div>
</div> </div>
<template v-if="photonLoggingEnabled">
<Photon-Settings />
</template>
<!--//- Advanced | VRCX Instance Cache/Debug--> <!--//- Advanced | VRCX Instance Cache/Debug-->
<div class="options-container"> <div class="options-container">
<span class="header">{{ t('view.settings.advanced.advanced.cache_debug.header') }}</span> <span class="header">{{ t('view.settings.advanced.advanced.cache_debug.header') }}</span>
@@ -1753,6 +1545,9 @@
<FeedFiltersDialog v-model:feedFiltersDialogMode="feedFiltersDialogMode" /> <FeedFiltersDialog v-model:feedFiltersDialogMode="feedFiltersDialogMode" />
<ChangelogDialog /> <ChangelogDialog />
<AvatarProviderDialog v-model:isAvatarProviderDialogVisible="isAvatarProviderDialogVisible" /> <AvatarProviderDialog v-model:isAvatarProviderDialogVisible="isAvatarProviderDialogVisible" />
<template v-if="photonLoggingEnabled">
<PhotonSettings />
</template>
</div> </div>
</template> </template>
@@ -1764,8 +1559,6 @@
ArrowRight, ArrowRight,
Upload, Upload,
Folder, Folder,
Delete,
FolderOpened,
User, User,
Tickets, Tickets,
Refresh, Refresh,
@@ -1774,7 +1567,6 @@
Document, Document,
Connection, Connection,
ChatSquare, ChatSquare,
Picture,
CaretRight, CaretRight,
DeleteFilled, DeleteFilled,
Timer, Timer,
@@ -1797,7 +1589,6 @@
useVRCXUpdaterStore, useVRCXUpdaterStore,
useNotificationsSettingsStore, useNotificationsSettingsStore,
useWristOverlaySettingsStore, useWristOverlaySettingsStore,
useDiscordPresenceSettingsStore,
useAdvancedSettingsStore, useAdvancedSettingsStore,
useFriendStore, useFriendStore,
useAvatarProviderStore, useAvatarProviderStore,
@@ -1825,6 +1616,8 @@
import { THEME_CONFIG } from '../../shared/constants'; import { THEME_CONFIG } from '../../shared/constants';
import SimpleSwitch from './components/SimpleSwitch.vue'; import SimpleSwitch from './components/SimpleSwitch.vue';
import DiscordSettings from './components/DiscordSettings.vue';
import PictureSettings from './components/PictureSettings.vue';
const OpenSourceSoftwareNoticeDialog = defineAsyncComponent( const OpenSourceSoftwareNoticeDialog = defineAsyncComponent(
() => import('./dialogs/OpenSourceSoftwareNoticeDialog.vue') () => import('./dialogs/OpenSourceSoftwareNoticeDialog.vue')
@@ -1848,28 +1641,7 @@
const { cachedGroups } = useGroupStore(); const { cachedGroups } = useGroupStore();
const { cachedAvatars, cachedAvatarNames } = useAvatarStore(); const { cachedAvatars, cachedAvatarNames } = useAvatarStore();
const { showConsole } = useVrcxStore(); const { showConsole } = useVrcxStore();
const {
discordActive,
discordInstance,
discordHideInvite,
discordJoinButton,
discordHideImage,
discordShowPlatform,
discordWorldIntegration,
discordWorldNameAsDiscordStatus
} = storeToRefs(useDiscordPresenceSettingsStore());
const { disableGameLogDialog } = useGameLogStore(); const { disableGameLogDialog } = useGameLogStore();
const {
setDiscordActive,
setDiscordInstance,
setDiscordHideInvite,
setDiscordJoinButton,
setDiscordHideImage,
setDiscordShowPlatform,
setDiscordWorldIntegration,
setDiscordWorldNameAsDiscordStatus,
saveDiscordOption
} = useDiscordPresenceSettingsStore();
const { photonLoggingEnabled } = storeToRefs(usePhotonStore()); const { photonLoggingEnabled } = storeToRefs(usePhotonStore());
const { saveSidebarSortOrder } = useFriendStore(); const { saveSidebarSortOrder } = useFriendStore();
const { cachedWorlds } = useWorldStore(); const { cachedWorlds } = useWorldStore();
@@ -2032,26 +1804,17 @@
vrcQuitFix, vrcQuitFix,
autoSweepVRChatCache, autoSweepVRChatCache,
selfInviteOverride, selfInviteOverride,
saveInstancePrints,
cropInstancePrints,
saveInstanceStickers,
avatarRemoteDatabase, avatarRemoteDatabase,
enableAppLauncher, enableAppLauncher,
enableAppLauncherAutoClose, enableAppLauncherAutoClose,
enableAppLauncherRunProcessOnce, enableAppLauncherRunProcessOnce,
screenshotHelper,
screenshotHelperModifyFilename,
screenshotHelperCopyToClipboard,
youTubeApi, youTubeApi,
progressPie, progressPie,
progressPieFilter, progressPieFilter,
showConfirmationOnSwitchAvatar, showConfirmationOnSwitchAvatar,
gameLogDisabled, gameLogDisabled,
sqliteTableSizes, sqliteTableSizes,
ugcFolderPath,
notificationOpacity, notificationOpacity,
autoDeleteOldPrints,
saveInstanceEmoji,
sentryErrorReporting sentryErrorReporting
} = storeToRefs(advancedSettingsStore); } = storeToRefs(advancedSettingsStore);
@@ -2060,28 +1823,16 @@
setVrcQuitFix, setVrcQuitFix,
setAutoSweepVRChatCache, setAutoSweepVRChatCache,
setSelfInviteOverride, setSelfInviteOverride,
setSaveInstancePrints,
setCropInstancePrints,
setSaveInstanceStickers,
setAvatarRemoteDatabase, setAvatarRemoteDatabase,
setEnableAppLauncher, setEnableAppLauncher,
setEnableAppLauncherAutoClose, setEnableAppLauncherAutoClose,
setEnableAppLauncherRunProcessOnce, setEnableAppLauncherRunProcessOnce,
setScreenshotHelper,
setScreenshotHelperModifyFilename,
setScreenshotHelperCopyToClipboard,
setShowConfirmationOnSwitchAvatar, setShowConfirmationOnSwitchAvatar,
getSqliteTableSizes, getSqliteTableSizes,
setNotificationOpacity, setNotificationOpacity,
setAutoDeleteOldPrints,
resetUGCFolder,
openUGCFolder,
openUGCFolderSelector,
showVRChatConfig, showVRChatConfig,
promptAutoClearVRCXCacheFrequency, promptAutoClearVRCXCacheFrequency,
setSaveInstanceEmoji, setSentryErrorReporting
setSentryErrorReporting,
askDeleteAllScreenshotMetadata
} = advancedSettingsStore; } = advancedSettingsStore;
const instanceTypes = ref([ const instanceTypes = ref([

View File

@@ -0,0 +1,110 @@
<template>
<div class="options-container" style="margin-top: 0">
<span class="header">{{ t('view.settings.discord_presence.discord_presence.header') }}</span>
<div class="options-container-item">
<span>{{ t('view.settings.discord_presence.discord_presence.description') }}</span>
</div>
<div class="options-container-item" @click="showVRChatConfig" style="cursor: pointer">
<span>{{ t('view.settings.discord_presence.discord_presence.enable_tooltip') }}</span>
</div>
<br />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.enable')"
:value="discordActive"
@change="
setDiscordActive();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.world_integration')"
:value="discordWorldIntegration"
:disabled="!discordActive"
@change="
setDiscordWorldIntegration();
saveDiscordOption();
"
:tooltip="t('view.settings.discord_presence.discord_presence.world_integration_tooltip')" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.instance_type_player_count')"
:value="discordInstance"
:disabled="!discordActive"
@change="
setDiscordInstance();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.show_current_platform')"
:value="discordShowPlatform"
:disabled="!discordActive || !discordInstance"
@change="
setDiscordShowPlatform();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.show_details_in_private')"
:value="!discordHideInvite"
:disabled="!discordActive"
@change="
setDiscordHideInvite();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.join_button')"
:value="discordJoinButton"
:disabled="!discordActive"
@change="
setDiscordJoinButton();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.show_images')"
:value="!discordHideImage"
:disabled="!discordActive"
@change="
setDiscordHideImage();
saveDiscordOption();
" />
<simple-switch
:label="t('view.settings.discord_presence.discord_presence.display_world_name_as_discord_status')"
:value="discordWorldNameAsDiscordStatus"
:disabled="!discordActive"
@change="
setDiscordWorldNameAsDiscordStatus();
saveDiscordOption();
" />
</div>
</template>
<script setup>
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import { useDiscordPresenceSettingsStore, useAdvancedSettingsStore } from '../../../stores';
import SimpleSwitch from './SimpleSwitch.vue';
const { t } = useI18n();
const {
setDiscordActive,
setDiscordInstance,
setDiscordHideInvite,
setDiscordJoinButton,
setDiscordHideImage,
setDiscordShowPlatform,
setDiscordWorldIntegration,
setDiscordWorldNameAsDiscordStatus,
saveDiscordOption
} = useDiscordPresenceSettingsStore();
const {
discordActive,
discordInstance,
discordHideInvite,
discordJoinButton,
discordHideImage,
discordShowPlatform,
discordWorldIntegration,
discordWorldNameAsDiscordStatus
} = storeToRefs(useDiscordPresenceSettingsStore());
const { showVRChatConfig } = useAdvancedSettingsStore();
</script>

View File

@@ -0,0 +1,166 @@
<template>
<!-- redirect to tools tab -->
<div class="options-container" style="margin-top: 0">
<span class="header">{{ t('view.settings.category.pictures') }}</span>
<div class="options-container-item" style="margin-top: 15px">
<el-button-group
><el-button size="small" :icon="Picture" @click="redirectToToolsTab">{{
t('view.settings.advanced.advanced.screenshot_metadata')
}}</el-button>
</el-button-group>
</div>
</div>
<!-- redirect to tools tab end -->
<div class="options-container">
<span class="header">{{ t('view.tools.pictures.pictures.open_folder') }}</span>
<div class="options-container-item" style="margin-top: 15px">
<el-button-group>
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
t('view.tools.pictures.pictures.vrc_photos')
}}</el-button>
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
t('view.tools.pictures.pictures.steam_screenshots')
}}</el-button>
</el-button-group>
</div>
</div>
<!--//- Pictures | Screenshot Helper-->
<div class="options-container">
<span class="header">{{ t('view.settings.advanced.advanced.screenshot_helper.header') }}</span>
<div class="options-container-item">
<span class="name">{{ t('view.settings.advanced.advanced.screenshot_helper.description') }}</span>
</div>
<simple-switch
:label="t('view.settings.advanced.advanced.screenshot_helper.enable')"
:value="screenshotHelper"
@change="setScreenshotHelper()"
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.description_tooltip')"
:long-label="true" />
<simple-switch
:label="t('view.settings.advanced.advanced.screenshot_helper.modify_filename')"
:value="screenshotHelperModifyFilename"
@change="setScreenshotHelperModifyFilename()"
:disabled="!screenshotHelper"
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.modify_filename_tooltip')"
:long-label="true" />
<simple-switch
:label="t('view.settings.advanced.advanced.screenshot_helper.copy_to_clipboard')"
:value="screenshotHelperCopyToClipboard"
@change="setScreenshotHelperCopyToClipboard()"
:long-label="true" />
<el-button size="small" :icon="Delete" @click="askDeleteAllScreenshotMetadata()">{{
t('view.settings.advanced.advanced.delete_all_screenshot_metadata.button')
}}</el-button>
</div>
<div class="options-container">
<span class="header">{{ t('view.settings.pictures.pictures.auto_delete_old_prints') }}</span>
<simple-switch
:label="t('view.settings.pictures.pictures.auto_delete_prints_from_vrc')"
:value="autoDeleteOldPrints"
@change="setAutoDeleteOldPrints()"
:long-label="true" />
</div>
<!-- //- Pictures | User Generated Content -->
<div class="options-container">
<span class="header">{{ t('view.settings.advanced.advanced.user_generated_content.header') }}</span>
<br />
<div class="options-container-item" style="margin-bottom: 5px">
<span class="name" style="min-width: 300px">{{
t('view.settings.advanced.advanced.user_generated_content.description')
}}</span>
</div>
<el-button size="small" :icon="Folder" @click="openUGCFolder()">{{
t('view.settings.advanced.advanced.user_generated_content.folder')
}}</el-button>
<el-button size="small" :icon="FolderOpened" @click="openUGCFolderSelector()">{{
t('view.settings.advanced.advanced.user_generated_content.set_folder')
}}</el-button>
<el-button size="small" :icon="Delete" @click="resetUGCFolder()" v-if="ugcFolderPath">{{
t('view.settings.advanced.advanced.user_generated_content.reset_override')
}}</el-button>
<br />
<br />
<br />
<span class="sub-header">{{ t('view.settings.advanced.advanced.save_instance_prints_to_file.header') }}</span>
<el-tooltip
placement="top"
style="margin-left: 5px"
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.description')"
:value="saveInstancePrints"
@change="setSaveInstancePrints()"
:long-label="true" />
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.crop')"
:value="cropInstancePrints"
@change="setCropInstancePrints()"
:long-label="true" />
<br />
<span class="sub-header">{{ t('view.settings.advanced.advanced.save_instance_stickers_to_file.header') }}</span>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_stickers_to_file.description')"
:value="saveInstanceStickers"
@change="setSaveInstanceStickers()"
:long-label="true" />
<br />
<span class="sub-header">{{ t('view.settings.advanced.advanced.save_instance_emoji_to_file.header') }} </span>
<el-tooltip
placement="top"
style="margin-left: 5px"
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_emoji_to_file.description')"
:value="saveInstanceEmoji"
@change="setSaveInstanceEmoji()"
:long-label="true" />
</div>
</template>
<script setup>
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import { Picture, Folder, FolderOpened, Delete, InfoFilled } from '@element-plus/icons-vue';
import { useAdvancedSettingsStore } from '../../../stores';
import { redirectToToolsTab } from '../../../shared/utils/base/ui';
import SimpleSwitch from './SimpleSwitch.vue';
const { t } = useI18n();
const advancedSettingsStore = useAdvancedSettingsStore();
const {
screenshotHelper,
screenshotHelperModifyFilename,
screenshotHelperCopyToClipboard,
autoDeleteOldPrints,
saveInstancePrints,
cropInstancePrints,
saveInstanceStickers,
saveInstanceEmoji,
ugcFolderPath
} = storeToRefs(advancedSettingsStore);
const {
setScreenshotHelper,
setScreenshotHelperModifyFilename,
setScreenshotHelperCopyToClipboard,
setAutoDeleteOldPrints,
setSaveInstancePrints,
setCropInstancePrints,
setSaveInstanceStickers,
setSaveInstanceEmoji,
askDeleteAllScreenshotMetadata,
openUGCFolder,
openUGCFolderSelector,
resetUGCFolder
} = advancedSettingsStore;
</script>