فهرست منبع

adjust another file

itizawa 5 سال پیش
والد
کامیت
d5c20cd03a
2فایلهای تغییر یافته به همراه55 افزوده شده و 16 حذف شده
  1. 49 0
      src/client/js/components/FakeApi.jsx
  2. 6 16
      src/client/js/components/PageHistory.jsx

+ 49 - 0
src/client/js/components/FakeApi.jsx

@@ -0,0 +1,49 @@
+
+// Suspense integrations like Relay implement
+// a contract like this to integrate with React.
+// Real implementations can be significantly more complex.
+
+import Axios from 'axios';
+
+// Don't copy-paste this into your project!
+function wrapPromise(promise) {
+  let status = 'pending';
+  let result;
+  const suspender = promise.then(
+    (r) => {
+      status = 'success';
+      result = r;
+    },
+    (e) => {
+      status = 'error';
+      result = e;
+    },
+  );
+  return {
+    read() {
+      if (status === 'pending') {
+        throw suspender;
+      }
+      else if (status === 'error') {
+        throw result;
+      }
+      else if (status === 'success') {
+        return result;
+      }
+    },
+  };
+}
+
+function fetchUser() {
+  console.log('fetch user...');
+  return Axios.get('/api/v2/authenticated_user/items?page=1&per_page=20');
+}
+
+function fetchProfileData() {
+  const userPromise = fetchUser();
+
+  return wrapPromise(userPromise);
+}
+
+
+export default fetchProfileData;

+ 6 - 16
src/client/js/components/PageHistory.jsx

@@ -8,11 +8,14 @@ import { toastError } from '../util/apiNotification';
 import PageRevisionList from './PageHistory/PageRevisionList';
 import PageRevisionList from './PageHistory/PageRevisionList';
 import AppContainer from '../services/AppContainer';
 import AppContainer from '../services/AppContainer';
 import PageContainer from '../services/PageContainer';
 import PageContainer from '../services/PageContainer';
+import fetchProfileData from './FakeApi';
+
+const resource = fetchProfileData();
 
 
 const logger = loggerFactory('growi:PageHistory');
 const logger = loggerFactory('growi:PageHistory');
 
 
 // set dummy value tile for using suspense
 // set dummy value tile for using suspense
-let isLoaded = false;
+const isLoaded = false;
 
 
 function AppSettingsPage(props) {
 function AppSettingsPage(props) {
   return (
   return (
@@ -72,7 +75,6 @@ function PageHistory(props) {
 
 
     const res = await appContainer.apiv3Get('/revisions/list', { pageId, share_link_id: shareLinkId });
     const res = await appContainer.apiv3Get('/revisions/list', { pageId, share_link_id: shareLinkId });
     const rev = res.data.revisions;
     const rev = res.data.revisions;
-    console.log(rev);
     const diffOpened = {};
     const diffOpened = {};
     const lastId = rev.length - 1;
     const lastId = rev.length - 1;
 
 
@@ -133,20 +135,8 @@ function PageHistory(props) {
     fetchPageRevisionBody(getPreviousRevision(revision));
     fetchPageRevisionBody(getPreviousRevision(revision));
   }
   }
 
 
-  if (!isLoaded) {
-    throw new Promise(async() => {
-      try {
-        await retrieveRevisions();
-        isLoaded = true;
-        return;
-      }
-      catch (err) {
-        toastError(err);
-        logger.error(err);
-        setErrorMessage(err);
-      }
-    });
-  }
+  const user = resource.read();
+  console.log(user);
 
 
   return (
   return (
     <div className="mt-4">
     <div className="mt-4">