@social-mail/social-mail-client 1.2.384 → 1.2.385
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/store/Store.pack.js +12 -13
- package/dist/public/store/Store.pack.js.map +1 -1
- package/dist/public/store/Store.pack.min.js +1 -1
- package/dist/public/store/Store.pack.min.js.map +1 -1
- package/dist/public/store/StoreItemDetailView.d.ts +2 -2
- package/dist/public/store/StoreItemDetailView.d.ts.map +1 -1
- package/dist/public/store/StoreItemDetailView.js +12 -13
- package/dist/public/store/StoreItemDetailView.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/public/store/StoreItemDetailView.tsx +8 -9
package/package.json
CHANGED
|
@@ -138,7 +138,7 @@ export default class StoreItemDetailView extends AtomControl {
|
|
|
138
138
|
|
|
139
139
|
model: IStoreItem;
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
selectedVariant: IStoreItem = null;
|
|
142
142
|
|
|
143
143
|
selectedSize: IStoreItem = null;
|
|
144
144
|
|
|
@@ -151,9 +151,9 @@ export default class StoreItemDetailView extends AtomControl {
|
|
|
151
151
|
this.runAfterInit(() => this.app.runAsync(() => this.init()));
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
getFiles(item: IStoreItem,
|
|
155
|
-
const
|
|
156
|
-
const files =
|
|
154
|
+
getFiles(item: IStoreItem, variant: IStoreItem, size: IStoreItem) {
|
|
155
|
+
const variantFiles = variant?.mediaFiles?.filter((x) => x.isPreview);
|
|
156
|
+
const files = variantFiles ?? item.mediaFiles.filter((x) => x.isPreview);
|
|
157
157
|
if (size?.mediaFiles) {
|
|
158
158
|
files.push(... size.mediaFiles.filter((x) => x.isPreview));
|
|
159
159
|
}
|
|
@@ -172,8 +172,7 @@ export default class StoreItemDetailView extends AtomControl {
|
|
|
172
172
|
const offer = this.model.mediaFiles.find((x) => x.title === "offer.html");
|
|
173
173
|
const specifications = this.model.mediaFiles.find((x) => x.title === "specs.html");
|
|
174
174
|
|
|
175
|
-
const price = this.model.storeItemPrices[0];
|
|
176
|
-
const maxPrice = price.maxAmount ? price.maxAmount : ( Math.ceil(price.amount * 1.1));
|
|
175
|
+
const price = this.model.storeItemPrices?.[0];
|
|
177
176
|
|
|
178
177
|
const [offerHtml, specHtml] = await Promise.all([
|
|
179
178
|
offer ? FetchBuilder.get(signedUrl(offer)).responseAsText() : Promise.resolve(""),
|
|
@@ -181,11 +180,11 @@ export default class StoreItemDetailView extends AtomControl {
|
|
|
181
180
|
]);
|
|
182
181
|
|
|
183
182
|
this.selectedSize = this.model.sizes?.[0] ?? null;
|
|
184
|
-
this.
|
|
183
|
+
this.selectedVariant = this.model.variants?.[0] ?? null;
|
|
185
184
|
|
|
186
185
|
this.renderer = <div
|
|
187
186
|
class={css}
|
|
188
|
-
images={Bind.oneWay(() => this.getFiles(this.model, this.
|
|
187
|
+
images={Bind.oneWay(() => this.getFiles(this.model, this.selectedVariant, this.selectedSize))}>
|
|
189
188
|
<h2>{this.model.name}</h2>
|
|
190
189
|
|
|
191
190
|
<section class="product">
|
|
@@ -230,7 +229,7 @@ export default class StoreItemDetailView extends AtomControl {
|
|
|
230
229
|
/>}
|
|
231
230
|
{ this.model.variants?.length && <ToggleButtonBar
|
|
232
231
|
items={this.model.variants}
|
|
233
|
-
selectedItem={Bind.twoWaysImmediate(() => this.
|
|
232
|
+
selectedItem={Bind.twoWaysImmediate(() => this.selectedVariant)}
|
|
234
233
|
itemRenderer={(x: IStoreItem) => <div data-item-type="toggle-button"><label text={x.name}/></div>}
|
|
235
234
|
/>}
|
|
236
235
|
|