UserModelNotification.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import React, {
  2. forwardRef, ForwardRefRenderFunction,
  3. } from 'react';
  4. import type { HasObjectId } from '@growi/core';
  5. import { useRouter } from 'next/router';
  6. import type { IInAppNotificationOpenable } from '~/client/interfaces/in-app-notification-openable';
  7. import type { IInAppNotification } from '~/interfaces/in-app-notification';
  8. import { ModelNotification } from './ModelNotification';
  9. import { useActionMsgAndIconForUserModelNotification } from './useActionAndMsg';
  10. const UserModelNotification: ForwardRefRenderFunction<IInAppNotificationOpenable, {
  11. notification: IInAppNotification & HasObjectId
  12. actionUsers: string
  13. }> = ({
  14. notification, actionUsers,
  15. }, ref) => {
  16. const router = useRouter();
  17. const { actionMsg, actionIcon } = useActionMsgAndIconForUserModelNotification(notification);
  18. // publish open()
  19. const publishOpen = () => {
  20. router.push('/admin/users');
  21. };
  22. return (
  23. <ModelNotification
  24. notification={notification}
  25. actionMsg={actionMsg}
  26. actionIcon={actionIcon}
  27. actionUsers={actionUsers}
  28. publishOpen={publishOpen}
  29. ref={ref}
  30. />
  31. );
  32. };
  33. export default forwardRef(UserModelNotification);