Add possibility for crateless options
Signed-off-by: Egor Savkin <es@m-labs.hk>
This commit is contained in:
parent
f82f9334fd
commit
729e4ea6fc
|
@ -5,7 +5,8 @@ import {SummaryPopup} from "./options/SummaryPopup";
|
||||||
|
|
||||||
export function OptionsDialogWrapper({crate_index, card_index, first, last}) {
|
export function OptionsDialogWrapper({crate_index, card_index, first, last}) {
|
||||||
const crate_id = useShopStore((state) => state.crates[crate_index].id);
|
const crate_id = useShopStore((state) => state.crates[crate_index].id);
|
||||||
const options = useShopStore((state) => state.crates[crate_index].items[card_index].options);
|
const use_options = useShopStore((state) => state.crateParams(state.crates[crate_index].crate_mode).options);
|
||||||
|
const options = useShopStore((state) => state.crates[crate_index].items[card_index][use_options]);
|
||||||
const options_data = useShopStore((state) => state.crates[crate_index].items[card_index].options_data);
|
const options_data = useShopStore((state) => state.crates[crate_index].items[card_index].options_data);
|
||||||
const card_size = useShopStore((state) => state.crates[crate_index].items[card_index].size);
|
const card_size = useShopStore((state) => state.crates[crate_index].items[card_index].size);
|
||||||
const card_id = useShopStore((state) => state.crates[crate_index].items[card_index].id);
|
const card_id = useShopStore((state) => state.crates[crate_index].items[card_index].id);
|
||||||
|
@ -53,7 +54,8 @@ export function OptionsDialogWrapper({crate_index, card_index, first, last}) {
|
||||||
|
|
||||||
export function OptionsSummaryWrapper({crate_index, card_index}) {
|
export function OptionsSummaryWrapper({crate_index, card_index}) {
|
||||||
const card_id = useShopStore((state) => state.crates[crate_index].items[card_index].id);
|
const card_id = useShopStore((state) => state.crates[crate_index].items[card_index].id);
|
||||||
const options = useShopStore((state) => state.crates[crate_index].items[card_index].options);
|
const use_options = useShopStore((state) => state.crateParams(state.crates[crate_index].crate_mode).options);
|
||||||
|
const options = useShopStore((state) => state.crates[crate_index].items[card_index][use_options]);
|
||||||
const options_data = useShopStore((state) => state.crates[crate_index].items[card_index].options_data);
|
const options_data = useShopStore((state) => state.crates[crate_index].items[card_index].options_data);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -25,7 +25,8 @@ export function ProductCartItem({card_index, crate_index, first, last}) {
|
||||||
const card_counted_resources = useShopStore(state => state.crates[crate_index].items[card_index].counted_resources, compareObjectsEmptiness);
|
const card_counted_resources = useShopStore(state => state.crates[crate_index].items[card_index].counted_resources, compareObjectsEmptiness);
|
||||||
|
|
||||||
const highlighted = useShopStore((state) => state.crates[crate_index].id === state.highlighted.crate && card_index === state.highlighted.card);
|
const highlighted = useShopStore((state) => state.crates[crate_index].id === state.highlighted.crate && card_index === state.highlighted.card);
|
||||||
const options_disabled = useShopStore((state) => !!state.crateParams(state.crates[crate_index].crate_mode).warnings_disabled);
|
const warnings_disabled = useShopStore((state) => !!state.crateParams(state.crates[crate_index].crate_mode).warnings_disabled);
|
||||||
|
const use_options = useShopStore((state) => state.crateParams(state.crates[crate_index].crate_mode).options);
|
||||||
const crate_id = useShopStore((state) => state.crates[crate_index].id);
|
const crate_id = useShopStore((state) => state.crates[crate_index].id);
|
||||||
const setHighlight = useShopStore((state) => state.highlightCard);
|
const setHighlight = useShopStore((state) => state.highlightCard);
|
||||||
const removeHighlight = useShopStore((state) => state.highlightReset);
|
const removeHighlight = useShopStore((state) => state.highlightReset);
|
||||||
|
@ -35,9 +36,9 @@ export function ProductCartItem({card_index, crate_index, first, last}) {
|
||||||
console.log("ProductCartItem renders: ", renderCount)
|
console.log("ProductCartItem renders: ", renderCount)
|
||||||
|
|
||||||
|
|
||||||
const options = !options_disabled && card && card.options && card.options.length > 0;
|
const options = use_options && card && card[use_options] && card[use_options].length > 0;
|
||||||
const warnings = !options_disabled && card_show_warnings && card_show_warnings.length > 0;
|
const warnings = !warnings_disabled && card_show_warnings && card_show_warnings.length > 0;
|
||||||
const resources = !options_disabled && card_counted_resources && card_counted_resources.length > 0;
|
const resources = !warnings_disabled && card_counted_resources && card_counted_resources.length > 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Draggable draggableId={card.id} index={card_index}>
|
<Draggable draggableId={card.id} index={card_index}>
|
||||||
|
|
|
@ -23,16 +23,16 @@ export function SummaryCrateCard({crate_index, card_index}) {
|
||||||
(a, b) => a.id === b.id);
|
(a, b) => a.id === b.id);
|
||||||
const card_show_warnings = useShopStore(state => state.crates[crate_index].items[card_index].show_warnings, compareObjectsEmptiness);
|
const card_show_warnings = useShopStore(state => state.crates[crate_index].items[card_index].show_warnings, compareObjectsEmptiness);
|
||||||
const card_options_data = useShopStore(state => state.crates[crate_index].items[card_index].options_data, compareObjectsEmptiness);
|
const card_options_data = useShopStore(state => state.crates[crate_index].items[card_index].options_data, compareObjectsEmptiness);
|
||||||
const options_disabled = useShopStore((state) => !!state.crateParams(state.crates[crate_index].crate_mode).warnings_disabled);
|
const warnings_disabled = useShopStore((state) => !!state.crateParams(state.crates[crate_index].crate_mode).warnings_disabled);
|
||||||
|
const use_options = useShopStore((state) => state.crateParams(state.crates[crate_index].crate_mode).options);
|
||||||
|
|
||||||
// #!render_count
|
// #!render_count
|
||||||
console.log("SummaryCrateCard renders: ", renderCount)
|
console.log("SummaryCrateCard renders: ", renderCount)
|
||||||
|
|
||||||
|
|
||||||
const options = !options_disabled && card && card.options && card.options.length > 0;
|
const options = use_options && card && card[use_options] && card[use_options].length > 0;
|
||||||
const options_data = !options_disabled && card_options_data && Object.keys(card_options_data).length > 0;
|
const options_data = card_options_data && Object.keys(card_options_data).length > 0;
|
||||||
const warnings = !options_disabled && card_show_warnings && card_show_warnings.length > 0;
|
const warnings = !warnings_disabled && card_show_warnings && card_show_warnings.length > 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<tr
|
<tr
|
||||||
|
|
|
@ -6,20 +6,23 @@ const shop_data = {
|
||||||
id: 'rack',
|
id: 'rack',
|
||||||
name: 'Rack mountable crate',
|
name: 'Rack mountable crate',
|
||||||
price: 550,
|
price: 550,
|
||||||
hp: 84
|
hp: 84,
|
||||||
|
options: "options"
|
||||||
},
|
},
|
||||||
desktop: {
|
desktop: {
|
||||||
id: 'desktop',
|
id: 'desktop',
|
||||||
name: 'Desktop crate',
|
name: 'Desktop crate',
|
||||||
price: 500,
|
price: 500,
|
||||||
hp: 42
|
hp: 42,
|
||||||
|
options: "options"
|
||||||
},
|
},
|
||||||
no_crate: {
|
no_crate: {
|
||||||
id: 'no_crate',
|
id: 'no_crate',
|
||||||
name: 'Spare cards',
|
name: 'Spare cards',
|
||||||
price: 0,
|
price: 0,
|
||||||
hp: -1,
|
hp: -1,
|
||||||
warnings_disabled: true
|
warnings_disabled: true,
|
||||||
|
options: "crateless_options"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
crateModeOrder: [
|
crateModeOrder: [
|
||||||
|
|
Loading…
Reference in New Issue