Skip to content

Commit ec79613

Browse files
committed
Add setting to default to the 'Base Item' preset on magic items
1 parent acc7653 commit ec79613

7 files changed

Lines changed: 41 additions & 9 deletions

File tree

renderer/public/data/en/app_i18n.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@
420420
"show_suggest_warning_warn": "Show alert",
421421
"show_suggest_warning_help": "Show alert and help",
422422
"default_all_selected": "Default all filters to enabled",
423+
"default_base_item_on_magic": "Default to \"Base item\" filter for magic items",
423424
"use_tooltip_hover": "Show item when hovering over price",
424425
"use_tooltip_keybind": "SHIFT + hover",
425426
"use_tooltip_always": "hover",

renderer/src/web/Config.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ export interface Config {
156156
}
157157

158158
export const defaultConfig = (): Config => ({
159-
configVersion: 34,
159+
configVersion: 35,
160160
overlayKey: "Shift + Space",
161161
overlayBackground: "rgba(129, 139, 149, 0.15)",
162162
overlayBackgroundClose: true,
@@ -669,6 +669,16 @@ function upgradeConfig(_config: Config): Config {
669669

670670
config.configVersion = 34;
671671
}
672+
673+
if (config.configVersion < 35) {
674+
// NOTE: v0.15.9 || poe0.5.4b
675+
const priceCheck = config.widgets.find(
676+
(w) => w.wmType === "price-check",
677+
) as widget.PriceCheckWidget;
678+
priceCheck.defaultBaseItemOnMagic = false;
679+
680+
config.configVersion = 35;
681+
}
672682
/* eslint-enable */
673683

674684
return config as unknown as Config;

renderer/src/web/overlay/widgets.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export interface PriceCheckWidget extends Widget {
5252
builtinBrowser: boolean;
5353
rememberCurrency: boolean;
5454
defaultAllSelected: boolean;
55+
defaultBaseItemOnMagic: boolean;
5556
itemHoverTooltip: "off" | "keybind" | "always";
5657
autoFillEmptyRuneSockets: "Iron Rune" | false;
5758
alwaysShowTier: boolean;

renderer/src/web/price-check/CheckedItem.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ export default defineComponent({
181181
? prevListingType
182182
: undefined,
183183
defaultAllSelected: widget.value.defaultAllSelected,
184+
defaultBaseItemOnMagic: widget.value.defaultBaseItemOnMagic,
184185
autoFillEmptyAugmentSockets: widget.value.autoFillEmptyRuneSockets,
185186
});
186187

renderer/src/web/price-check/PriceCheckWindow.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ export default defineComponent({
238238
rememberCurrency: false,
239239
// New Settings EE2
240240
defaultAllSelected: false,
241+
defaultBaseItemOnMagic: false,
241242
itemHoverTooltip: "keybind",
242243
autoFillEmptyRuneSockets: false,
243244
alwaysShowTier: false,

renderer/src/web/price-check/filters/create-presets.ts

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,18 @@ export function createPresets(
1818
league: string;
1919
currency: string | undefined;
2020
listingType:
21-
| "securable"
22-
| "any"
23-
| "online"
24-
| "available"
25-
| "onlineleague"
26-
| undefined;
21+
| "securable"
22+
| "any"
23+
| "online"
24+
| "available"
25+
| "onlineleague"
26+
| undefined;
2727
collapseListings: "app" | "api";
2828
activateStockFilter: boolean;
2929
searchStatRange: number;
3030
useEn: boolean;
3131
defaultAllSelected: boolean;
32+
defaultBaseItemOnMagic: boolean;
3233
autoFillEmptyAugmentSockets: PriceCheckWidget["autoFillEmptyRuneSockets"];
3334
},
3435
): { presets: FilterPreset[]; active: string } {
@@ -84,6 +85,9 @@ export function createPresets(
8485
stats: initUiModFilters(item, opts),
8586
};
8687

88+
const shouldDefaultBaseItemOnMagic =
89+
opts.defaultBaseItemOnMagic && item.rarity === ItemRarity.Magic;
90+
8791
// Apply augments if we should
8892
// if (
8993
// (item.rarity === ItemRarity.Magic || item.rarity === ItemRarity.Rare) &&
@@ -99,7 +103,10 @@ export function createPresets(
99103
// );
100104
// }
101105

102-
if (likelyFinishedItem(item) || !hasCraftingValue(item)) {
106+
if (
107+
(likelyFinishedItem(item) || !hasCraftingValue(item)) &&
108+
!shouldDefaultBaseItemOnMagic
109+
) {
103110
return { active: pseudoPreset.id, presets: [pseudoPreset] };
104111
}
105112

@@ -109,8 +116,12 @@ export function createPresets(
109116
stats: createExactStatFilters(item, item.statsByType, opts),
110117
};
111118

119+
const activePreset = shouldDefaultBaseItemOnMagic
120+
? baseItemPreset.id
121+
: pseudoPreset.id;
122+
112123
return {
113-
active: pseudoPreset.id,
124+
active: activePreset,
114125
presets: [pseudoPreset, baseItemPreset],
115126
};
116127
}

renderer/src/web/price-check/settings-price-check.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,9 @@
181181
<ui-checkbox class="mb-4" v-model="defaultAllSelected">{{
182182
t(":default_all_selected")
183183
}}</ui-checkbox>
184+
<ui-checkbox class="mb-4" v-model="defaultBaseItemOnMagic">{{
185+
t(":default_base_item_on_magic")
186+
}}</ui-checkbox>
184187
<ui-checkbox class="mb-4" v-model="alwaysShowTier">{{
185188
t(":always_show_tier")
186189
}}</ui-checkbox>
@@ -369,6 +372,10 @@ export default defineComponent({
369372
() => configWidget.value,
370373
"defaultAllSelected",
371374
),
375+
defaultBaseItemOnMagic: configModelValue(
376+
() => configWidget.value,
377+
"defaultBaseItemOnMagic",
378+
),
372379
leagues,
373380
availableCoreCurrencies,
374381
tooltipHover: configModelValue(

0 commit comments

Comments
 (0)