Răsfoiți Sursa

create useSetRemoteLatestPageData

Yuken Tezuka 3 ani în urmă
părinte
comite
92e86622ef
1 a modificat fișierele cu 31 adăugiri și 0 ștergeri
  1. 31 0
      packages/app/src/stores/remote-latest-page.ts

+ 31 - 0
packages/app/src/stores/remote-latest-page.ts

@@ -20,3 +20,34 @@ export const useRemoteRevisionLastUpdatUser = (initialData?: IUser): SWRResponse
 export const useRemoteRevisionLastUpdatedAt = (initialData?: Date): SWRResponse<Date, Error> => {
   return useStaticSWR<Date, Error>('remoteRevisionLastUpdatedAt', initialData);
 };
+
+
+// set remote data all at once
+export const useSetRemoteLatestPageData = (): { setRemoteLatestPageData: (pageData: any) => void } => {
+  const { mutate: mutateRemoteRevisionId } = useRemoteRevisionId();
+  const { mutate: mutateRemoteRevisionBody } = useRemoteRevisionBody();
+  const { mutate: mutateRemoteRevisionLastUpdatUser } = useRemoteRevisionLastUpdatUser();
+  const { mutate: mutateRemoteRevisionLastUpdatedAt } = useRemoteRevisionLastUpdatedAt();
+
+  type RemoteRevisionData = {
+    remoteRevisionId: string,
+    remoteRevisionBody: string,
+    remoteRevisionLastUpdatUser: IUser,
+    remoteRevisionLastUpdatedAt: Date
+  }
+
+  const setRemoteLatestPageData = (remoteRevisionData: RemoteRevisionData) => {
+    const {
+      remoteRevisionId, remoteRevisionBody, remoteRevisionLastUpdatUser, remoteRevisionLastUpdatedAt,
+    } = remoteRevisionData;
+    mutateRemoteRevisionId(remoteRevisionId);
+    mutateRemoteRevisionBody(remoteRevisionBody);
+    mutateRemoteRevisionLastUpdatUser(remoteRevisionLastUpdatUser);
+    mutateRemoteRevisionLastUpdatedAt(remoteRevisionLastUpdatedAt);
+  };
+
+  return {
+    setRemoteLatestPageData,
+  };
+
+};