Ver Fonte

apply originally defined PaginateResult

kaori há 4 anos atrás
pai
commit
9d9e502e1d

+ 2 - 4
packages/app/src/components/InAppNotification/InAppNotificationList.tsx

@@ -1,14 +1,12 @@
 import React, { FC } from 'react';
 import React, { FC } from 'react';
 
 
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { IInAppNotification } from '../../interfaces/in-app-notification';
+import { IInAppNotification, PaginateResult } from '../../interfaces/in-app-notification';
 import InAppNotificationElm from './InAppNotificationElm';
 import InAppNotificationElm from './InAppNotificationElm';
 
 
 
 
 type Props = {
 type Props = {
-  // TODO: import @types/mongoose-paginate-v2 and use PaginateResult as a type after upgrading mongoose v6.0.0
-  // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  inAppNotificationData: any;
+  inAppNotificationData?: PaginateResult<IInAppNotification>;
 };
 };
 
 
 const InAppNotificationList: FC<Props> = (props: Props) => {
 const InAppNotificationList: FC<Props> = (props: Props) => {

+ 2 - 2
packages/app/src/interfaces/in-app-notification.ts

@@ -13,9 +13,9 @@ export interface IInAppNotification {
 /*
 /*
 * Note:
 * Note:
 * Need to use mongoose PaginateResult as a type after upgrading mongoose v6.0.0.
 * Need to use mongoose PaginateResult as a type after upgrading mongoose v6.0.0.
-* Until then, use the original "PagenateResult".
+* Until then, use the original "PaginateResult".
 */
 */
-export interface PagenateResult<T> {
+export interface PaginateResult<T> {
   docs: T[];
   docs: T[];
   hasNextPage: boolean;
   hasNextPage: boolean;
   hasPrevPage: boolean;
   hasPrevPage: boolean;

+ 2 - 3
packages/app/src/server/service/in-app-notification.ts

@@ -5,6 +5,7 @@ import {
   InAppNotification, STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED,
   InAppNotification, STATUS_UNREAD, STATUS_UNOPENED, STATUS_OPENED,
   InAppNotificationDocument,
   InAppNotificationDocument,
 } from '~/server/models/in-app-notification';
 } from '~/server/models/in-app-notification';
+import { PaginateResult } from '../../interfaces/in-app-notification';
 
 
 import { ActivityDocument } from '~/server/models/activity';
 import { ActivityDocument } from '~/server/models/activity';
 import InAppNotificationSettings from '~/server/models/in-app-notification-settings';
 import InAppNotificationSettings from '~/server/models/in-app-notification-settings';
@@ -86,9 +87,7 @@ export default class InAppNotificationService {
   getLatestNotificationsByUser = async(
   getLatestNotificationsByUser = async(
       userId: Types.ObjectId,
       userId: Types.ObjectId,
       queryOptions: {offset: number, limit: number},
       queryOptions: {offset: number, limit: number},
-  // TODO: import @types/mongoose-paginate-v2 and use PaginateResult as a type after upgrading mongoose v6.0.0
-  // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  ): Promise<any> => {
+  ): Promise<PaginateResult<InAppNotificationDocument>> => {
     const { limit, offset } = queryOptions;
     const { limit, offset } = queryOptions;
 
 
     try {
     try {

+ 2 - 4
packages/app/src/stores/in-app-notification.ts

@@ -1,15 +1,13 @@
 import useSWR, { SWRResponse } from 'swr';
 import useSWR, { SWRResponse } from 'swr';
 
 
 import { apiv3Get } from '../client/util/apiv3-client';
 import { apiv3Get } from '../client/util/apiv3-client';
-
+import { IInAppNotification, PaginateResult } from '../interfaces/in-app-notification';
 
 
 // eslint-disable-next-line @typescript-eslint/no-unused-vars
 // eslint-disable-next-line @typescript-eslint/no-unused-vars
 export const useSWRxInAppNotifications = <Data, Error>(
 export const useSWRxInAppNotifications = <Data, Error>(
   limit: number,
   limit: number,
   offset?: number,
   offset?: number,
-// TODO: import @types/mongoose-paginate-v2 and use PaginateResult as a type after upgrading mongoose v6.0.0
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-): SWRResponse<any, Error> => {
+): SWRResponse<PaginateResult<IInAppNotification>, Error> => {
   return useSWR(
   return useSWR(
     ['/in-app-notification/list', limit, offset],
     ['/in-app-notification/list', limit, offset],
     endpoint => apiv3Get(endpoint, { limit, offset }).then(response => response.data),
     endpoint => apiv3Get(endpoint, { limit, offset }).then(response => response.data),