Browse Source

update import lines

Yuki Takei 1 year ago
parent
commit
84d1a1db65
100 changed files with 135 additions and 96 deletions
  1. 1 1
      apps/app/src/client/components/Admin/AdminHome/EnvVarsTable.tsx
  2. 3 0
      apps/app/src/client/components/Admin/App/AwsSetting.tsx
  3. 3 0
      apps/app/src/client/components/Admin/App/AzureSetting.tsx
  4. 1 1
      apps/app/src/client/components/Admin/App/FileUploadSetting.tsx
  5. 3 0
      apps/app/src/client/components/Admin/App/GcsSetting.tsx
  6. 1 1
      apps/app/src/client/components/Admin/App/MaskedInput.tsx
  7. 1 1
      apps/app/src/client/components/Admin/App/PageBulkExportSettings.tsx
  8. 1 1
      apps/app/src/client/components/Admin/App/QuestionnaireSettings.tsx
  9. 1 1
      apps/app/src/client/components/Admin/Common/AdminInstallButtonRow.tsx
  10. 1 1
      apps/app/src/client/components/Admin/Common/AdminUpdateButtonRow.tsx
  11. 1 1
      apps/app/src/client/components/Admin/Common/LabeledProgressBar.tsx
  12. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeCssSetting.tsx
  13. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeFunctionOption.tsx
  14. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeFunctionSetting.tsx
  15. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeLayoutSetting.tsx
  16. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeLogoSetting.tsx
  17. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeNoscriptSetting.tsx
  18. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizePresentationSetting.tsx
  19. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeScriptSetting.tsx
  20. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeSidebarSetting.tsx
  21. 1 1
      apps/app/src/client/components/Admin/Customize/CustomizeThemeOptions.tsx
  22. 3 1
      apps/app/src/client/components/Admin/Customize/CustomizeThemeSetting.tsx
  23. 1 1
      apps/app/src/client/components/Admin/Customize/ThemeColorBox.tsx
  24. 1 1
      apps/app/src/client/components/Admin/ElasticsearchManagement/NormalizeIndicesControls.tsx
  25. 1 1
      apps/app/src/client/components/Admin/ElasticsearchManagement/ReconnectControls.tsx
  26. 1 1
      apps/app/src/client/components/Admin/ExportArchiveData/ArchiveFilesTable.tsx
  27. 1 1
      apps/app/src/client/components/Admin/ExportArchiveData/ArchiveFilesTableMenu.tsx
  28. 3 1
      apps/app/src/client/components/Admin/ExportArchiveData/SelectCollectionsModal.tsx
  29. 3 1
      apps/app/src/client/components/Admin/ExportArchiveDataPage.tsx
  30. 1 1
      apps/app/src/client/components/Admin/ForbiddenPage.tsx
  31. 1 1
      apps/app/src/client/components/Admin/FullTextSearchManagement.tsx
  32. 1 1
      apps/app/src/client/components/Admin/G2GDataTransfer.tsx
  33. 1 1
      apps/app/src/client/components/Admin/G2GDataTransferExportForm.tsx
  34. 1 1
      apps/app/src/client/components/Admin/G2GDataTransferStatusIcon.tsx
  35. 1 1
      apps/app/src/client/components/Admin/ImportData/GrowiArchive/ErrorViewer.tsx
  36. 1 1
      apps/app/src/client/components/Admin/ManageExternalAccount.tsx
  37. 1 1
      apps/app/src/client/components/Admin/MarkdownSetting/MarkDownSettingContents.tsx
  38. 1 1
      apps/app/src/client/components/Admin/MarkdownSetting/WhitelistInput.tsx
  39. 1 1
      apps/app/src/client/components/Admin/NotFoundPage.tsx
  40. 1 1
      apps/app/src/client/components/Admin/Notification/ManageGlobalNotification.tsx
  41. 1 1
      apps/app/src/client/components/Admin/Notification/NotificationTypeIcon.tsx
  42. 1 1
      apps/app/src/client/components/Admin/Security/LdapAuthTest.tsx
  43. 1 1
      apps/app/src/client/components/Admin/SlackIntegration/BotTypeCard.tsx
  44. 3 0
      apps/app/src/client/components/Admin/SlackIntegration/Bridge.tsx
  45. 1 1
      apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithProxyConnectionStatus.tsx
  46. 1 1
      apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithoutProxyConnectionStatus.tsx
  47. 2 1
      apps/app/src/client/components/Admin/SlackIntegration/MessageBasedOnConnection.jsx
  48. 3 0
      apps/app/src/client/components/Admin/SlackIntegration/SlackAppIntegrationControl.tsx
  49. 3 1
      apps/app/src/client/components/Admin/SlackIntegration/SlackIntegration.tsx
  50. 2 1
      apps/app/src/client/components/Admin/UserGroup/UserGroupDropdown.tsx
  51. 1 1
      apps/app/src/client/components/Admin/UserGroup/UserGroupTable.tsx
  52. 1 1
      apps/app/src/client/components/Admin/UserGroupDetail/UserGroupDetailPage.tsx
  53. 3 1
      apps/app/src/client/components/Admin/UserGroupDetail/UserGroupPageList.tsx
  54. 1 1
      apps/app/src/client/components/Admin/UserGroupDetail/UserGroupUserModal.tsx
  55. 1 1
      apps/app/src/client/components/Admin/UserGroupDetail/UserGroupUserTable.tsx
  56. 1 1
      apps/app/src/client/components/Admin/Users/ExternalAccountTable.tsx
  57. 1 1
      apps/app/src/client/components/Admin/Users/GrantAdminButton.tsx
  58. 1 1
      apps/app/src/client/components/Admin/Users/GrantReadOnlyButton.tsx
  59. 1 1
      apps/app/src/client/components/Admin/Users/RevokeAdminButton.tsx
  60. 1 1
      apps/app/src/client/components/Admin/Users/RevokeAdminMenuItem.tsx
  61. 1 1
      apps/app/src/client/components/Admin/Users/RevokeReadOnlyMenuItem.tsx
  62. 1 1
      apps/app/src/client/components/Admin/Users/SortIcons.tsx
  63. 1 1
      apps/app/src/client/components/Admin/Users/StatusSuspendMenuItem.tsx
  64. 2 0
      apps/app/src/client/components/AlertSiteUrlUndefined.tsx
  65. 1 1
      apps/app/src/client/components/AuthorInfo/AuthorInfo.tsx
  66. 1 1
      apps/app/src/client/components/Bookmarks/BookmarkFolderItemControl.tsx
  67. 3 1
      apps/app/src/client/components/Bookmarks/BookmarkFolderMenu.tsx
  68. 1 1
      apps/app/src/client/components/Bookmarks/BookmarkFolderNameInput.tsx
  69. 1 1
      apps/app/src/client/components/Bookmarks/BookmarkItem.tsx
  70. 1 1
      apps/app/src/client/components/Bookmarks/BookmarkItemRenameInput.tsx
  71. 1 1
      apps/app/src/client/components/Bookmarks/DragAndDropWrapper.tsx
  72. 3 1
      apps/app/src/client/components/Comments.tsx
  73. 1 1
      apps/app/src/client/components/Common/DrawerToggler/DrawerToggler.tsx
  74. 1 1
      apps/app/src/client/components/Common/Dropdown/PageItemControl.tsx
  75. 1 1
      apps/app/src/client/components/Common/LazyRenderer.tsx
  76. 1 1
      apps/app/src/client/components/ContentLinkButtons.tsx
  77. 1 1
      apps/app/src/client/components/CustomNavigation/CustomNav.tsx
  78. 2 1
      apps/app/src/client/components/CustomNavigation/CustomNavAndContents.tsx
  79. 1 1
      apps/app/src/client/components/CustomNavigation/CustomTabContent.tsx
  80. 1 1
      apps/app/src/client/components/DataTransferForm.tsx
  81. 1 1
      apps/app/src/client/components/DeleteBookmarkFolderModal.tsx
  82. 1 1
      apps/app/src/client/components/DescendantsPageList.tsx
  83. 3 1
      apps/app/src/client/components/DescendantsPageListModal.tsx
  84. 1 1
      apps/app/src/client/components/EmptyTrashButton.tsx
  85. 1 1
      apps/app/src/client/components/ForbiddenPage.tsx
  86. 1 1
      apps/app/src/client/components/GrantedGroupsInheritanceSelectModal.tsx
  87. 1 1
      apps/app/src/client/components/Hotkeys/Subscribers/ShowShortcutsModal.tsx
  88. 1 1
      apps/app/src/client/components/Icons/FolderIcon.tsx
  89. 1 1
      apps/app/src/client/components/Icons/RecentlyCreatedIcon.tsx
  90. 1 1
      apps/app/src/client/components/IdenticalPathPage.tsx
  91. 3 1
      apps/app/src/client/components/InAppNotification/InAppNotificationDropdown.tsx
  92. 1 1
      apps/app/src/client/components/InAppNotification/InAppNotificationElm.tsx
  93. 1 1
      apps/app/src/client/components/InAppNotification/ModelNotification/ModelNotification.tsx
  94. 1 1
      apps/app/src/client/components/InAppNotification/ModelNotification/PageBulkExportJobModelNotification.tsx
  95. 2 2
      apps/app/src/client/components/InfiniteScroll.tsx
  96. 1 1
      apps/app/src/client/components/InstallerForm.tsx
  97. 1 1
      apps/app/src/client/components/InvitedForm.tsx
  98. 1 1
      apps/app/src/client/components/ItemsTree/ItemNode.ts
  99. 1 3
      apps/app/src/client/components/ItemsTree/ItemsTree.tsx
  100. 3 0
      apps/app/src/client/components/ItemsTree/ItemsTreeContentSkeleton.tsx

+ 1 - 1
apps/app/src/client/components/Admin/AdminHome/EnvVarsTable.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 type EnvVarsTableProps = {
   envVars: Record<string, string | number | boolean>,

+ 3 - 0
apps/app/src/client/components/Admin/App/AwsSetting.tsx

@@ -1,5 +1,8 @@
+import type { JSX } from 'react';
+
 import { useTranslation } from 'next-i18next';
 
+
 export type AwsSettingMoleculeProps = {
   s3ReferenceFileWithRelayMode
   s3Region

+ 3 - 0
apps/app/src/client/components/Admin/App/AzureSetting.tsx

@@ -1,7 +1,10 @@
+import type { JSX } from 'react';
+
 import { useTranslation } from 'next-i18next';
 
 import MaskedInput from './MaskedInput';
 
+
 export type AzureSettingMoleculeProps = {
   azureReferenceFileWithRelayMode
   azureUseOnlyEnvVars

+ 1 - 1
apps/app/src/client/components/Admin/App/FileUploadSetting.tsx

@@ -1,4 +1,4 @@
-import type { ChangeEvent } from 'react';
+import type { ChangeEvent, JSX } from 'react';
 import React, { useCallback } from 'react';
 
 import { useTranslation } from 'next-i18next';

+ 3 - 0
apps/app/src/client/components/Admin/App/GcsSetting.tsx

@@ -1,5 +1,8 @@
+import type { JSX } from 'react';
+
 import { useTranslation } from 'next-i18next';
 
+
 export type GcsSettingMoleculeProps = {
   gcsReferenceFileWithRelayMode
   gcsUseOnlyEnvVars

+ 1 - 1
apps/app/src/client/components/Admin/App/MaskedInput.tsx

@@ -1,4 +1,4 @@
-import { useState } from 'react';
+import { useState, type JSX } from 'react';
 
 import styles from './MaskedInput.module.scss';
 

+ 1 - 1
apps/app/src/client/components/Admin/App/PageBulkExportSettings.tsx

@@ -1,5 +1,5 @@
 import {
-  useState, useCallback, useEffect,
+  useState, useCallback, useEffect, type JSX,
 } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';

+ 1 - 1
apps/app/src/client/components/Admin/App/QuestionnaireSettings.tsx

@@ -1,5 +1,5 @@
 import {
-  useState, useCallback, useEffect,
+  useState, useCallback, useEffect, type JSX,
 } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';

+ 1 - 1
apps/app/src/client/components/Admin/Common/AdminInstallButtonRow.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 type Props = {
   onClick: () => void,

+ 1 - 1
apps/app/src/client/components/Admin/Common/AdminUpdateButtonRow.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/Common/LabeledProgressBar.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { Progress } from 'reactstrap';
 

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeCssSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeFunctionOption.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 type Props = {
   optionId: string

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeFunctionSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeLayoutSetting.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useCallback, useEffect, useState,
+  useCallback, useEffect, useState, type JSX,
 } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeLogoSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback, useState } from 'react';
+import React, { useCallback, useState, type JSX } from 'react';
 
 import { useTranslation } from 'react-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeNoscriptSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { PrismAsyncLight } from 'react-syntax-highlighter';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizePresentationSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeScriptSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { PrismAsyncLight } from 'react-syntax-highlighter';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeSidebarSetting.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/CustomizeThemeOptions.tsx

@@ -1,4 +1,4 @@
-import React, { useMemo } from 'react';
+import React, { useMemo, type JSX } from 'react';
 
 import { type GrowiThemeMetadata, GrowiThemeSchemeType } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 3 - 1
apps/app/src/client/components/Admin/Customize/CustomizeThemeSetting.tsx

@@ -1,4 +1,6 @@
-import React, { useCallback, useEffect, useState } from 'react';
+import React, {
+  useCallback, useEffect, useState, type JSX,
+} from 'react';
 
 import { PresetThemes, PresetThemesMetadatas } from '@growi/preset-themes';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Customize/ThemeColorBox.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import type { GrowiThemeMetadata } from '@growi/core';
 

+ 1 - 1
apps/app/src/client/components/Admin/ElasticsearchManagement/NormalizeIndicesControls.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/ElasticsearchManagement/ReconnectControls.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/ExportArchiveData/ArchiveFilesTable.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { format } from 'date-fns/format';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/ExportArchiveData/ArchiveFilesTableMenu.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 3 - 1
apps/app/src/client/components/Admin/ExportArchiveData/SelectCollectionsModal.tsx

@@ -1,4 +1,6 @@
-import React, { useCallback, useState, useEffect } from 'react';
+import React, {
+  useCallback, useState, useEffect, type JSX,
+} from 'react';
 
 import { useTranslation } from 'next-i18next';
 import {

+ 3 - 1
apps/app/src/client/components/Admin/ExportArchiveDataPage.tsx

@@ -1,4 +1,6 @@
-import React, { useCallback, useEffect, useState } from 'react';
+import React, {
+  useCallback, useEffect, useState, type JSX,
+} from 'react';
 
 import { useTranslation } from 'react-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/ForbiddenPage.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import DefaultErrorPage from 'next/error';
 import { useTranslation } from 'react-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/FullTextSearchManagement.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/G2GDataTransfer.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useCallback, useEffect, useState,
+  useCallback, useEffect, useState, type JSX,
 } from 'react';
 
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/G2GDataTransferExportForm.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useState, useEffect, useCallback, useMemo,
+  useState, useEffect, useCallback, useMemo, type JSX,
 } from 'react';
 
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/G2GDataTransferStatusIcon.tsx

@@ -1,4 +1,4 @@
-import React, { type ComponentPropsWithoutRef } from 'react';
+import React, { type ComponentPropsWithoutRef, type JSX } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';
 

+ 1 - 1
apps/app/src/client/components/Admin/ImportData/GrowiArchive/ErrorViewer.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { Modal, ModalHeader, ModalBody } from 'reactstrap';
 

+ 1 - 1
apps/app/src/client/components/Admin/ManageExternalAccount.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback, useEffect } from 'react';
+import React, { useCallback, useEffect, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import Link from 'next/link';

+ 1 - 1
apps/app/src/client/components/Admin/MarkdownSetting/MarkDownSettingContents.tsx

@@ -1,4 +1,4 @@
-import React, { useEffect } from 'react';
+import React, { useEffect, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';

+ 1 - 1
apps/app/src/client/components/Admin/MarkdownSetting/WhitelistInput.tsx

@@ -1,4 +1,4 @@
-import { useCallback, useRef } from 'react';
+import { useCallback, useRef, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/NotFoundPage.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/Notification/ManageGlobalNotification.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useCallback, useMemo, useEffect, useState,
+  useCallback, useMemo, useEffect, useState, type JSX,
 } from 'react';
 
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Notification/NotificationTypeIcon.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { UncontrolledTooltip } from 'reactstrap';
 

+ 1 - 1
apps/app/src/client/components/Admin/Security/LdapAuthTest.tsx

@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React, { useState, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/Admin/SlackIntegration/BotTypeCard.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { SlackbotType } from '@growi/slack';
 import { useTranslation } from 'next-i18next';

+ 3 - 0
apps/app/src/client/components/Admin/SlackIntegration/Bridge.tsx

@@ -1,7 +1,10 @@
 
+import type { JSX } from 'react';
+
 import { useTranslation } from 'next-i18next';
 import { UncontrolledTooltip } from 'reactstrap';
 
+
 const ProxyCircle = () => (
   <div className="grw-bridge-proxy-circle position-relative">
     <div className="circle position-absolute m-auto z-1 bg-primary border-light rounded-circle">

+ 1 - 1
apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithProxyConnectionStatus.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import type { ConnectionStatus } from '@growi/slack';
 import Image from 'next/image';

+ 1 - 1
apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithoutProxyConnectionStatus.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import type { ConnectionStatus } from '@growi/slack';
 import Image from 'next/image';

+ 2 - 1
apps/app/src/client/components/Admin/SlackIntegration/MessageBasedOnConnection.jsx

@@ -1,6 +1,7 @@
 import React from 'react';
-import PropTypes from 'prop-types';
+
 import { useTranslation } from 'next-i18next';
+import PropTypes from 'prop-types';
 
 
 const MessageBasedOnConnection = (props) => {

+ 3 - 0
apps/app/src/client/components/Admin/SlackIntegration/SlackAppIntegrationControl.tsx

@@ -1,6 +1,9 @@
 
+import type { JSX } from 'react';
+
 import { useTranslation } from 'next-i18next';
 
+
 type Props = {
   slackAppIntegration: {
     _id: string,

+ 3 - 1
apps/app/src/client/components/Admin/SlackIntegration/SlackIntegration.tsx

@@ -1,4 +1,6 @@
-import React, { useState, useEffect, useCallback } from 'react';
+import React, {
+  useState, useEffect, useCallback, type JSX,
+} from 'react';
 
 import { SlackbotType } from '@growi/slack';
 import { LoadingSpinner } from '@growi/ui/dist/components';

+ 2 - 1
apps/app/src/client/components/Admin/UserGroup/UserGroupDropdown.tsx

@@ -1,4 +1,5 @@
-import React, { FC, useCallback } from 'react';
+import type { FC } from 'react';
+import React, { useCallback } from 'react';
 
 import type { IUserGroupHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/UserGroup/UserGroupTable.tsx

@@ -1,4 +1,4 @@
-import type { FC } from 'react';
+import type { FC, JSX } from 'react';
 import React, { useState, useEffect } from 'react';
 
 import type { IUserGroupHasId, IUserGroupRelation, IUserHasId } from '@growi/core';

+ 1 - 1
apps/app/src/client/components/Admin/UserGroupDetail/UserGroupDetailPage.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useState, useCallback, useEffect,
+  useState, useCallback, useEffect, type JSX,
 } from 'react';
 
 import {

+ 3 - 1
apps/app/src/client/components/Admin/UserGroupDetail/UserGroupPageList.tsx

@@ -1,4 +1,6 @@
-import React, { useEffect, useState, useCallback } from 'react';
+import React, {
+  useEffect, useState, useCallback, type JSX,
+} from 'react';
 
 import type { IPageHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/UserGroupDetail/UserGroupUserModal.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import type { IUserGroupHasId, IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/UserGroupDetail/UserGroupUserTable.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { UserPicture } from '@growi/ui/dist/components';
 import { format as dateFnsFormat } from 'date-fns/format';

+ 1 - 1
apps/app/src/client/components/Admin/Users/ExternalAccountTable.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IAdminExternalAccount } from '@growi/core';
 import { format as dateFnsFormat } from 'date-fns/format';

+ 1 - 1
apps/app/src/client/components/Admin/Users/GrantAdminButton.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Users/GrantReadOnlyButton.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Users/RevokeAdminButton.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Users/RevokeAdminMenuItem.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Users/RevokeReadOnlyMenuItem.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/Admin/Users/SortIcons.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 type SortIconsProps = {
   onClick: (sortOrder: string) => void,

+ 1 - 1
apps/app/src/client/components/Admin/Users/StatusSuspendMenuItem.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 2 - 0
apps/app/src/client/components/AlertSiteUrlUndefined.tsx

@@ -1,3 +1,5 @@
+import type { JSX } from 'react';
+
 import { useTranslation } from 'next-i18next';
 
 import { useSiteUrl } from '~/stores-universal/context';

+ 1 - 1
apps/app/src/client/components/AuthorInfo/AuthorInfo.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { isPopulated, type IUser, type Ref } from '@growi/core';

+ 1 - 1
apps/app/src/client/components/Bookmarks/BookmarkFolderItemControl.tsx

@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React, { useState, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 import {

+ 3 - 1
apps/app/src/client/components/Bookmarks/BookmarkFolderMenu.tsx

@@ -1,4 +1,6 @@
-import React, { useCallback, useMemo, useState } from 'react';
+import React, {
+  useCallback, useMemo, useState, type JSX,
+} from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { DropdownItem, DropdownMenu, UncontrolledDropdown } from 'reactstrap';

+ 1 - 1
apps/app/src/client/components/Bookmarks/BookmarkFolderNameInput.tsx

@@ -1,4 +1,4 @@
-import type { ChangeEvent } from 'react';
+import type { ChangeEvent, JSX } from 'react';
 import { useCallback, useRef, useState } from 'react';
 
 import { useRect } from '@growi/ui/dist/utils';

+ 1 - 1
apps/app/src/client/components/Bookmarks/BookmarkItem.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback, useState } from 'react';
+import React, { useCallback, useState, type JSX } from 'react';
 
 import nodePath from 'path';
 

+ 1 - 1
apps/app/src/client/components/Bookmarks/BookmarkItemRenameInput.tsx

@@ -1,4 +1,4 @@
-import type { ChangeEvent } from 'react';
+import type { ChangeEvent, JSX } from 'react';
 import { useCallback, useRef, useState } from 'react';
 
 import { useRect } from '@growi/ui/dist/utils';

+ 1 - 1
apps/app/src/client/components/Bookmarks/DragAndDropWrapper.tsx

@@ -1,4 +1,4 @@
-import type { ReactNode } from 'react';
+import type { ReactNode, JSX } from 'react';
 
 import { useDrag, useDrop } from 'react-dnd';
 

+ 3 - 1
apps/app/src/client/components/Comments.tsx

@@ -1,4 +1,6 @@
-import React, { useEffect, useMemo, useRef } from 'react';
+import React, {
+  useEffect, useMemo, useRef, type JSX,
+} from 'react';
 
 import type { IRevisionHasId } from '@growi/core';
 import { pagePathUtils } from '@growi/core/dist/utils';

+ 1 - 1
apps/app/src/client/components/Common/DrawerToggler/DrawerToggler.tsx

@@ -1,4 +1,4 @@
-import { type ReactNode } from 'react';
+import { type ReactNode, type JSX } from 'react';
 
 import { useDrawerOpened } from '~/stores/ui';
 

+ 1 - 1
apps/app/src/client/components/Common/Dropdown/PageItemControl.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useState, useCallback, useEffect,
+  useState, useCallback, useEffect, type JSX,
 } from 'react';
 
 import {

+ 1 - 1
apps/app/src/client/components/Common/LazyRenderer.tsx

@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react';
+import React, { useEffect, useState, type JSX } from 'react';
 
 type Props = {
   shouldRender: boolean | (() => boolean),

+ 1 - 1
apps/app/src/client/components/ContentLinkButtons.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { USER_STATUS, type IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/CustomNavigation/CustomNav.tsx

@@ -1,5 +1,5 @@
 import React, {
-  useEffect, useState, useRef, useMemo, useCallback,
+  useEffect, useState, useRef, useMemo, useCallback, type JSX,
 } from 'react';
 
 import type { Breakpoint } from '@growi/ui/dist/interfaces';

+ 2 - 1
apps/app/src/client/components/CustomNavigation/CustomNavAndContents.tsx

@@ -1,4 +1,5 @@
-import React, { ReactNode, useState } from 'react';
+import type { ReactNode } from 'react';
+import React, { useState, type JSX } from 'react';
 
 import CustomNav, { CustomNavTab, CustomNavDropdown } from './CustomNav';
 import CustomTabContent from './CustomTabContent';

+ 1 - 1
apps/app/src/client/components/CustomNavigation/CustomTabContent.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import {
   TabContent, TabPane,

+ 1 - 1
apps/app/src/client/components/DataTransferForm.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/DeleteBookmarkFolderModal.tsx

@@ -7,9 +7,9 @@ import {
   Modal, ModalBody, ModalFooter, ModalHeader,
 } from 'reactstrap';
 
+import { FolderIcon } from '~/client/components/Icons/FolderIcon';
 import { deleteBookmarkFolder } from '~/client/util/bookmark-utils';
 import { toastError } from '~/client/util/toastr';
-import { FolderIcon } from '~/client/components/Icons/FolderIcon';
 import { useBookmarkFolderDeleteModal } from '~/stores/modal';
 
 

+ 1 - 1
apps/app/src/client/components/DescendantsPageList.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback, useState } from 'react';
+import React, { useCallback, useState, type JSX } from 'react';
 
 import type {
   IDataWithMeta,

+ 3 - 1
apps/app/src/client/components/DescendantsPageListModal.tsx

@@ -1,5 +1,7 @@
 
-import React, { useState, useMemo, useEffect } from 'react';
+import React, {
+  useState, useMemo, useEffect, type JSX,
+} from 'react';
 
 import { useTranslation } from 'next-i18next';
 import dynamic from 'next/dynamic';

+ 1 - 1
apps/app/src/client/components/EmptyTrashButton.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/ForbiddenPage.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 import { useTranslation } from 'next-i18next';
 

+ 1 - 1
apps/app/src/client/components/GrantedGroupsInheritanceSelectModal.tsx

@@ -1,4 +1,4 @@
-import { useState } from 'react';
+import { useState, type JSX } from 'react';
 
 import { useTranslation } from 'react-i18next';
 import {

+ 1 - 1
apps/app/src/client/components/Hotkeys/Subscribers/ShowShortcutsModal.tsx

@@ -1,4 +1,4 @@
-import React, { useEffect } from 'react';
+import React, { useEffect, type JSX } from 'react';
 
 import { useShortcutsModal } from '~/stores/modal';
 

+ 1 - 1
apps/app/src/client/components/Icons/FolderIcon.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 type Props = {
   isOpen: boolean

+ 1 - 1
apps/app/src/client/components/Icons/RecentlyCreatedIcon.tsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { type JSX } from 'react';
 
 export const RecentlyCreatedIcon = (): JSX.Element => (
   <svg

+ 1 - 1
apps/app/src/client/components/IdenticalPathPage.tsx

@@ -1,4 +1,4 @@
-import type { FC } from 'react';
+import type { FC, JSX } from 'react';
 import React from 'react';
 
 import { DevidedPagePath } from '@growi/core/dist/models';

+ 3 - 1
apps/app/src/client/components/InAppNotification/InAppNotificationDropdown.tsx

@@ -1,4 +1,6 @@
-import React, { useState, useEffect, useRef } from 'react';
+import React, {
+  useState, useEffect, useRef, type JSX,
+} from 'react';
 
 import { useTranslation } from 'next-i18next';
 import { useRipple } from 'react-use-ripple';

+ 1 - 1
apps/app/src/client/components/InAppNotification/InAppNotificationElm.tsx

@@ -1,4 +1,4 @@
-import type { FC } from 'react';
+import type { FC, JSX } from 'react';
 import React from 'react';
 
 import type { HasObjectId } from '@growi/core';

+ 1 - 1
apps/app/src/client/components/InAppNotification/ModelNotification/ModelNotification.tsx

@@ -1,4 +1,4 @@
-import type { FC } from 'react';
+import type { FC, JSX } from 'react';
 import React from 'react';
 
 import type { HasObjectId } from '@growi/core';

+ 1 - 1
apps/app/src/client/components/InAppNotification/ModelNotification/PageBulkExportJobModelNotification.tsx

@@ -33,7 +33,7 @@ export const usePageBulkExportJobModelNotification = (notification: IInAppNotifi
 
   notification.parsedSnapshot = pageBulkExportJobSerializers.parseSnapshot(notification.snapshot);
 
-  const getSubMsg = (): React.ReactElement => {
+  const getSubMsg = (): JSX.Element => {
     if (notification.action === SupportedAction.ACTION_PAGE_BULK_EXPORT_COMPLETED && notification.target == null) {
       return <div className="text-danger"><small>{t('page_export.bulk_export_download_expired')}</small></div>;
     }

+ 2 - 2
apps/app/src/client/components/InfiniteScroll.tsx

@@ -1,4 +1,4 @@
-import type { Ref } from 'react';
+import type { Ref, JSX } from 'react';
 import React, { useEffect, useState } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';
@@ -30,7 +30,7 @@ const useIntersection = <E extends HTMLElement>(): [boolean, Ref<E>] => {
   return [intersecting, (el) => { if (el != null) setElement(el); }];
 };
 
-const LoadingIndicator = (): React.ReactElement => {
+const LoadingIndicator = (): JSX.Element => {
   return (
     <div className="text-muted text-center">
       <LoadingSpinner className="me-1 fs-3" />

+ 1 - 1
apps/app/src/client/components/InstallerForm.tsx

@@ -1,4 +1,4 @@
-import type { FormEventHandler } from 'react';
+import type { FormEventHandler, JSX } from 'react';
 import { memo, useCallback, useState } from 'react';
 
 import { Lang, AllLang } from '@growi/core';

+ 1 - 1
apps/app/src/client/components/InvitedForm.tsx

@@ -1,4 +1,4 @@
-import React, { useCallback, useState } from 'react';
+import React, { useCallback, useState, type JSX } from 'react';
 
 import { LoadingSpinner } from '@growi/ui/dist/components';
 import { useTranslation } from 'next-i18next';

+ 1 - 1
apps/app/src/client/components/ItemsTree/ItemNode.ts

@@ -1,4 +1,4 @@
-import { IPageForItem } from '../../../interfaces/page';
+import type { IPageForItem } from '../../../interfaces/page';
 
 export class ItemNode {
 

+ 1 - 3
apps/app/src/client/components/ItemsTree/ItemsTree.tsx

@@ -1,6 +1,4 @@
-import React, {
-  useEffect, useCallback,
-} from 'react';
+import React, { useEffect, useCallback, type JSX } from 'react';
 
 import path from 'path';
 

+ 3 - 0
apps/app/src/client/components/ItemsTree/ItemsTreeContentSkeleton.tsx

@@ -1,7 +1,10 @@
+import type { JSX } from 'react';
+
 import { Skeleton } from '~/client/components/Skeleton';
 
 import styles from './ItemsTreeContentSkeleton.module.scss';
 
+
 const ItemsTreeContentSkeleton = (): JSX.Element => {
 
   return (

Some files were not shown because too many files changed in this diff