InAppNotification.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. import React, { Suspense, useState } from 'react';
  2. import dynamic from 'next/dynamic';
  3. import { useTranslation } from 'react-i18next';
  4. import ItemsTreeContentSkeleton from '../../ItemsTree/ItemsTreeContentSkeleton';
  5. import { InAppNotificationForms } from './InAppNotificationSubstance';
  6. const InAppNotificationContent = dynamic(() => import('./InAppNotificationSubstance').then(mod => mod.InAppNotificationContent), { ssr: false });
  7. export const InAppNotification = (): JSX.Element => {
  8. const { t } = useTranslation();
  9. const [isUnopendNotificationsVisible, setUnopendNotificationsVisible] = useState(false);
  10. return (
  11. <div className="px-3">
  12. <div className="grw-sidebar-content-header py-4 d-flex">
  13. <h3 className="fs-6 fw-bold mb-0">
  14. {t('In-App Notification')}
  15. </h3>
  16. </div>
  17. <InAppNotificationForms
  18. onChangeUnopendNotificationsVisible={() => { setUnopendNotificationsVisible(!isUnopendNotificationsVisible) }}
  19. />
  20. <Suspense fallback={<ItemsTreeContentSkeleton />}>
  21. <InAppNotificationContent isUnopendNotificationsVisible={isUnopendNotificationsVisible} />
  22. </Suspense>
  23. </div>
  24. );
  25. };