Parcourir la source

use notification repalce modal for sw updated

陈帅 il y a 7 ans
Parent
commit
e9e8775ee0
1 fichiers modifiés avec 14 ajouts et 6 suppressions
  1. 14 6
      src/global.js

+ 14 - 6
src/global.js

@@ -1,4 +1,5 @@
-import { Modal, message } from 'antd';
+import React from 'react';
+import { notification, Button, message } from 'antd';
 import { formatMessage } from 'umi/locale';
 
 // Notify user if offline now
@@ -8,11 +9,18 @@ window.addEventListener('sw.offline', () => {
 
 // Pop up a prompt on the page asking the user if they want to use the latest version
 window.addEventListener('sw.updated', e => {
-  Modal.confirm({
-    title: formatMessage({ id: 'app.pwa.serviceworker.updated' }),
-    content: formatMessage({ id: 'app.pwa.serviceworker.updated.hint' }),
-    okText: formatMessage({ id: 'app.pwa.serviceworker.updated.ok' }),
-    onOk: async () => {
+  const key = `open${Date.now()}`;
+  const btn = (
+    <Button type="primary" onClick={() => notification.close(key)}>
+      {formatMessage({ id: 'app.pwa.serviceworker.updated.ok' })}
+    </Button>
+  );
+  notification.open({
+    message: formatMessage({ id: 'app.pwa.serviceworker.updated' }),
+    description: formatMessage({ id: 'app.pwa.serviceworker.updated.hint' }),
+    btn,
+    key,
+    onClose: async () => {
       // Check if there is sw whose state is waiting in ServiceWorkerRegistration
       // https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration
       const worker = e.detail && e.detail.waiting;