@internetarchive/ia-book-actions 0.0.29-alpha16 → 0.0.29-alpha17
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/demo/index.html +0 -2
- package/package.json +3 -3
- package/src/ia-book-actions.js +20 -13
- package/src/components/toast-message.js +0 -76
package/demo/index.html
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@internetarchive/ia-book-actions",
|
|
3
|
-
"version": "0.0.29-
|
|
3
|
+
"version": "0.0.29-alpha17",
|
|
4
4
|
"description": "Bookreader actions for borrowable book",
|
|
5
5
|
"author": "Internet Archive",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"@internetarchive/local-cache": "^0.2.0",
|
|
23
23
|
"@internetarchive/modal-manager": "^0.2.1",
|
|
24
24
|
"@internetarchive/shared-resize-observer": "^0.2.0",
|
|
25
|
+
"@internetarchive/toast-manager": "0.0.1-alpha1",
|
|
25
26
|
"lit": "^2.2.1"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
@@ -59,8 +60,7 @@
|
|
|
59
60
|
"arrowParens": "avoid"
|
|
60
61
|
},
|
|
61
62
|
"husky": {
|
|
62
|
-
"hooks": {
|
|
63
|
-
}
|
|
63
|
+
"hooks": {}
|
|
64
64
|
},
|
|
65
65
|
"lint-staged": {
|
|
66
66
|
"*.js": [
|
package/src/ia-book-actions.js
CHANGED
|
@@ -3,6 +3,7 @@ import { html, css, LitElement, nothing } from 'lit';
|
|
|
3
3
|
|
|
4
4
|
import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
|
|
5
5
|
import { ModalConfig } from '@internetarchive/modal-manager';
|
|
6
|
+
import { ToastConfig } from '@internetarchive/toast-manager';
|
|
6
7
|
import { LocalCache } from '@internetarchive/local-cache';
|
|
7
8
|
|
|
8
9
|
import './components/collapsible-action-group.js';
|
|
@@ -10,7 +11,6 @@ import './components/book-title-bar.js';
|
|
|
10
11
|
import './components/text-group.js';
|
|
11
12
|
import './components/info-icon.js';
|
|
12
13
|
import './components/timer-countdown.js';
|
|
13
|
-
import './components/toast-message.js';
|
|
14
14
|
|
|
15
15
|
import { mobileContainerWidth } from './core/config/constants.js';
|
|
16
16
|
import { GetLendingActions } from './core/services/get-lending-actions.js';
|
|
@@ -109,6 +109,10 @@ export default class IABookActions extends LitElement {
|
|
|
109
109
|
this.disconnectResizeObserver();
|
|
110
110
|
this.setupResizeObserver();
|
|
111
111
|
}
|
|
112
|
+
|
|
113
|
+
if (changed.has('loanRenewResult')) {
|
|
114
|
+
this.showToastMessage();
|
|
115
|
+
}
|
|
112
116
|
}
|
|
113
117
|
|
|
114
118
|
bindLoanRenewEvents() {
|
|
@@ -148,6 +152,16 @@ export default class IABookActions extends LitElement {
|
|
|
148
152
|
return nothing;
|
|
149
153
|
}
|
|
150
154
|
|
|
155
|
+
showToastMessage() {
|
|
156
|
+
let toastManager = document.querySelector('toast-template');
|
|
157
|
+
if (!toastManager) {
|
|
158
|
+
toastManager = document.createElement('toast-template');
|
|
159
|
+
}
|
|
160
|
+
document.body.appendChild(toastManager);
|
|
161
|
+
|
|
162
|
+
toastManager.config = new ToastConfig(this.loanRenewResult);
|
|
163
|
+
}
|
|
164
|
+
|
|
151
165
|
async browseHasExpired() {
|
|
152
166
|
const currStatus = { ...this.lendingStatus, browsingExpired: true };
|
|
153
167
|
this.lendingStatus = currStatus;
|
|
@@ -323,15 +337,6 @@ export default class IABookActions extends LitElement {
|
|
|
323
337
|
: nothing;
|
|
324
338
|
}
|
|
325
339
|
|
|
326
|
-
get toastMessageTemplate() {
|
|
327
|
-
return html`
|
|
328
|
-
<toast-message
|
|
329
|
-
.texts=${this.loanRenewResult.texts}
|
|
330
|
-
?dismisOnClick=${Boolean(true)}
|
|
331
|
-
></toast-message>
|
|
332
|
-
`;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
340
|
get bookActionBar() {
|
|
336
341
|
return html`
|
|
337
342
|
<collapsible-action-group
|
|
@@ -353,7 +358,7 @@ export default class IABookActions extends LitElement {
|
|
|
353
358
|
>
|
|
354
359
|
</collapsible-action-group>
|
|
355
360
|
${this.textGroupTemplate} ${this.infoIconTemplate}
|
|
356
|
-
${this.timerCountdownTemplate}
|
|
361
|
+
${this.timerCountdownTemplate}
|
|
357
362
|
`;
|
|
358
363
|
}
|
|
359
364
|
|
|
@@ -522,8 +527,10 @@ export default class IABookActions extends LitElement {
|
|
|
522
527
|
flex-wrap: wrap;
|
|
523
528
|
}
|
|
524
529
|
|
|
525
|
-
toast-
|
|
526
|
-
--
|
|
530
|
+
toast-template {
|
|
531
|
+
--toastHeightFromTop: 50%;
|
|
532
|
+
--toastBGColor: #333333;
|
|
533
|
+
--toastFontColor: #ffffff;
|
|
527
534
|
}
|
|
528
535
|
`;
|
|
529
536
|
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { html, css, LitElement, nothing } from 'lit';
|
|
2
|
-
|
|
3
|
-
export class ToastMessage extends LitElement {
|
|
4
|
-
static get properties() {
|
|
5
|
-
return {
|
|
6
|
-
texts: { type: String },
|
|
7
|
-
dismisOnClick: { type: Boolean },
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
13
|
-
this.texts = null;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
render() {
|
|
17
|
-
return this.texts
|
|
18
|
-
? html`
|
|
19
|
-
<span
|
|
20
|
-
class="toast-message fade-in"
|
|
21
|
-
title="Click/tap to close"
|
|
22
|
-
@click=${() => {
|
|
23
|
-
this.dismisOnClick ? (this.texts = null) : nothing;
|
|
24
|
-
}}
|
|
25
|
-
>${this.texts}</span
|
|
26
|
-
>
|
|
27
|
-
`
|
|
28
|
-
: nothing;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
static get styles() {
|
|
32
|
-
const heightFromTop = css`var(--messageHeightFromTop, 15%)`;
|
|
33
|
-
|
|
34
|
-
return css`
|
|
35
|
-
:host {
|
|
36
|
-
display: inline-block;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.toast-message {
|
|
40
|
-
z-index: 2;
|
|
41
|
-
position: absolute;
|
|
42
|
-
top: ${heightFromTop};
|
|
43
|
-
font-size: 1.4rem;
|
|
44
|
-
font-family: 'Helvetica Neue';
|
|
45
|
-
color: #fff;
|
|
46
|
-
left: 50%;
|
|
47
|
-
background: #333;
|
|
48
|
-
border: 1px solid #fff;
|
|
49
|
-
border-radius: 5px;
|
|
50
|
-
box-shadow: 1px 1px 2px;
|
|
51
|
-
padding: 10px;
|
|
52
|
-
width: fit-content;
|
|
53
|
-
transform: translate(-50%, -50%);
|
|
54
|
-
cursor: pointer;
|
|
55
|
-
animation: fadeIn 5s;
|
|
56
|
-
@keyframes fadeIn {
|
|
57
|
-
0% {
|
|
58
|
-
opacity: 0;
|
|
59
|
-
}
|
|
60
|
-
100% {
|
|
61
|
-
opacity: 1;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.hidden {
|
|
67
|
-
display: none;
|
|
68
|
-
}
|
|
69
|
-
.visible {
|
|
70
|
-
display: inline-block;
|
|
71
|
-
}
|
|
72
|
-
`;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
window.customElements.define('toast-message', ToastMessage);
|