mirror of
https://github.com/zoriya/flood.git
synced 2026-06-02 02:56:05 +00:00
feature: allow to prefer single tag selection
This commit is contained in:
@@ -7,6 +7,7 @@ import type {TorrentProperties} from '@shared/types/Torrent';
|
||||
|
||||
import {ContextMenu, FormElementAddon, FormRowItem, Portal, SelectItem, Textbox} from '../../../ui';
|
||||
import Chevron from '../../../ui/icons/Chevron';
|
||||
import SettingStore from '../../../stores/SettingStore';
|
||||
import TorrentFilterStore from '../../../stores/TorrentFilterStore';
|
||||
|
||||
interface TagSelectProps {
|
||||
@@ -72,7 +73,11 @@ const TagSelect: FC<TagSelectProps> = ({defaultValue, placeholder, id, label}: T
|
||||
<Portal>
|
||||
<ContextMenu
|
||||
isIn={isOpen}
|
||||
onClick={(event) => event.nativeEvent.stopImmediatePropagation()}
|
||||
onClick={(event) => {
|
||||
if (SettingStore.floodSettings.UITagSelectorMode !== 'single') {
|
||||
event.nativeEvent.stopImmediatePropagation();
|
||||
}
|
||||
}}
|
||||
overlayProps={{isInteractive: false}}
|
||||
ref={menuRef}
|
||||
triggerRef={textboxRef}>
|
||||
|
||||
@@ -16,6 +16,7 @@ import type {Language} from '../../../constants/Languages';
|
||||
class UITab extends SettingsTab {
|
||||
torrentListViewSize = SettingStore.floodSettings.torrentListViewSize;
|
||||
selectedLanguage = SettingStore.floodSettings.language;
|
||||
UITagSelectorMode = SettingStore.floodSettings.UITagSelectorMode;
|
||||
|
||||
getLanguageSelectOptions() {
|
||||
return Object.keys(Languages).map((languageID) => {
|
||||
@@ -42,8 +43,10 @@ class UITab extends SettingsTab {
|
||||
|
||||
if (inputElement.type === 'radio') {
|
||||
this.torrentListViewSize = formData['ui-torrent-size'] as FloodSettings['torrentListViewSize'];
|
||||
this.UITagSelectorMode = formData['ui-tag-selector-mode'] as FloodSettings['UITagSelectorMode'];
|
||||
this.props.onSettingsChange({
|
||||
torrentListViewSize: this.torrentListViewSize,
|
||||
UITagSelectorMode: this.UITagSelectorMode,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -72,6 +75,17 @@ class UITab extends SettingsTab {
|
||||
{this.getLanguageSelectOptions()}
|
||||
</Select>
|
||||
</FormRow>
|
||||
<ModalFormSectionHeader>
|
||||
<FormattedMessage id="settings.ui.tag.selector.mode" />
|
||||
</ModalFormSectionHeader>
|
||||
<FormRow>
|
||||
<Radio checked={this.UITagSelectorMode === 'single'} groupID="ui-tag-selector-mode" id="single" width="auto">
|
||||
<FormattedMessage id="settings.ui.tag.selector.mode.single" />
|
||||
</Radio>
|
||||
<Radio checked={this.UITagSelectorMode === 'multi'} groupID="ui-tag-selector-mode" id="multi" width="auto">
|
||||
<FormattedMessage id="settings.ui.tag.selector.mode.multi" />
|
||||
</Radio>
|
||||
</FormRow>
|
||||
<ModalFormSectionHeader>
|
||||
<FormattedMessage id="settings.ui.torrent.list" />
|
||||
</ModalFormSectionHeader>
|
||||
|
||||
@@ -1495,6 +1495,24 @@
|
||||
"value": "Locale"
|
||||
}
|
||||
],
|
||||
"settings.ui.tag.selector.mode": [
|
||||
{
|
||||
"type": 0,
|
||||
"value": "Tag Selector Preference"
|
||||
}
|
||||
],
|
||||
"settings.ui.tag.selector.mode.multi": [
|
||||
{
|
||||
"type": 0,
|
||||
"value": "Multi Selection"
|
||||
}
|
||||
],
|
||||
"settings.ui.tag.selector.mode.single": [
|
||||
{
|
||||
"type": 0,
|
||||
"value": "Single Selection"
|
||||
}
|
||||
],
|
||||
"settings.ui.torrent.context.menu.items.show": [
|
||||
{
|
||||
"type": 0,
|
||||
|
||||
@@ -195,6 +195,9 @@
|
||||
"settings.tabs.about": "About",
|
||||
"settings.ui.locale": "Locale",
|
||||
"settings.ui.language": "Language",
|
||||
"settings.ui.tag.selector.mode": "Tag Selector Preference",
|
||||
"settings.ui.tag.selector.mode.single": "Single Selection",
|
||||
"settings.ui.tag.selector.mode.multi": "Multi Selection",
|
||||
"settings.ui.torrent.list": "Torrent List Display",
|
||||
"settings.ui.torrent.size": "Torrent Size",
|
||||
"settings.ui.torrent.size.expanded": "Expanded View",
|
||||
|
||||
@@ -33,6 +33,9 @@ export interface FloodSettings {
|
||||
// Last used download destination
|
||||
torrentDestination?: string;
|
||||
|
||||
// Tag selector preference
|
||||
UITagSelectorMode?: 'single' | 'multi';
|
||||
|
||||
// Last used "Add Torrents" tab
|
||||
UITorrentsAddTab?: 'by-url' | 'by-file' | 'by-creation';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user