use-pwa 2.1.1 → 2.2.0
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/README.md +31 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -70
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,6 +16,37 @@ use-pwa is install and update handler for pwa.
|
|
|
16
16
|
|
|
17
17
|
[Example](https://use-pwa.kk-web.link/)
|
|
18
18
|
|
|
19
|
+
### Before Installation
|
|
20
|
+
|
|
21
|
+
| OS | Browser | appinstalled | canInstallprompt | enabledA2hs | enabledPwa | isPwa | userChoice |
|
|
22
|
+
| ------- | ------- | ------------- | ---------------- | ----------- | ---------- | ------- | ----------------- |
|
|
23
|
+
| Mac | Chrome | `false` | `true` | `false` | `true` | `false` | `undefined` |
|
|
24
|
+
| 〃 | Safari | `false` | `false` | `false` | `false` | `false` | `undefined` |
|
|
25
|
+
| 〃 | Firefox | `false` | `false` | `false` | `false` | `false` | `undefined` |
|
|
26
|
+
| Android | Chrome | `false` (\*1) | `true` | `false` | `true` | `false` | `undefined` (\*2) |
|
|
27
|
+
| 〃 | Brave | `false` (\*1) | `true` | `false` | `true` | `false` | `undefined` (\*2) |
|
|
28
|
+
| iOS | Safari | `false` | `false` | `true` | `false` | `false` | `undefined` |
|
|
29
|
+
| 〃 | Brave | `false` | `false` | `true` | `false` | `false` | `undefined` |
|
|
30
|
+
|
|
31
|
+
1. Changes to `true` only immediately after installation.
|
|
32
|
+
2. Changes to `object` only immediately after installation.
|
|
33
|
+
|
|
34
|
+
### After Installation
|
|
35
|
+
|
|
36
|
+
| OS | Browser | appinstalled | canInstallprompt | enabledA2hs | enabledPwa | isPwa | userChoice |
|
|
37
|
+
| ------- | ----------- | ------------- | ---------------- | ----------- | ---------- | ------------ | ----------- |
|
|
38
|
+
| Mac | PWA | `false` (\*1) | `false` (\*1) | `false` | `true` | `true` (\*2) | `undefined` |
|
|
39
|
+
| 〃 | Chrome | `false` | `false` | `false` | `true` | `false` | `undefined` |
|
|
40
|
+
| Android | PWA(Chrome) | `false` | `false` | `false` | `true` | `true` | `undefined` |
|
|
41
|
+
| 〃 | Chrome | `false` | `false` | `false` | `true` | `false` | `undefined` |
|
|
42
|
+
| 〃 | PWA(Brave) | `false` | `false` | `false` | `true` | `true` | `undefined` |
|
|
43
|
+
| 〃 | Brave | `false` | `true` | `false` | `true` | `false` | `undefined` |
|
|
44
|
+
| iOS | PWA | `false` | `false` | `true` | `false` | `true` | `undefined` |
|
|
45
|
+
| 〃 | Safari | `false` | `false` | `true` | `false` | `false` | `undefined` |
|
|
46
|
+
|
|
47
|
+
1. `true` is set only at first startup.
|
|
48
|
+
2. `false` is set only at first startup.
|
|
49
|
+
|
|
19
50
|
## Usage
|
|
20
51
|
|
|
21
52
|
[Example Code](https://github.com/piro0919/use-pwa/blob/master/src/App.tsx)
|
|
@@ -28,9 +59,7 @@ use-pwa is install and update handler for pwa.
|
|
|
28
59
|
| canInstallprompt | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent) |
|
|
29
60
|
| enabledA2hs | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen) |
|
|
30
61
|
| enabledPwa | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent) |
|
|
31
|
-
| enabledUpdate | Boolean | | [MDN](https://developer.mozilla.org/ja/docs/Web/API/ServiceWorkerRegistration/update) |
|
|
32
62
|
| isLoading | Boolean | | |
|
|
33
63
|
| isPwa | Boolean | | [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/display-mode) |
|
|
34
64
|
| showInstallPrompt | Function | | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent/prompt) |
|
|
35
|
-
| unregister | Function | ✓ | [MDN](https://developer.mozilla.org/ja/docs/Web/API/ServiceWorkerRegistration/unregister) |
|
|
36
65
|
| userChoice | Object | ✓ | [MDN](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent) |
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,9 @@ export type PwaData = {
|
|
|
7
7
|
canInstallprompt: boolean;
|
|
8
8
|
enabledA2hs: boolean;
|
|
9
9
|
enabledPwa: boolean;
|
|
10
|
-
enabledUpdate: boolean;
|
|
11
10
|
isLoading: boolean;
|
|
12
11
|
isPwa: boolean;
|
|
13
12
|
showInstallPrompt: () => void;
|
|
14
|
-
unregister?: () => Promise<boolean>;
|
|
15
13
|
userChoice?: UserChoice;
|
|
16
14
|
};
|
|
17
15
|
export default function usePwa(): PwaData;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":"AASA,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,MAAM,OAAO,GAAG;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":"AASA,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,MAAM,OAAO,GAAG;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,IAAI,OAAO,CA0JxC"}
|
package/dist/index.js
CHANGED
|
@@ -60,27 +60,13 @@ function usePwa() {
|
|
|
60
60
|
var _b = useBoolean(false), canInstallprompt = _b.value, onCanInstallprompt = _b.setTrue;
|
|
61
61
|
var _c = useBoolean(false), enabledA2hs = _c.value, onEnabledA2hs = _c.setTrue;
|
|
62
62
|
var _d = useBoolean(false), enabledPwa = _d.value, onEnabledPwa = _d.setTrue;
|
|
63
|
-
var _e = useBoolean(false),
|
|
64
|
-
var _f =
|
|
65
|
-
var _g = (0, react_1.useState)(), userChoice = _g[0], setUserChoice = _g[1];
|
|
63
|
+
var _e = useBoolean(false), isPwa = _e.value, onIsPwa = _e.setTrue;
|
|
64
|
+
var _f = (0, react_1.useState)(), userChoice = _f[0], setUserChoice = _f[1];
|
|
66
65
|
var handleAppinstalled = (0, react_1.useCallback)(function () { return onAppinstalled(); }, [onAppinstalled]);
|
|
67
66
|
var handleBeforeinstallprompt = (0, react_1.useCallback)(function (event) {
|
|
68
67
|
beforeinstallprompt.current = event;
|
|
69
68
|
onCanInstallprompt();
|
|
70
69
|
}, [onCanInstallprompt]);
|
|
71
|
-
var _h = (0, react_1.useState)(), registration = _h[0], setRegistration = _h[1];
|
|
72
|
-
var unregister = registration &&
|
|
73
|
-
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
74
|
-
var result;
|
|
75
|
-
return __generator(this, function (_a) {
|
|
76
|
-
switch (_a.label) {
|
|
77
|
-
case 0: return [4 /*yield*/, registration.unregister()];
|
|
78
|
-
case 1:
|
|
79
|
-
result = _a.sent();
|
|
80
|
-
return [2 /*return*/, result];
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}); });
|
|
84
70
|
var showInstallPrompt = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
85
71
|
var userChoice;
|
|
86
72
|
return __generator(this, function (_a) {
|
|
@@ -100,14 +86,13 @@ function usePwa() {
|
|
|
100
86
|
}
|
|
101
87
|
});
|
|
102
88
|
}); }, []);
|
|
103
|
-
var
|
|
89
|
+
var _g = (0, react_1.useState)({
|
|
104
90
|
appinstalled: false,
|
|
105
91
|
beforeinstallprompt: false,
|
|
106
92
|
enabledA2hs: false,
|
|
107
93
|
enabledPwa: false,
|
|
108
|
-
enabledUpdate: false,
|
|
109
94
|
isPwa: false,
|
|
110
|
-
}), completed =
|
|
95
|
+
}), completed = _g[0], setCompleted = _g[1];
|
|
111
96
|
var isLoading = (0, react_1.useMemo)(function () { return Object.values(completed).includes(false); }, [completed]);
|
|
112
97
|
(0, react_1.useEffect)(function () {
|
|
113
98
|
window.addEventListener("appinstalled", handleAppinstalled);
|
|
@@ -138,8 +123,7 @@ function usePwa() {
|
|
|
138
123
|
}, [onEnabledA2hs]);
|
|
139
124
|
(0, react_1.useEffect)(function () {
|
|
140
125
|
try {
|
|
141
|
-
if (!("
|
|
142
|
-
!("BeforeInstallPromptEvent" in window)) {
|
|
126
|
+
if (!("BeforeInstallPromptEvent" in window)) {
|
|
143
127
|
return;
|
|
144
128
|
}
|
|
145
129
|
onEnabledPwa();
|
|
@@ -148,53 +132,6 @@ function usePwa() {
|
|
|
148
132
|
setCompleted(function (prevCompleted) { return (__assign(__assign({}, prevCompleted), { enabledPwa: true })); });
|
|
149
133
|
}
|
|
150
134
|
}, [onEnabledPwa]);
|
|
151
|
-
(0, react_1.useEffect)(function () {
|
|
152
|
-
var callback = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
153
|
-
var registration;
|
|
154
|
-
return __generator(this, function (_a) {
|
|
155
|
-
switch (_a.label) {
|
|
156
|
-
case 0:
|
|
157
|
-
if (!("serviceWorker" in window.navigator)) {
|
|
158
|
-
return [2 /*return*/];
|
|
159
|
-
}
|
|
160
|
-
return [4 /*yield*/, window.navigator.serviceWorker.getRegistration()];
|
|
161
|
-
case 1:
|
|
162
|
-
registration = _a.sent();
|
|
163
|
-
setRegistration(registration);
|
|
164
|
-
return [2 /*return*/];
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}); };
|
|
168
|
-
callback();
|
|
169
|
-
}, []);
|
|
170
|
-
(0, react_1.useEffect)(function () {
|
|
171
|
-
var callback = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
172
|
-
var _this = this;
|
|
173
|
-
return __generator(this, function (_a) {
|
|
174
|
-
try {
|
|
175
|
-
if (!registration) {
|
|
176
|
-
return [2 /*return*/];
|
|
177
|
-
}
|
|
178
|
-
registration.onupdatefound = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
179
|
-
return __generator(this, function (_a) {
|
|
180
|
-
switch (_a.label) {
|
|
181
|
-
case 0: return [4 /*yield*/, registration.update()];
|
|
182
|
-
case 1:
|
|
183
|
-
_a.sent();
|
|
184
|
-
onEnabledUpdate();
|
|
185
|
-
return [2 /*return*/];
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}); };
|
|
189
|
-
}
|
|
190
|
-
finally {
|
|
191
|
-
setCompleted(function (prevCompleted) { return (__assign(__assign({}, prevCompleted), { enabledUpdate: true })); });
|
|
192
|
-
}
|
|
193
|
-
return [2 /*return*/];
|
|
194
|
-
});
|
|
195
|
-
}); };
|
|
196
|
-
callback();
|
|
197
|
-
}, [onEnabledUpdate, registration]);
|
|
198
135
|
(0, react_1.useEffect)(function () {
|
|
199
136
|
try {
|
|
200
137
|
// Android Trusted Web App
|
|
@@ -224,10 +161,8 @@ function usePwa() {
|
|
|
224
161
|
canInstallprompt: canInstallprompt,
|
|
225
162
|
enabledA2hs: enabledA2hs,
|
|
226
163
|
enabledPwa: enabledPwa,
|
|
227
|
-
enabledUpdate: enabledUpdate,
|
|
228
164
|
isLoading: isLoading,
|
|
229
165
|
isPwa: isPwa,
|
|
230
|
-
unregister: unregister,
|
|
231
166
|
showInstallPrompt: showInstallPrompt,
|
|
232
167
|
userChoice: userChoice,
|
|
233
168
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA0E;AAE1E,SAAS,UAAU,CAAC,YAAqB;IACjC,IAAA,KAAoB,IAAA,gBAAQ,EAAC,YAAY,CAAC,EAAzC,KAAK,QAAA,EAAE,QAAQ,QAA0B,CAAC;IACjD,IAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAd,CAAc,EAAE,EAAE,CAAC,CAAC;IAEtD,OAAO,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAC;AAC5B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/hooks/usePwa/index.ts"],"names":[],"mappings":"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"}
|