Przeglądaj źródła

Merge branch 'master' into fix/gw7931-fix-dnd-behavior

ryoji-s 3 lat temu
rodzic
commit
53f4cee776
100 zmienionych plików z 228 dodań i 220 usunięć
  1. 73 1
      CHANGELOG.md
  2. 1 1
      lerna.json
  3. 1 1
      package.json
  4. 1 1
      packages/app/docker/README.md
  5. 12 11
      packages/app/package.json
  6. 1 2
      packages/app/public/static/locales/en_US/admin.json
  7. 1 2
      packages/app/public/static/locales/ja_JP/admin.json
  8. 1 2
      packages/app/public/static/locales/zh_CN/admin.json
  9. 5 8
      packages/app/resource/locales/en_US/sandbox.md
  10. 5 8
      packages/app/resource/locales/ja_JP/sandbox.md
  11. 5 8
      packages/app/resource/locales/zh_CN/sandbox.md
  12. 0 1
      packages/app/src/client/services/AdminCustomizeContainer.js
  13. 1 1
      packages/app/src/client/services/AdminGeneralSecurityContainer.js
  14. 7 7
      packages/app/src/client/services/AdminImportContainer.js
  15. 1 1
      packages/app/src/client/services/page-operation.ts
  16. 0 7
      packages/app/src/client/util/apiNotification.js
  17. 0 53
      packages/app/src/client/util/toastr.ts
  18. 1 1
      packages/app/src/components/Admin/AdminHome/AdminHome.jsx
  19. 1 1
      packages/app/src/components/Admin/App/AppSetting.jsx
  20. 1 1
      packages/app/src/components/Admin/App/AppSettingsPageContents.tsx
  21. 1 1
      packages/app/src/components/Admin/App/FileUploadSetting.tsx
  22. 1 1
      packages/app/src/components/Admin/App/MailSetting.tsx
  23. 1 1
      packages/app/src/components/Admin/App/MaintenanceMode.tsx
  24. 1 1
      packages/app/src/components/Admin/App/SiteUrlSetting.tsx
  25. 11 6
      packages/app/src/components/Admin/App/V5PageMigration.tsx
  26. 1 1
      packages/app/src/components/Admin/AuditLogManagement.tsx
  27. 1 1
      packages/app/src/components/Admin/Customize/Customize.jsx
  28. 1 1
      packages/app/src/components/Admin/Customize/CustomizeCssSetting.tsx
  29. 1 1
      packages/app/src/components/Admin/Customize/CustomizeFunctionSetting.tsx
  30. 1 1
      packages/app/src/components/Admin/Customize/CustomizeLayoutSetting.tsx
  31. 1 1
      packages/app/src/components/Admin/Customize/CustomizeLogoSetting.tsx
  32. 1 1
      packages/app/src/components/Admin/Customize/CustomizeNoscriptSetting.tsx
  33. 1 1
      packages/app/src/components/Admin/Customize/CustomizeScriptSetting.tsx
  34. 1 1
      packages/app/src/components/Admin/Customize/CustomizeSidebarSetting.tsx
  35. 1 1
      packages/app/src/components/Admin/Customize/CustomizeTitle.tsx
  36. 2 2
      packages/app/src/components/Admin/ElasticsearchManagement/ElasticsearchManagement.tsx
  37. 1 1
      packages/app/src/components/Admin/ExportArchiveData/ArchiveFilesTableMenu.tsx
  38. 1 1
      packages/app/src/components/Admin/ExportArchiveData/SelectCollectionsModal.tsx
  39. 1 1
      packages/app/src/components/Admin/G2GDataTransfer.tsx
  40. 1 1
      packages/app/src/components/Admin/ImportData/GrowiArchive/ImportCollectionConfigurationModal.jsx
  41. 3 3
      packages/app/src/components/Admin/ImportData/GrowiArchive/ImportForm.jsx
  42. 1 1
      packages/app/src/components/Admin/ImportData/GrowiArchive/UploadForm.jsx
  43. 1 1
      packages/app/src/components/Admin/ImportData/GrowiArchiveSection.jsx
  44. 1 1
      packages/app/src/components/Admin/ImportData/ImportDataPageContents.jsx
  45. 1 1
      packages/app/src/components/Admin/LegacySlackIntegration/LegacySlackIntegration.jsx
  46. 1 1
      packages/app/src/components/Admin/LegacySlackIntegration/SlackConfiguration.jsx
  47. 1 1
      packages/app/src/components/Admin/ManageExternalAccount.tsx
  48. 1 1
      packages/app/src/components/Admin/MarkdownSetting/IndentForm.tsx
  49. 1 1
      packages/app/src/components/Admin/MarkdownSetting/LineBreakForm.jsx
  50. 1 1
      packages/app/src/components/Admin/MarkdownSetting/MarkDownSettingContents.tsx
  51. 1 1
      packages/app/src/components/Admin/MarkdownSetting/XssForm.jsx
  52. 1 1
      packages/app/src/components/Admin/Notification/GlobalNotification.jsx
  53. 1 1
      packages/app/src/components/Admin/Notification/GlobalNotificationList.jsx
  54. 1 1
      packages/app/src/components/Admin/Notification/ManageGlobalNotification.tsx
  55. 1 1
      packages/app/src/components/Admin/Notification/NotificationSetting.jsx
  56. 1 1
      packages/app/src/components/Admin/Notification/UserTriggerNotification.jsx
  57. 1 1
      packages/app/src/components/Admin/Security/GitHubSecuritySetting.jsx
  58. 1 1
      packages/app/src/components/Admin/Security/GitHubSecuritySettingContents.jsx
  59. 1 1
      packages/app/src/components/Admin/Security/GoogleSecuritySetting.jsx
  60. 1 1
      packages/app/src/components/Admin/Security/GoogleSecuritySettingContents.jsx
  61. 2 2
      packages/app/src/components/Admin/Security/LdapAuthTest.tsx
  62. 1 1
      packages/app/src/components/Admin/Security/LdapSecuritySetting.jsx
  63. 2 2
      packages/app/src/components/Admin/Security/LdapSecuritySettingContents.jsx
  64. 1 1
      packages/app/src/components/Admin/Security/LocalSecuritySetting.jsx
  65. 1 1
      packages/app/src/components/Admin/Security/LocalSecuritySettingContents.jsx
  66. 1 1
      packages/app/src/components/Admin/Security/OidcSecuritySetting.jsx
  67. 1 1
      packages/app/src/components/Admin/Security/OidcSecuritySettingContents.jsx
  68. 1 1
      packages/app/src/components/Admin/Security/SamlSecuritySetting.jsx
  69. 1 1
      packages/app/src/components/Admin/Security/SamlSecuritySettingContents.jsx
  70. 1 1
      packages/app/src/components/Admin/Security/SecurityManagement.tsx
  71. 5 5
      packages/app/src/components/Admin/Security/SecuritySetting.jsx
  72. 1 1
      packages/app/src/components/Admin/Security/ShareLinkSetting.tsx
  73. 4 4
      packages/app/src/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx
  74. 1 1
      packages/app/src/components/Admin/SlackIntegration/CustomBotWithoutProxySecretTokenSection.jsx
  75. 1 1
      packages/app/src/components/Admin/SlackIntegration/ManageCommandsProcess.jsx
  76. 1 1
      packages/app/src/components/Admin/SlackIntegration/ManageCommandsProcessWithoutProxy.jsx
  77. 2 2
      packages/app/src/components/Admin/SlackIntegration/OfficialBotSettings.jsx
  78. 1 1
      packages/app/src/components/Admin/SlackIntegration/SlackIntegration.jsx
  79. 1 1
      packages/app/src/components/Admin/SlackIntegration/WithProxyAccordions.jsx
  80. 1 1
      packages/app/src/components/Admin/UserGroup/UserGroupPage.tsx
  81. 1 1
      packages/app/src/components/Admin/UserGroupDetail/UserGroupDetailPage.tsx
  82. 1 1
      packages/app/src/components/Admin/UserGroupDetail/UserGroupPageList.tsx
  83. 1 1
      packages/app/src/components/Admin/UserGroupDetail/UserGroupUserFormByInput.jsx
  84. 1 1
      packages/app/src/components/Admin/UserManagement.tsx
  85. 1 1
      packages/app/src/components/Admin/Users/ExternalAccountTable.tsx
  86. 1 1
      packages/app/src/components/Admin/Users/GiveAdminButton.tsx
  87. 2 2
      packages/app/src/components/Admin/Users/PasswordResetModal.jsx
  88. 1 1
      packages/app/src/components/Admin/Users/RemoveAdminButton.tsx
  89. 1 1
      packages/app/src/components/Admin/Users/RemoveAdminMenuItem.tsx
  90. 1 1
      packages/app/src/components/Admin/Users/SendInvitationEmailButton.jsx
  91. 1 1
      packages/app/src/components/Admin/Users/StatusActivateButton.jsx
  92. 1 1
      packages/app/src/components/Admin/Users/StatusSuspendMenuItem.tsx
  93. 1 1
      packages/app/src/components/Admin/Users/UserInviteModal.jsx
  94. 1 1
      packages/app/src/components/Admin/Users/UserRemoveButton.jsx
  95. 1 1
      packages/app/src/components/ArchiveCreateModal.jsx
  96. 1 1
      packages/app/src/components/Common/ImageCropModal.tsx
  97. 3 3
      packages/app/src/components/CompleteUserRegistrationForm.tsx
  98. 1 1
      packages/app/src/components/DescendantsPageList.tsx
  99. 1 1
      packages/app/src/components/InAppNotification/InAppNotificationDropdown.tsx
  100. 5 2
      packages/app/src/components/InstallerForm.tsx

+ 73 - 1
CHANGELOG.md

@@ -1,9 +1,81 @@
 # Changelog
 # Changelog
 
 
-## [Unreleased](https://github.com/weseek/growi/compare/v6.0.8...HEAD)
+## [Unreleased](https://github.com/weseek/growi/compare/v6.0.14...HEAD)
 
 
 *Please do not manually update this file. We've automated the process.*
 *Please do not manually update this file. We've automated the process.*
 
 
+## [v6.0.14](https://github.com/weseek/growi/compare/v6.0.13...v6.0.14) - 2023-04-04
+
+### 🐛 Bug Fixes
+
+- fix(drawio): Set compressXml option (#7536) @yuki-takei
+- fix(drawio): Rendering uncompressed data (#7537) @yuki-takei
+
+## [v6.0.13](https://github.com/weseek/growi/compare/v6.0.12...v6.0.13) - 2023-04-03
+
+### 🐛 Bug Fixes
+
+- fix: The "note" and "keep" commands of the GROWI bot are not functioning (#7529) @miya
+- fix: The "search" command of the GROWI bot is not functioning (#7525) @miya
+- fix: Lsx filter and except option do not work when the path includes special characters (#7523) @yuki-takei
+
+## [v6.0.12](https://github.com/weseek/growi/compare/v6.0.11...v6.0.12) - 2023-03-30
+
+### 🐛 Bug Fixes
+
+- fix: DrawioViewer script URL (#7518) @yuki-takei
+
+## [v6.0.11](https://github.com/weseek/growi/compare/v6.0.10...v6.0.11) - 2023-03-29
+
+### 🚀 Improvement
+
+- imprv: ToC placeholder (#7506) @yuki-takei
+
+### 🐛 Bug Fixes
+
+- fix: Support draw.io v21.1.0 (support both of compressed/uncompressed data) (#7515) @yuki-takei
+- fix: The same level template page is being applied to lower level pages unintentionally (#7510) @miya
+- fix: Supress `activeTab` prop type error (#7504) @jam411
+
+## [v6.0.10](https://github.com/weseek/growi/compare/v6.0.9...v6.0.10) - 2023-03-23
+
+### 🚀 Improvement
+
+- imprv: Reverse switch for display or hidden page settings (#7483) @yuki-takei
+
+### 🐛 Bug Fixes
+
+- fix: CodeBlock string is be `[object Object]` if searched (#7484) @jam411
+- fix: Show handsontable edit modal color in dark theme  (#7497) @yukendev
+- fix: Error when transitioning to a user home page where creator does not exist (#7499) @miya
+- fix: Attachment links do not work correctly (#7498) @jam411
+- fix: Language selection dropdown in installer does not reflect browser language setting (#7494) @miya
+- fix:  Search results are not highlighted when searching for quoteted words (PageListItemL) (#7491) @miya
+- fix: Responses 500 status code when invalid regular expressions are inputted to lsx's execpt option (#7488) @jam411
+- fix: Page paths in search results are not displayed correctly (#7463) @miya
+
+## [v6.0.9](https://github.com/weseek/growi/compare/v6.0.8...v6.0.9) - 2023-03-14
+
+### 💎 Features
+
+- feat: Replaced with new toast (#7466) @mudana-grune
+
+### 🚀 Improvement
+
+- imprv: Page path hierarchical link color (#7474) @yuki-takei
+- imprv: Add markdown header link (h4, h5, h6) (#7465) @miya
+- imprv: Include anyone with the link page in the deletion target (#7461) @miya
+
+### 🐛 Bug Fixes
+
+- fix: Scrolling table in preview causes editor to scroll to row 1 (workaround) (#7473) @miya
+- fix: Internal server error when input wrong tag to markdown (#7471) @jam411
+- fix: Search results are not highlighted when searching for quoteted words (#7443) @miya
+
+### 🧰 Maintenance
+
+- support: Bump Next.js to v13 (#7458) @yuki-takei
+
 ## [v6.0.8](https://github.com/weseek/growi/compare/v6.0.7...v6.0.8) - 2023-03-06
 ## [v6.0.8](https://github.com/weseek/growi/compare/v6.0.7...v6.0.8) - 2023-03-06
 
 
 ### 💎 Features
 ### 💎 Features

+ 1 - 1
lerna.json

@@ -1,7 +1,7 @@
 {
 {
   "npmClient": "yarn",
   "npmClient": "yarn",
   "useWorkspaces": true,
   "useWorkspaces": true,
-  "version": "6.0.9-RC.0",
+  "version": "6.0.15-RC.0",
   "packages": [
   "packages": [
     "packages/*"
     "packages/*"
   ]
   ]

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "growi",
   "name": "growi",
-  "version": "6.0.9-RC.0",
+  "version": "6.0.15-RC.0",
   "description": "Team collaboration software using markdown",
   "description": "Team collaboration software using markdown",
   "tags": [
   "tags": [
     "wiki",
     "wiki",

+ 1 - 1
packages/app/docker/README.md

@@ -10,7 +10,7 @@ GROWI Official docker image
 Supported tags and respective Dockerfile links
 Supported tags and respective Dockerfile links
 ------------------------------------------------
 ------------------------------------------------
 
 
-* [`6.0.8`, `6.0`, `6`, `latest` (Dockerfile)](https://github.com/weseek/growi/blob/v6.0.8/packages/app/docker/Dockerfile)
+* [`6.0.14`, `6.0`, `6`, `latest` (Dockerfile)](https://github.com/weseek/growi/blob/v6.0.14/packages/app/docker/Dockerfile)
 * [`5.1.7`, `5.1`, `5`](https://github.com/weseek/growi/blob/v5.1.7/packages/app/docker/Dockerfile)
 * [`5.1.7`, `5.1`, `5`](https://github.com/weseek/growi/blob/v5.1.7/packages/app/docker/Dockerfile)
 * [`5.1.7-nocdn`, `5.1-nocdn`, `5-nocdn`](https://github.com/weseek/growi/blob/v5.1.7/packages/app/docker/Dockerfile)
 * [`5.1.7-nocdn`, `5.1-nocdn`, `5-nocdn`](https://github.com/weseek/growi/blob/v5.1.7/packages/app/docker/Dockerfile)
 * [`4.5.23`, `4.5`, `4`, `latest` (Dockerfile)](https://github.com/weseek/growi/blob/v4.5.23/packages/app/docker/Dockerfile)
 * [`4.5.23`, `4.5`, `4`, `latest` (Dockerfile)](https://github.com/weseek/growi/blob/v4.5.23/packages/app/docker/Dockerfile)

+ 12 - 11
packages/app/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "@growi/app",
   "name": "@growi/app",
-  "version": "6.0.9-RC.0",
+  "version": "6.0.15-RC.0",
   "license": "MIT",
   "license": "MIT",
   "scripts": {
   "scripts": {
     "//// for production": "",
     "//// for production": "",
@@ -66,14 +66,14 @@
     "@elastic/elasticsearch7": "npm:@elastic/elasticsearch@^7.17.0",
     "@elastic/elasticsearch7": "npm:@elastic/elasticsearch@^7.17.0",
     "@godaddy/terminus": "^4.9.0",
     "@godaddy/terminus": "^4.9.0",
     "@google-cloud/storage": "^5.8.5",
     "@google-cloud/storage": "^5.8.5",
-    "@growi/codemirror-textlint": "^6.0.9-RC.0",
-    "@growi/core": "^6.0.9-RC.0",
-    "@growi/hackmd": "^6.0.9-RC.0",
-    "@growi/preset-themes": "^6.0.9-RC.0",
-    "@growi/remark-drawio": "^6.0.9-RC.0",
-    "@growi/remark-growi-directive": "^6.0.9-RC.0",
-    "@growi/remark-lsx": "^6.0.9-RC.0",
-    "@growi/slack": "^6.0.9-RC.0",
+    "@growi/codemirror-textlint": "^6.0.15-RC.0",
+    "@growi/core": "^6.0.15-RC.0",
+    "@growi/hackmd": "^6.0.15-RC.0",
+    "@growi/preset-themes": "^6.0.15-RC.0",
+    "@growi/remark-drawio": "^6.0.15-RC.0",
+    "@growi/remark-growi-directive": "^6.0.15-RC.0",
+    "@growi/remark-lsx": "^6.0.15-RC.0",
+    "@growi/slack": "^6.0.15-RC.0",
     "@promster/express": "^7.0.6",
     "@promster/express": "^7.0.6",
     "@promster/server": "^7.0.8",
     "@promster/server": "^7.0.8",
     "@slack/web-api": "^6.2.4",
     "@slack/web-api": "^6.2.4",
@@ -181,6 +181,7 @@
     "remark-emoji": "^3.0.2",
     "remark-emoji": "^3.0.2",
     "remark-gfm": "^3.0.1",
     "remark-gfm": "^3.0.1",
     "remark-math": "^5.1.1",
     "remark-math": "^5.1.1",
+    "remark-toc": "^8.0.1",
     "remark-wiki-link": "^1.0.4",
     "remark-wiki-link": "^1.0.4",
     "socket.io": "^4.2.0",
     "socket.io": "^4.2.0",
     "stream-to-promise": "^3.0.0",
     "stream-to-promise": "^3.0.0",
@@ -205,8 +206,8 @@
     "handsontable": "v7.0.0 or above is no loger MIT lisence."
     "handsontable": "v7.0.0 or above is no loger MIT lisence."
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@growi/presentation": "^6.0.9-RC.0",
-    "@growi/ui": "^6.0.9-RC.0",
+    "@growi/presentation": "^6.0.15-RC.0",
+    "@growi/ui": "^6.0.15-RC.0",
     "@handsontable/react": "=2.1.0",
     "@handsontable/react": "=2.1.0",
     "@icon/themify-icons": "1.0.1-alpha.3",
     "@icon/themify-icons": "1.0.1-alpha.3",
     "@next/bundle-analyzer": "^13.2.3",
     "@next/bundle-analyzer": "^13.2.3",

+ 1 - 2
packages/app/public/static/locales/en_US/admin.json

@@ -16,7 +16,7 @@
     "Guest Users Access": "Guest users access",
     "Guest Users Access": "Guest users access",
     "always_hidden": "Always hidden",
     "always_hidden": "Always hidden",
     "always_displayed": "Always displayed",
     "always_displayed": "Always displayed",
-    "displayed_or_hidden": "Displayed / Hidden",
+    "displayed_or_hidden": "Hidden / Displayed",
     "Fixed by env var": "This is fixed by the env var <code>{{key}}={{value}}</code>.",
     "Fixed by env var": "This is fixed by the env var <code>{{key}}={{value}}</code>.",
     "register_limitation": "Register limitation",
     "register_limitation": "Register limitation",
     "register_limitation_desc": "Restriction of new users' registration",
     "register_limitation_desc": "Restriction of new users' registration",
@@ -1031,7 +1031,6 @@
     "remove_user_success": "Succeeded to removing {{username}}",
     "remove_user_success": "Succeeded to removing {{username}}",
     "remove_external_user_success": "Succeeded to remove {{accountId}}",
     "remove_external_user_success": "Succeeded to remove {{accountId}}",
     "switch_disable_link_sharing_success": "Succeeded to update share link setting",
     "switch_disable_link_sharing_success": "Succeeded to update share link setting",
-    "failed_to_reset_password":"Failed to reset password",
     "install_plugin_success": "Succeeded to install {{pluginName}}",
     "install_plugin_success": "Succeeded to install {{pluginName}}",
     "activate_plugin_success": "Succeeded to activating {{pluginName}}",
     "activate_plugin_success": "Succeeded to activating {{pluginName}}",
     "deactivate_plugin_success": "Succeeded to deactivate {{pluginName}}",
     "deactivate_plugin_success": "Succeeded to deactivate {{pluginName}}",

+ 1 - 2
packages/app/public/static/locales/ja_JP/admin.json

@@ -24,7 +24,7 @@
     "Guest Users Access":"ゲストユーザーのアクセス",
     "Guest Users Access":"ゲストユーザーのアクセス",
     "always_hidden": "非表示 (固定)",
     "always_hidden": "非表示 (固定)",
     "always_displayed": "表示 (固定)",
     "always_displayed": "表示 (固定)",
-    "displayed_or_hidden": "表示 / 表示",
+    "displayed_or_hidden": "表示 / 表示",
     "Fixed by env var": "環境変数 <code>{{forcewikimode}}={{wikimode}}</code> により固定されています。",
     "Fixed by env var": "環境変数 <code>{{forcewikimode}}={{wikimode}}</code> により固定されています。",
     "register_limitation": "登録の制限",
     "register_limitation": "登録の制限",
     "register_limitation_desc": "新しいユーザーを登録する方法を制限します。",
     "register_limitation_desc": "新しいユーザーを登録する方法を制限します。",
@@ -1039,7 +1039,6 @@
     "remove_user_success": "{{username}}を削除しました",
     "remove_user_success": "{{username}}を削除しました",
     "remove_external_user_success": "{{accountId}}を削除しました",
     "remove_external_user_success": "{{accountId}}を削除しました",
     "switch_disable_link_sharing_success": "共有リンクの設定を変更しました",
     "switch_disable_link_sharing_success": "共有リンクの設定を変更しました",
-    "failed_to_reset_password":"パスワードのリセットに失敗しました",
     "install_plugin_success": "{{pluginName}}のインストールに成功しました",
     "install_plugin_success": "{{pluginName}}のインストールに成功しました",
     "activate_plugin_success": "{{pluginName}}を有効化しました",
     "activate_plugin_success": "{{pluginName}}を有効化しました",
     "deactivate_plugin_success": "{{pluginName}}を無効化しました",
     "deactivate_plugin_success": "{{pluginName}}を無効化しました",

+ 1 - 2
packages/app/public/static/locales/zh_CN/admin.json

@@ -23,7 +23,7 @@
     "set_point": "设定值",
     "set_point": "设定值",
     "always_displayed": "始终显示",
     "always_displayed": "始终显示",
     "always_hidden": "总是隐藏",
     "always_hidden": "总是隐藏",
-    "displayed_or_hidden": "显示/隐藏",
+    "displayed_or_hidden": "隐藏 / 显示",
     "Guest Users Access": "来宾用户访问",
     "Guest Users Access": "来宾用户访问",
 		"Fixed by env var": "这是由env var<code>%s=%s</code>修复的。",
 		"Fixed by env var": "这是由env var<code>%s=%s</code>修复的。",
 		"register_limitation": "注册限制",
 		"register_limitation": "注册限制",
@@ -1039,7 +1039,6 @@
     "remove_user_success": "Succeeded to removing {{username}}",
     "remove_user_success": "Succeeded to removing {{username}}",
     "remove_external_user_success": "Succeeded to remove {{accountId}}",
     "remove_external_user_success": "Succeeded to remove {{accountId}}",
     "switch_disable_link_sharing_success": "成功更新分享链接设置",
     "switch_disable_link_sharing_success": "成功更新分享链接设置",
-    "failed_to_reset_password":"Failed to reset password",
     "install_plugin_success": "Succeeded to install {{pluginName}}",
     "install_plugin_success": "Succeeded to install {{pluginName}}",
     "activate_plugin_success": "Succeeded to activating {{pluginName}}",
     "activate_plugin_success": "Succeeded to activating {{pluginName}}",
     "deactivate_plugin_success": "Succeeded to deactivate {{pluginName}}",
     "deactivate_plugin_success": "Succeeded to deactivate {{pluginName}}",

+ 5 - 8
packages/app/resource/locales/en_US/sandbox.md

@@ -1,16 +1,13 @@
-<div class="card">
-  <div class="card-body">
+# :memo: Table of Contents
 
 
-# Table of Contents
+Add `ToC` after some `#` signs.
+`Table of Contents` or `Table-of-Contents` is also OK.
 
 
 ```
 ```
-@[toc]
+# ToC
 ```
 ```
 
 
-@[toc]
-
-  </div>
-</div>
+## ToC
 
 
 # :memo: Block Elements
 # :memo: Block Elements
 
 

+ 5 - 8
packages/app/resource/locales/ja_JP/sandbox.md

@@ -1,16 +1,13 @@
-<div class="card">
-  <div class="card-body">
+# :memo: 目次
 
 
-# 目次
+いくつかの `#` 記号に続けて `ToC` という文字列を記述します。  
+`Table of Contents` または `Table-of-Contents` でも構いません。
 
 
 ```
 ```
-@[toc]
+# ToC
 ```
 ```
 
 
-@[toc]
-
-  </div>
-</div>
+## ToC
 
 
 # :memo: Block Elements
 # :memo: Block Elements
 
 

+ 5 - 8
packages/app/resource/locales/zh_CN/sandbox.md

@@ -1,16 +1,13 @@
-<div class="card">
-  <div class="card-body">
+# :memo: Table of Contents
 
 
-# Table of Contents
+Add `ToC` after some `#` signs.
+`Table of Contents` or `Table-of-Contents` is also OK.
 
 
 ```
 ```
-@[toc]
+# ToC
 ```
 ```
 
 
-@[toc]
-
-  </div>
-</div>
+## ToC
 
 
 # :memo: Block Elements
 # :memo: Block Elements
 
 

+ 0 - 1
packages/app/src/client/services/AdminCustomizeContainer.js

@@ -3,7 +3,6 @@ import { Container } from 'unstated';
 
 
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
-import { toastError } from '../util/apiNotification';
 import { apiv3Get, apiv3Put } from '../util/apiv3-client';
 import { apiv3Get, apiv3Put } from '../util/apiv3-client';
 
 
 // eslint-disable-next-line no-unused-vars
 // eslint-disable-next-line no-unused-vars

+ 1 - 1
packages/app/src/client/services/AdminGeneralSecurityContainer.js

@@ -7,8 +7,8 @@ import {
 } from '~/interfaces/page-delete-config';
 } from '~/interfaces/page-delete-config';
 import { removeNullPropertyFromObject } from '~/utils/object-utils';
 import { removeNullPropertyFromObject } from '~/utils/object-utils';
 
 
-import { toastError } from '../util/apiNotification';
 import { apiv3Get, apiv3Put } from '../util/apiv3-client';
 import { apiv3Get, apiv3Put } from '../util/apiv3-client';
+import { toastError } from '../util/toastr';
 
 
 /**
 /**
  * Service container for admin security page (SecuritySetting.jsx)
  * Service container for admin security page (SecuritySetting.jsx)

+ 7 - 7
packages/app/src/client/services/AdminImportContainer.js

@@ -3,9 +3,9 @@ import { Container } from 'unstated';
 
 
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
-import { toastSuccess, toastError } from '../util/apiNotification';
 import { apiPost } from '../util/apiv1-client';
 import { apiPost } from '../util/apiv1-client';
 import { apiv3Get } from '../util/apiv3-client';
 import { apiv3Get } from '../util/apiv3-client';
+import { toastSuccess, toastError } from '../util/toastr';
 
 
 const logger = loggerFactory('growi:appSettings');
 const logger = loggerFactory('growi:appSettings');
 
 
@@ -82,7 +82,7 @@ export default class AdminImportContainer extends Container {
     }
     }
     catch (err) {
     catch (err) {
       logger.error(err);
       logger.error(err);
-      toastError(err, 'Error occurred in importing pages from esa.io');
+      toastError(err);
     }
     }
   }
   }
 
 
@@ -96,7 +96,7 @@ export default class AdminImportContainer extends Container {
       toastSuccess('Test connection to esa success.');
       toastSuccess('Test connection to esa success.');
     }
     }
     catch (error) {
     catch (error) {
-      toastError(error, 'Test connection to esa failed.');
+      toastError(error);
     }
     }
   }
   }
 
 
@@ -111,7 +111,7 @@ export default class AdminImportContainer extends Container {
     }
     }
     catch (err) {
     catch (err) {
       logger.error(err);
       logger.error(err);
-      toastError(err, 'Errors');
+      toastError(err);
     }
     }
   }
   }
 
 
@@ -126,7 +126,7 @@ export default class AdminImportContainer extends Container {
     }
     }
     catch (err) {
     catch (err) {
       logger.error(err);
       logger.error(err);
-      toastError(err, 'Error occurred in importing pages from qiita:team');
+      toastError(err);
     }
     }
   }
   }
 
 
@@ -142,7 +142,7 @@ export default class AdminImportContainer extends Container {
     }
     }
     catch (err) {
     catch (err) {
       logger.error(err);
       logger.error(err);
-      toastError(err, 'Test connection to qiita:team failed.');
+      toastError(err);
     }
     }
   }
   }
 
 
@@ -157,7 +157,7 @@ export default class AdminImportContainer extends Container {
     }
     }
     catch (err) {
     catch (err) {
       logger.error(err);
       logger.error(err);
-      toastError(err, 'Errors');
+      toastError(err);
     }
     }
   }
   }
 
 

+ 1 - 1
packages/app/src/client/services/page-operation.ts

@@ -9,9 +9,9 @@ import { useCurrentPageId, useSWRMUTxCurrentPage, useSWRxTagsInfo } from '~/stor
 import { useSetRemoteLatestPageData } from '~/stores/remote-latest-page';
 import { useSetRemoteLatestPageData } from '~/stores/remote-latest-page';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
-import { toastError } from '../util/apiNotification';
 import { apiPost } from '../util/apiv1-client';
 import { apiPost } from '../util/apiv1-client';
 import { apiv3Post, apiv3Put } from '../util/apiv3-client';
 import { apiv3Post, apiv3Put } from '../util/apiv3-client';
+import { toastError } from '../util/toastr';
 
 
 const logger = loggerFactory('growi:services:page-operation');
 const logger = loggerFactory('growi:services:page-operation');
 
 

+ 0 - 7
packages/app/src/client/util/apiNotification.js

@@ -1,7 +0,0 @@
-import { legacy } from './toastr';
-
-// DEPRECATED -- 2022.12.07 Yuki Takei
-// Use methods from './toastr.ts' instead
-export const toastError = legacy.toastError;
-export const toastSuccess = legacy.toastSuccess;
-export const toastWarning = legacy.toastWarning;

+ 0 - 53
packages/app/src/client/util/toastr.ts

@@ -36,56 +36,3 @@ export const toastWarningOption: ToastOptions = {
 export const toastWarning = (content: ToastContent, option: ToastOptions = toastWarningOption): void => {
 export const toastWarning = (content: ToastContent, option: ToastOptions = toastWarningOption): void => {
   toastrLegacy.warning(content, option);
   toastrLegacy.warning(content, option);
 };
 };
-
-
-const toastrLegacyOption = {
-  error: {
-    closeButton: true,
-    progressBar: true,
-    newestOnTop: false,
-    showDuration: '100',
-    hideDuration: '100',
-    timeOut: '0',
-  },
-  success: {
-    closeButton: true,
-    progressBar: true,
-    newestOnTop: false,
-    showDuration: '100',
-    hideDuration: '100',
-    timeOut: '3000',
-  },
-  warning: {
-    closeButton: true,
-    progressBar: true,
-    newestOnTop: false,
-    showDuration: '100',
-    hideDuration: '100',
-    timeOut: '6000',
-  },
-};
-
-export const legacy = {
-  // accepts both a single error and an array of errors
-  toastError: (err: string | Error | Error[], header = 'Error', option = toastrLegacyOption.error): void => {
-    const errs = toArrayIfNot(err);
-
-    if (errs.length === 0) {
-      toastrLegacy.error('', header);
-    }
-
-    for (const err of errs) {
-      const message = (typeof err === 'string') ? err : err.message;
-      toastrLegacy.error(message || err, header, option);
-    }
-  },
-
-  // only accepts a single item
-  toastSuccess: (body: string, header = 'Success', option = toastrLegacyOption.success): void => {
-    toastrLegacy.success(body, header, option);
-  },
-
-  toastWarning: (body: string, header = 'Warning', option = toastrLegacyOption.warning): void => {
-    toastrLegacy.warning(body, header, option);
-  },
-};

+ 1 - 1
packages/app/src/components/Admin/AdminHome/AdminHome.jsx

@@ -6,7 +6,7 @@ import { CopyToClipboard } from 'react-copy-to-clipboard';
 import { Tooltip } from 'reactstrap';
 import { Tooltip } from 'reactstrap';
 
 
 import AdminHomeContainer from '~/client/services/AdminHomeContainer';
 import AdminHomeContainer from '~/client/services/AdminHomeContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { useSWRxV5MigrationStatus } from '~/stores/page-listing';
 import { useSWRxV5MigrationStatus } from '~/stores/page-listing';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/App/AppSetting.jsx

@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
 import { i18n as i18nConfig } from '^/config/next-i18next.config';
 import { i18n as i18nConfig } from '^/config/next-i18next.config';
 
 
 import AdminAppContainer from '~/client/services/AdminAppContainer';
 import AdminAppContainer from '~/client/services/AdminAppContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 
 

+ 1 - 1
packages/app/src/components/Admin/App/AppSettingsPageContents.tsx

@@ -3,7 +3,7 @@ import React, { useEffect } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminAppContainer from '~/client/services/AdminAppContainer';
 import AdminAppContainer from '~/client/services/AdminAppContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { useIsMaintenanceMode } from '~/stores/maintenanceMode';
 import { useIsMaintenanceMode } from '~/stores/maintenanceMode';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';

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

@@ -3,7 +3,7 @@ import React, { ChangeEvent, useCallback } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminAppContainer from '~/client/services/AdminAppContainer';
 import AdminAppContainer from '~/client/services/AdminAppContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

+ 1 - 1
packages/app/src/components/Admin/App/MailSetting.tsx

@@ -3,7 +3,7 @@ import React from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminAppContainer from '~/client/services/AdminAppContainer';
 import AdminAppContainer from '~/client/services/AdminAppContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

+ 1 - 1
packages/app/src/components/Admin/App/MaintenanceMode.tsx

@@ -2,7 +2,7 @@ import React, { FC, useState, useCallback } from 'react';
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useIsMaintenanceMode } from '~/stores/maintenanceMode';
 import { useIsMaintenanceMode } from '~/stores/maintenanceMode';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/App/SiteUrlSetting.tsx

@@ -3,7 +3,7 @@ import React, { useCallback } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminAppContainer from '~/client/services/AdminAppContainer';
 import AdminAppContainer from '~/client/services/AdminAppContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 11 - 6
packages/app/src/components/Admin/App/V5PageMigration.tsx

@@ -1,16 +1,21 @@
 import React, {
 import React, {
   FC, useCallback, useEffect, useState,
   FC, useCallback, useEffect, useState,
 } from 'react';
 } from 'react';
+
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
-import { ConfirmModal } from './ConfirmModal';
-import AdminAppContainer from '../../../client/services/AdminAppContainer';
-import { withUnstatedContainers } from '../../UnstatedUtils';
-import { toastSuccess, toastError } from '../../../client/util/apiNotification';
-import { useGlobalAdminSocket } from '~/stores/websocket';
-import LabeledProgressBar from '../Common/LabeledProgressBar';
+
+import { toastError, toastSuccess } from '~/client/util/toastr';
 import {
 import {
   SocketEventName, PMStartedData, PMMigratingData, PMErrorCountData, PMEndedData,
   SocketEventName, PMStartedData, PMMigratingData, PMErrorCountData, PMEndedData,
 } from '~/interfaces/websocket';
 } from '~/interfaces/websocket';
+import { useGlobalAdminSocket } from '~/stores/websocket';
+
+import AdminAppContainer from '../../../client/services/AdminAppContainer';
+import { withUnstatedContainers } from '../../UnstatedUtils';
+import LabeledProgressBar from '../Common/LabeledProgressBar';
+
+import { ConfirmModal } from './ConfirmModal';
+
 
 
 type Props = {
 type Props = {
   adminAppContainer: typeof AdminAppContainer & { v5PageMigrationHandler: () => Promise<{ isV5Compatible: boolean }> },
   adminAppContainer: typeof AdminAppContainer & { v5PageMigrationHandler: () => Promise<{ isV5Compatible: boolean }> },

+ 1 - 1
packages/app/src/components/Admin/AuditLogManagement.tsx

@@ -6,7 +6,7 @@ import { format } from 'date-fns';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 
 import { IClearable } from '~/client/interfaces/clearable';
 import { IClearable } from '~/client/interfaces/clearable';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { SupportedActionType } from '~/interfaces/activity';
 import { SupportedActionType } from '~/interfaces/activity';
 import { useSWRxActivity } from '~/stores/activity';
 import { useSWRxActivity } from '~/stores/activity';
 import { useAuditLogEnabled, useAuditLogAvailableActions } from '~/stores/context';
 import { useAuditLogEnabled, useAuditLogAvailableActions } from '~/stores/context';

+ 1 - 1
packages/app/src/components/Admin/Customize/Customize.jsx

@@ -4,7 +4,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

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

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

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

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

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

@@ -4,7 +4,7 @@ import React, {
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSWRxLayoutSetting } from '~/stores/admin/customize';
 import { useSWRxLayoutSetting } from '~/stores/admin/customize';
 import { useNextThemes } from '~/stores/use-next-themes';
 import { useNextThemes } from '~/stores/use-next-themes';
 
 

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

@@ -2,10 +2,10 @@ import React, { useCallback, useMemo, useState } from 'react';
 
 
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 
-import { toastError, toastSuccess } from '~/client/util/apiNotification';
 import {
 import {
   apiv3Delete, apiv3PostForm, apiv3Put,
   apiv3Delete, apiv3PostForm, apiv3Put,
 } from '~/client/util/apiv3-client';
 } from '~/client/util/apiv3-client';
+import { toastError, toastSuccess } from '~/client/util/toastr';
 import ImageCropModal from '~/components/Common/ImageCropModal';
 import ImageCropModal from '~/components/Common/ImageCropModal';
 import { useIsDefaultLogo, useIsCustomizedLogoUploaded } from '~/stores/context';
 import { useIsDefaultLogo, useIsCustomizedLogoUploaded } from '~/stores/context';
 
 

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

@@ -6,7 +6,7 @@ import { oneDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

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

@@ -6,7 +6,7 @@ import { oneDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
 import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

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

@@ -3,7 +3,7 @@ import React, { useCallback } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSWRxSidebarConfig } from '~/stores/ui';
 import { useSWRxSidebarConfig } from '~/stores/ui';
 import { useNextThemes } from '~/stores/use-next-themes';
 import { useNextThemes } from '~/stores/use-next-themes';
 
 

+ 1 - 1
packages/app/src/components/Admin/Customize/CustomizeTitle.tsx

@@ -3,8 +3,8 @@ import React, { FC, useState } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useCustomizeTitle } from '~/stores/context';
 import { useCustomizeTitle } from '~/stores/context';
 
 
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

+ 2 - 2
packages/app/src/components/Admin/ElasticsearchManagement/ElasticsearchManagement.tsx

@@ -3,8 +3,8 @@ import React, { useEffect, useState, useCallback } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Get, apiv3Post, apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Get, apiv3Post, apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { SocketEventName } from '~/interfaces/websocket';
 import { SocketEventName } from '~/interfaces/websocket';
 import { useIsSearchServiceReachable } from '~/stores/context';
 import { useIsSearchServiceReachable } from '~/stores/context';
 import { useAdminSocket } from '~/stores/socket-io';
 import { useAdminSocket } from '~/stores/socket-io';
@@ -89,7 +89,7 @@ const ElasticsearchManagement = () => {
     });
     });
 
 
     socket.on(SocketEventName.RebuildingFailed, (data) => {
     socket.on(SocketEventName.RebuildingFailed, (data) => {
-      toastError(new Error(data.error), 'Rebuilding Index has failed.');
+      toastError(new Error(data.error));
     });
     });
 
 
     return () => {
     return () => {

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

@@ -2,7 +2,7 @@ import React from 'react';
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-// import { toastSuccess, toastError } from '~/client/util/apiNotification';
+// import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 type ArchiveFilesTableMenuProps = {
 type ArchiveFilesTableMenuProps = {
   fileName: string,
   fileName: string,

+ 1 - 1
packages/app/src/components/Admin/ExportArchiveData/SelectCollectionsModal.tsx

@@ -8,7 +8,7 @@ import * as toastr from 'toastr';
 
 
 import { apiPost } from '~/client/util/apiv1-client';
 import { apiPost } from '~/client/util/apiv1-client';
 
 
-// import { toastSuccess, toastError } from '~/client/util/apiNotification';
+// import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 
 
 const GROUPS_PAGE = [
 const GROUPS_PAGE = [

+ 1 - 1
packages/app/src/components/Admin/G2GDataTransfer.tsx

@@ -5,8 +5,8 @@ import React, {
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import { useGenerateTransferKey } from '~/client/services/g2g-transfer';
 import { useGenerateTransferKey } from '~/client/services/g2g-transfer';
-import { toastError, toastSuccess } from '~/client/util/apiNotification';
 import { apiv3Get, apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Get, apiv3Post } from '~/client/util/apiv3-client';
+import { toastError, toastSuccess } from '~/client/util/toastr';
 import { G2G_PROGRESS_STATUS, type G2GProgress } from '~/interfaces/g2g-transfer';
 import { G2G_PROGRESS_STATUS, type G2GProgress } from '~/interfaces/g2g-transfer';
 import { useAdminSocket } from '~/stores/socket-io';
 import { useAdminSocket } from '~/stores/socket-io';
 
 

+ 1 - 1
packages/app/src/components/Admin/ImportData/GrowiArchive/ImportCollectionConfigurationModal.jsx

@@ -13,7 +13,7 @@ import {
 
 
 import GrowiArchiveImportOption from '~/models/admin/growi-archive-import-option';
 import GrowiArchiveImportOption from '~/models/admin/growi-archive-import-option';
 
 
-// import { toastSuccess, toastError } from '~/client/util/apiNotification';
+// import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 
 
 class ImportCollectionConfigurationModal extends React.Component {
 class ImportCollectionConfigurationModal extends React.Component {

+ 3 - 3
packages/app/src/components/Admin/ImportData/GrowiArchive/ImportForm.jsx

@@ -3,8 +3,8 @@ import React from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import GrowiArchiveImportOption from '~/models/admin/growi-archive-import-option';
 import GrowiArchiveImportOption from '~/models/admin/growi-archive-import-option';
 import ImportOptionForPages from '~/models/admin/import-option-for-pages';
 import ImportOptionForPages from '~/models/admin/import-option-for-pages';
 import ImportOptionForRevisions from '~/models/admin/import-option-for-revisions';
 import ImportOptionForRevisions from '~/models/admin/import-option-for-revisions';
@@ -136,7 +136,7 @@ class ImportForm extends React.Component {
         isImported: false,
         isImported: false,
       });
       });
 
 
-      toastError(err, 'Import process has failed.');
+      toastError(err);
     });
     });
   }
   }
 
 
@@ -316,7 +316,7 @@ class ImportForm extends React.Component {
       if (err.code === 'only_upsert_available') {
       if (err.code === 'only_upsert_available') {
         toastError(t('admin:importer_management.error.only_upsert_available'));
         toastError(t('admin:importer_management.error.only_upsert_available'));
       }
       }
-      toastError(err, 'Import request failed.');
+      toastError(err);
     }
     }
   }
   }
 
 

+ 1 - 1
packages/app/src/components/Admin/ImportData/GrowiArchive/UploadForm.jsx

@@ -3,8 +3,8 @@ import React from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
-import { toastError } from '~/client/util/apiNotification';
 import { apiv3PostForm } from '~/client/util/apiv3-client';
 import { apiv3PostForm } from '~/client/util/apiv3-client';
+import { toastError } from '~/client/util/toastr';
 
 
 class UploadForm extends React.Component {
 class UploadForm extends React.Component {
 
 

+ 1 - 1
packages/app/src/components/Admin/ImportData/GrowiArchiveSection.jsx

@@ -6,7 +6,7 @@ import * as toastr from 'toastr';
 
 
 import { apiv3Delete, apiv3Get } from '~/client/util/apiv3-client';
 import { apiv3Delete, apiv3Get } from '~/client/util/apiv3-client';
 
 
-// import { toastSuccess, toastError } from '~/client/util/apiNotification';
+// import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import ImportForm from './GrowiArchive/ImportForm';
 import ImportForm from './GrowiArchive/ImportForm';
 import UploadForm from './GrowiArchive/UploadForm';
 import UploadForm from './GrowiArchive/UploadForm';

+ 1 - 1
packages/app/src/components/Admin/ImportData/ImportDataPageContents.jsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminImportContainer from '~/client/services/AdminImportContainer';
 import AdminImportContainer from '~/client/services/AdminImportContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/LegacySlackIntegration/LegacySlackIntegration.jsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminSlackIntegrationLegacyContainer from '~/client/services/AdminSlackIntegrationLegacyContainer';
 import AdminSlackIntegrationLegacyContainer from '~/client/services/AdminSlackIntegrationLegacyContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/LegacySlackIntegration/SlackConfiguration.jsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminSlackIntegrationLegacyContainer from '~/client/services/AdminSlackIntegrationLegacyContainer';
 import AdminSlackIntegrationLegacyContainer from '~/client/services/AdminSlackIntegrationLegacyContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/ManageExternalAccount.tsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import Link from 'next/link';
 import Link from 'next/link';
 
 
 import AdminExternalAccountsContainer from '~/client/services/AdminExternalAccountsContainer';
 import AdminExternalAccountsContainer from '~/client/services/AdminExternalAccountsContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 
 
 import PaginationWrapper from '../PaginationWrapper';
 import PaginationWrapper from '../PaginationWrapper';
 import { withUnstatedContainers } from '../UnstatedUtils';
 import { withUnstatedContainers } from '../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/MarkdownSetting/IndentForm.tsx

@@ -7,7 +7,7 @@ import {
 } from 'reactstrap';
 } from 'reactstrap';
 
 
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/MarkdownSetting/LineBreakForm.jsx

@@ -5,7 +5,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

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

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';
 import { Card, CardBody } from 'reactstrap';
 
 
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/MarkdownSetting/XssForm.jsx

@@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
 import { defaultSchema as sanitizeDefaultSchema } from 'rehype-sanitize';
 import { defaultSchema as sanitizeDefaultSchema } from 'rehype-sanitize';
 
 
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
 import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { RehypeSanitizeOption } from '~/interfaces/rehype';
 import { RehypeSanitizeOption } from '~/interfaces/rehype';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/Notification/GlobalNotification.jsx

@@ -5,7 +5,7 @@ import { useRouter } from 'next/router';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Notification/GlobalNotificationList.jsx

@@ -5,8 +5,8 @@ import PropTypes from 'prop-types';
 import urljoin from 'url-join';
 import urljoin from 'url-join';
 
 
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

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

@@ -6,8 +6,8 @@ import { useTranslation } from 'next-i18next';
 import { useRouter } from 'next/router';
 import { useRouter } from 'next/router';
 
 
 import { NotifyType, TriggerEventType } from '~/client/interfaces/global-notification';
 import { NotifyType, TriggerEventType } from '~/client/interfaces/global-notification';
-import { toastError } from '~/client/util/apiNotification';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
+import { toastError } from '~/client/util/toastr';
 import { useIsMailerSetup } from '~/stores/context';
 import { useIsMailerSetup } from '~/stores/context';
 import { useSWRxGlobalNotification } from '~/stores/global-notification';
 import { useSWRxGlobalNotification } from '~/stores/global-notification';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';

+ 1 - 1
packages/app/src/components/Admin/Notification/NotificationSetting.jsx

@@ -10,7 +10,7 @@ import {
 } from 'reactstrap';
 } from 'reactstrap';
 
 
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/Notification/UserTriggerNotification.jsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
 import AdminNotificationContainer from '~/client/services/AdminNotificationContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/GitHubSecuritySetting.jsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminGitHubSecurityContainer from '~/client/services/AdminGitHubSecurityContainer';
 import AdminGitHubSecurityContainer from '~/client/services/AdminGitHubSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/GitHubSecuritySettingContents.jsx

@@ -9,7 +9,7 @@ import urljoin from 'url-join';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGitHubSecurityContainer from '~/client/services/AdminGitHubSecurityContainer';
 import AdminGitHubSecurityContainer from '~/client/services/AdminGitHubSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSiteUrl } from '~/stores/context';
 import { useSiteUrl } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/GoogleSecuritySetting.jsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminGoogleSecurityContainer from '~/client/services/AdminGoogleSecurityContainer';
 import AdminGoogleSecurityContainer from '~/client/services/AdminGoogleSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/GoogleSecuritySettingContents.jsx

@@ -7,7 +7,7 @@ import urljoin from 'url-join';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGoogleSecurityContainer from '~/client/services/AdminGoogleSecurityContainer';
 import AdminGoogleSecurityContainer from '~/client/services/AdminGoogleSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSiteUrl } from '~/stores/context';
 import { useSiteUrl } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 2 - 2
packages/app/src/components/Admin/Security/LdapAuthTest.tsx

@@ -2,10 +2,10 @@ import React, { useState } from 'react';
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiPost } from '~/client/util/apiv1-client';
 import { apiPost } from '~/client/util/apiv1-client';
-import loggerFactory from '~/utils/logger';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { IResTestLdap } from '~/interfaces/ldap';
 import { IResTestLdap } from '~/interfaces/ldap';
+import loggerFactory from '~/utils/logger';
 
 
 const logger = loggerFactory('growi:security:AdminLdapSecurityContainer');
 const logger = loggerFactory('growi:security:AdminLdapSecurityContainer');
 
 

+ 1 - 1
packages/app/src/components/Admin/Security/LdapSecuritySetting.jsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminLdapSecurityContainer from '~/client/services/AdminLdapSecurityContainer';
 import AdminLdapSecurityContainer from '~/client/services/AdminLdapSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 2 - 2
packages/app/src/components/Admin/Security/LdapSecuritySettingContents.jsx

@@ -1,11 +1,11 @@
 import React from 'react';
 import React from 'react';
 
 
-import PropTypes from 'prop-types';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
+import PropTypes from 'prop-types';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminLdapSecurityContainer from '~/client/services/AdminLdapSecurityContainer';
 import AdminLdapSecurityContainer from '~/client/services/AdminLdapSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

+ 1 - 1
packages/app/src/components/Admin/Security/LocalSecuritySetting.jsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminLocalSecurityContainer from '~/client/services/AdminLocalSecurityContainer';
 import AdminLocalSecurityContainer from '~/client/services/AdminLocalSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/LocalSecuritySettingContents.jsx

@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminLocalSecurityContainer from '~/client/services/AdminLocalSecurityContainer';
 import AdminLocalSecurityContainer from '~/client/services/AdminLocalSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useIsMailerSetup } from '~/stores/context';
 import { useIsMailerSetup } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/OidcSecuritySetting.jsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
 import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/OidcSecuritySettingContents.jsx

@@ -8,7 +8,7 @@ import urljoin from 'url-join';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
 import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSiteUrl } from '~/stores/context';
 import { useSiteUrl } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/SamlSecuritySetting.jsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminSamlSecurityContainer from '~/client/services/AdminSamlSecurityContainer';
 import AdminSamlSecurityContainer from '~/client/services/AdminSamlSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/SamlSecuritySettingContents.jsx

@@ -10,7 +10,7 @@ import urljoin from 'url-join';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminSamlSecurityContainer from '~/client/services/AdminSamlSecurityContainer';
 import AdminSamlSecurityContainer from '~/client/services/AdminSamlSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSiteUrl } from '~/stores/context';
 import { useSiteUrl } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Security/SecurityManagement.tsx

@@ -3,7 +3,7 @@ import React, { useEffect, useCallback } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import { toArrayIfNot } from '~/utils/array-utils';
 import { toArrayIfNot } from '~/utils/array-utils';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 5 - 5
packages/app/src/components/Admin/Security/SecuritySetting.jsx

@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
 import { Collapse } from 'reactstrap';
 import { Collapse } from 'reactstrap';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { PageDeleteConfigValue } from '~/interfaces/page-delete-config';
 import { PageDeleteConfigValue } from '~/interfaces/page-delete-config';
 import { validateDeleteConfigs, prepareDeleteConfigValuesForCalc } from '~/utils/page-delete-config';
 import { validateDeleteConfigs, prepareDeleteConfigValuesForCalc } from '~/utils/page-delete-config';
 
 
@@ -347,11 +347,11 @@ class SecuritySetting extends React.Component {
             <tbody>
             <tbody>
               <tr>
               <tr>
                 <th scope="row">{ t('public') }</th>
                 <th scope="row">{ t('public') }</th>
-                <td>{ t('security_settings.always_displayed') }</td>
+                <td><i className="icon-fw icon-check text-success"></i>{ t('security_settings.always_displayed') }</td>
               </tr>
               </tr>
               <tr>
               <tr>
                 <th scope="row">{ t('anyone_with_the_link') }</th>
                 <th scope="row">{ t('anyone_with_the_link') }</th>
-                <td>{ t('security_settings.always_hidden') }</td>
+                <td><i className="icon-fw icon-ban text-danger"></i>{ t('security_settings.always_hidden') }</td>
               </tr>
               </tr>
               <tr>
               <tr>
                 <th scope="row">{ t('only_me') }</th>
                 <th scope="row">{ t('only_me') }</th>
@@ -361,7 +361,7 @@ class SecuritySetting extends React.Component {
                       type="checkbox"
                       type="checkbox"
                       className="custom-control-input"
                       className="custom-control-input"
                       id="isShowRestrictedByOwner"
                       id="isShowRestrictedByOwner"
-                      checked={adminGeneralSecurityContainer.state.isShowRestrictedByOwner}
+                      checked={!adminGeneralSecurityContainer.state.isShowRestrictedByOwner}
                       onChange={() => { adminGeneralSecurityContainer.switchIsShowRestrictedByOwner() }}
                       onChange={() => { adminGeneralSecurityContainer.switchIsShowRestrictedByOwner() }}
                     />
                     />
                     <label className="custom-control-label" htmlFor="isShowRestrictedByOwner">
                     <label className="custom-control-label" htmlFor="isShowRestrictedByOwner">
@@ -378,7 +378,7 @@ class SecuritySetting extends React.Component {
                       type="checkbox"
                       type="checkbox"
                       className="custom-control-input"
                       className="custom-control-input"
                       id="isShowRestrictedByGroup"
                       id="isShowRestrictedByGroup"
-                      checked={adminGeneralSecurityContainer.state.isShowRestrictedByGroup}
+                      checked={!adminGeneralSecurityContainer.state.isShowRestrictedByGroup}
                       onChange={() => { adminGeneralSecurityContainer.switchIsShowRestrictedByGroup() }}
                       onChange={() => { adminGeneralSecurityContainer.switchIsShowRestrictedByGroup() }}
                     />
                     />
                     <label className="custom-control-label" htmlFor="isShowRestrictedByGroup">
                     <label className="custom-control-label" htmlFor="isShowRestrictedByGroup">

+ 1 - 1
packages/app/src/components/Admin/Security/ShareLinkSetting.tsx

@@ -5,8 +5,8 @@ import React, {
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Delete } from '~/client/util/apiv3-client';
 import { apiv3Delete } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import PaginationWrapper from '../../PaginationWrapper';
 import PaginationWrapper from '../../PaginationWrapper';
 import ShareLinkList from '../../ShareLink/ShareLinkList';
 import ShareLinkList from '../../ShareLink/ShareLinkList';

+ 4 - 4
packages/app/src/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx

@@ -3,8 +3,8 @@ import React, { useState, useEffect, useCallback } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Delete, apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Delete, apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useAppTitle } from '~/stores/context';
 import { useAppTitle } from '~/stores/context';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
@@ -53,7 +53,7 @@ const CustomBotWithProxySettings = (props) => {
       toastSuccess(t('toaster.update_successed', { target: 'Primary', ns: 'commons' }));
       toastSuccess(t('toaster.update_successed', { target: 'Primary', ns: 'commons' }));
     }
     }
     catch (err) {
     catch (err) {
-      toastError(err, 'Failed to change isPrimary');
+      toastError(err);
       logger.error('Failed to change isPrimary', err);
       logger.error('Failed to change isPrimary', err);
     }
     }
   }, [t, onPrimaryUpdated]);
   }, [t, onPrimaryUpdated]);
@@ -67,7 +67,7 @@ const CustomBotWithProxySettings = (props) => {
       toastSuccess(t('admin:slack_integration.toastr.delete_slack_integration_procedure'));
       toastSuccess(t('admin:slack_integration.toastr.delete_slack_integration_procedure'));
     }
     }
     catch (err) {
     catch (err) {
-      toastError(err, 'Failed to delete');
+      toastError(err);
       logger.error('Failed to delete', err);
       logger.error('Failed to delete', err);
     }
     }
   };
   };
@@ -80,7 +80,7 @@ const CustomBotWithProxySettings = (props) => {
       toastSuccess(t('toaster.update_successed', { target: 'Proxy URL', ns: 'commons' }));
       toastSuccess(t('toaster.update_successed', { target: 'Proxy URL', ns: 'commons' }));
     }
     }
     catch (err) {
     catch (err) {
-      toastError(err, 'Failed to update');
+      toastError(err);
       logger.error('Failed to update', err);
       logger.error('Failed to update', err);
     }
     }
   };
   };

+ 1 - 1
packages/app/src/components/Admin/SlackIntegration/CustomBotWithoutProxySecretTokenSection.jsx

@@ -3,8 +3,8 @@ import React, { useState, useEffect } from 'react';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';

+ 1 - 1
packages/app/src/components/Admin/SlackIntegration/ManageCommandsProcess.jsx

@@ -5,9 +5,9 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastError, toastSuccess } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
-import { toastSuccess, toastError } from '../../../client/util/apiNotification';
 
 
 const logger = loggerFactory('growi:SlackIntegration:ManageCommandsProcess');
 const logger = loggerFactory('growi:SlackIntegration:ManageCommandsProcess');
 
 

+ 1 - 1
packages/app/src/components/Admin/SlackIntegration/ManageCommandsProcessWithoutProxy.jsx

@@ -5,9 +5,9 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastError, toastSuccess } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
-import { toastSuccess, toastError } from '../../../client/util/apiNotification';
 
 
 const logger = loggerFactory('growi:SlackIntegration:ManageCommandsProcess');
 const logger = loggerFactory('growi:SlackIntegration:ManageCommandsProcess');
 
 

+ 2 - 2
packages/app/src/components/Admin/SlackIntegration/OfficialBotSettings.jsx

@@ -5,8 +5,8 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Delete, apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Delete, apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useAppTitle } from '~/stores/context';
 import { useAppTitle } from '~/stores/context';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
@@ -49,7 +49,7 @@ const OfficialBotSettings = (props) => {
       toastSuccess(t('toaster.update_successed', { target: 'Primary', ns: 'commons' }));
       toastSuccess(t('toaster.update_successed', { target: 'Primary', ns: 'commons' }));
     }
     }
     catch (err) {
     catch (err) {
-      toastError(err, 'Failed to change isPrimary');
+      toastError(err);
       logger.error('Failed to change isPrimary', err);
       logger.error('Failed to change isPrimary', err);
     }
     }
   }, [t, onPrimaryUpdated]);
   }, [t, onPrimaryUpdated]);

+ 1 - 1
packages/app/src/components/Admin/SlackIntegration/SlackIntegration.jsx

@@ -4,10 +4,10 @@ import { SlackbotType } from '@growi/slack';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import {
 import {
   apiv3Delete, apiv3Get, apiv3Post, apiv3Put,
   apiv3Delete, apiv3Get, apiv3Post, apiv3Put,
 } from '~/client/util/apiv3-client';
 } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import BotTypeCard from './BotTypeCard';
 import BotTypeCard from './BotTypeCard';
 import ConfirmBotChangeModal from './ConfirmBotChangeModal';
 import ConfirmBotChangeModal from './ConfirmBotChangeModal';

+ 1 - 1
packages/app/src/components/Admin/SlackIntegration/WithProxyAccordions.jsx

@@ -7,8 +7,8 @@ import PropTypes from 'prop-types';
 import { CopyToClipboard } from 'react-copy-to-clipboard';
 import { CopyToClipboard } from 'react-copy-to-clipboard';
 import { Tooltip } from 'reactstrap';
 import { Tooltip } from 'reactstrap';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Put, apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Put, apiv3Post } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSiteUrl } from '~/stores/context';
 import { useSiteUrl } from '~/stores/context';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/Admin/UserGroup/UserGroupPage.tsx

@@ -3,8 +3,8 @@ import React, { FC, useState, useCallback } from 'react';
 import dynamic from 'next/dynamic';
 import dynamic from 'next/dynamic';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Delete, apiv3Post, apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Delete, apiv3Post, apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { IUserGroup, IUserGroupHasId } from '~/interfaces/user';
 import { IUserGroup, IUserGroupHasId } from '~/interfaces/user';
 import { useIsAclEnabled } from '~/stores/context';
 import { useIsAclEnabled } from '~/stores/context';
 import { useSWRxUserGroupList, useSWRxChildUserGroupList, useSWRxUserGroupRelationList } from '~/stores/user-group';
 import { useSWRxUserGroupList, useSWRxChildUserGroupList, useSWRxUserGroupRelationList } from '~/stores/user-group';

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

@@ -8,10 +8,10 @@ import dynamic from 'next/dynamic';
 import Link from 'next/link';
 import Link from 'next/link';
 import { useRouter } from 'next/router';
 import { useRouter } from 'next/router';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import {
 import {
   apiv3Get, apiv3Put, apiv3Delete, apiv3Post,
   apiv3Get, apiv3Put, apiv3Delete, apiv3Post,
 } from '~/client/util/apiv3-client';
 } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { IUserGroup, IUserGroupHasId } from '~/interfaces/user';
 import { IUserGroup, IUserGroupHasId } from '~/interfaces/user';
 import { SearchTypes, SearchType } from '~/interfaces/user-group';
 import { SearchTypes, SearchType } from '~/interfaces/user-group';
 import Xss from '~/services/xss';
 import Xss from '~/services/xss';

+ 1 - 1
packages/app/src/components/Admin/UserGroupDetail/UserGroupPageList.tsx

@@ -2,8 +2,8 @@ import React, { useEffect, useState, useCallback } from 'react';
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-import { toastError } from '~/client/util/apiNotification';
 import { apiv3Get } from '~/client/util/apiv3-client';
 import { apiv3Get } from '~/client/util/apiv3-client';
+import { toastError } from '~/client/util/toastr';
 import { IPageHasId } from '~/interfaces/page';
 import { IPageHasId } from '~/interfaces/page';
 
 
 import { PageListItemS } from '../../PageList/PageListItemS';
 import { PageListItemS } from '../../PageList/PageListItemS';

+ 1 - 1
packages/app/src/components/Admin/UserGroupDetail/UserGroupUserFormByInput.jsx

@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
 import { AsyncTypeahead } from 'react-bootstrap-typeahead';
 import { AsyncTypeahead } from 'react-bootstrap-typeahead';
 import { debounce } from 'throttle-debounce';
 import { debounce } from 'throttle-debounce';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import Xss from '~/services/xss';
 import Xss from '~/services/xss';
 
 
 class UserGroupUserFormByInput extends React.Component {
 class UserGroupUserFormByInput extends React.Component {

+ 1 - 1
packages/app/src/components/Admin/UserManagement.tsx

@@ -6,7 +6,7 @@ import { useTranslation } from 'next-i18next';
 import Link from 'next/link';
 import Link from 'next/link';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 
 
 import PaginationWrapper from '../PaginationWrapper';
 import PaginationWrapper from '../PaginationWrapper';
 import { withUnstatedContainers } from '../UnstatedUtils';
 import { withUnstatedContainers } from '../UnstatedUtils';

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

@@ -5,7 +5,7 @@ import dateFnsFormat from 'date-fns/format';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminExternalAccountsContainer from '~/client/services/AdminExternalAccountsContainer';
 import AdminExternalAccountsContainer from '~/client/services/AdminExternalAccountsContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

+ 1 - 1
packages/app/src/components/Admin/Users/GiveAdminButton.tsx

@@ -4,7 +4,7 @@ import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

+ 2 - 2
packages/app/src/components/Admin/Users/PasswordResetModal.jsx

@@ -6,8 +6,8 @@ import {
   Modal, ModalHeader, ModalBody, ModalFooter,
   Modal, ModalHeader, ModalBody, ModalFooter,
 } from 'reactstrap';
 } from 'reactstrap';
 
 
-import { toastError } from '~/client/util/apiNotification';
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastError } from '~/client/util/toastr';
 
 
 
 
 class PasswordResetModal extends React.Component {
 class PasswordResetModal extends React.Component {
@@ -29,7 +29,7 @@ class PasswordResetModal extends React.Component {
       this.setState({ isPasswordResetDone: true });
       this.setState({ isPasswordResetDone: true });
     }
     }
     catch (err) {
     catch (err) {
-      toastError(err, t('toaster.failed_to_reset_password'));
+      toastError(err);
     }
     }
   }
   }
 
 

+ 1 - 1
packages/app/src/components/Admin/Users/RemoveAdminButton.tsx

@@ -4,7 +4,7 @@ import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useCurrentUser } from '~/stores/context';
 import { useCurrentUser } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Users/RemoveAdminMenuItem.tsx

@@ -4,7 +4,7 @@ import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useCurrentUser } from '~/stores/context';
 import { useCurrentUser } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Users/SendInvitationEmailButton.jsx

@@ -4,8 +4,8 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

+ 1 - 1
packages/app/src/components/Admin/Users/StatusActivateButton.jsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

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

@@ -4,7 +4,7 @@ import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 import { withUnstatedContainers } from '~/components/UnstatedUtils';
 import { withUnstatedContainers } from '~/components/UnstatedUtils';
 import { useCurrentUser } from '~/stores/context';
 import { useCurrentUser } from '~/stores/context';
 
 

+ 1 - 1
packages/app/src/components/Admin/Users/UserInviteModal.jsx

@@ -10,7 +10,7 @@ import {
 
 
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError, toastWarning } from '~/client/util/apiNotification';
+import { toastSuccess, toastError, toastWarning } from '~/client/util/toastr';
 import { useIsMailerSetup } from '~/stores/context';
 import { useIsMailerSetup } from '~/stores/context';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';

+ 1 - 1
packages/app/src/components/Admin/Users/UserRemoveButton.jsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
 import AdminUsersContainer from '~/client/services/AdminUsersContainer';
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 

+ 1 - 1
packages/app/src/components/ArchiveCreateModal.jsx

@@ -6,8 +6,8 @@ import {
   Modal, ModalHeader, ModalBody, ModalFooter,
   Modal, ModalHeader, ModalBody, ModalFooter,
 } from 'reactstrap';
 } from 'reactstrap';
 
 
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
+import { toastSuccess, toastError } from '~/client/util/toastr';
 
 
 
 
 const ArchiveCreateModal = (props) => {
 const ArchiveCreateModal = (props) => {

+ 1 - 1
packages/app/src/components/Common/ImageCropModal.tsx

@@ -13,7 +13,7 @@ import {
 } from 'reactstrap';
 } from 'reactstrap';
 
 
 
 
-import { toastError } from '~/client/util/apiNotification';
+import { toastError } from '~/client/util/toastr';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 import 'react-image-crop/dist/ReactCrop.css';
 import 'react-image-crop/dist/ReactCrop.css';
 
 

+ 3 - 3
packages/app/src/components/CompleteUserRegistrationForm.tsx

@@ -7,7 +7,7 @@ import { apiv3Get, apiv3Post } from '~/client/util/apiv3-client';
 import { UserActivationErrorCode } from '~/interfaces/errors/user-activation';
 import { UserActivationErrorCode } from '~/interfaces/errors/user-activation';
 import { RegistrationMode } from '~/interfaces/registration-mode';
 import { RegistrationMode } from '~/interfaces/registration-mode';
 
 
-import { toastError } from '../client/util/apiNotification';
+import { toastError } from '../client/util/toastr';
 
 
 import { CompleteUserRegistration } from './CompleteUserRegistration';
 import { CompleteUserRegistration } from './CompleteUserRegistration';
 
 
@@ -50,7 +50,7 @@ const CompleteUserRegistrationForm: React.FC<Props> = (props: Props) => {
         }
         }
       }
       }
       catch (error) {
       catch (error) {
-        toastError(error, 'Error occurred when checking username');
+        toastError(error);
       }
       }
     }, 500);
     }, 500);
 
 
@@ -73,7 +73,7 @@ const CompleteUserRegistrationForm: React.FC<Props> = (props: Props) => {
       }
       }
     }
     }
     catch (err) {
     catch (err) {
-      toastError(err, 'Registration failed');
+      toastError(err);
       setDisableForm(false);
       setDisableForm(false);
       setIsSuccessToRagistration(false);
       setIsSuccessToRagistration(false);
     }
     }

+ 1 - 1
packages/app/src/components/DescendantsPageList.tsx

@@ -2,7 +2,7 @@ import React, { useCallback, useState } from 'react';
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-import { toastSuccess } from '~/client/util/apiNotification';
+import { toastSuccess } from '~/client/util/toastr';
 import {
 import {
   IDataWithMeta,
   IDataWithMeta,
   IPageHasId,
   IPageHasId,

+ 1 - 1
packages/app/src/components/InAppNotification/InAppNotificationDropdown.tsx

@@ -7,8 +7,8 @@ import {
 } from 'reactstrap';
 } from 'reactstrap';
 
 
 
 
-import { toastError } from '~/client/util/apiNotification';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
+import { toastError } from '~/client/util/toastr';
 import { useSWRxInAppNotifications, useSWRxInAppNotificationStatus } from '~/stores/in-app-notification';
 import { useSWRxInAppNotifications, useSWRxInAppNotificationStatus } from '~/stores/in-app-notification';
 import { useDefaultSocket } from '~/stores/socket-io';
 import { useDefaultSocket } from '~/stores/socket-io';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';

+ 5 - 2
packages/app/src/components/InstallerForm.tsx

@@ -2,22 +2,25 @@ import {
   FormEventHandler, memo, useCallback, useState,
   FormEventHandler, memo, useCallback, useState,
 } from 'react';
 } from 'react';
 
 
+import { Lang, AllLang } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { useRouter } from 'next/router';
 import { useRouter } from 'next/router';
 
 
 import { i18n as i18nConfig } from '^/config/next-i18next.config';
 import { i18n as i18nConfig } from '^/config/next-i18next.config';
 
 
-import { toastError } from '~/client/util/apiNotification';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
+import { toastError } from '~/client/util/toastr';
 
 
 const InstallerForm = memo((): JSX.Element => {
 const InstallerForm = memo((): JSX.Element => {
   const { t, i18n } = useTranslation();
   const { t, i18n } = useTranslation();
 
 
   const router = useRouter();
   const router = useRouter();
 
 
+  const isSupportedLang = AllLang.includes(i18n.language as Lang);
+
   const [isValidUserName, setValidUserName] = useState(true);
   const [isValidUserName, setValidUserName] = useState(true);
   const [isSubmittingDisabled, setSubmittingDisabled] = useState(false);
   const [isSubmittingDisabled, setSubmittingDisabled] = useState(false);
-  const [currentLocale, setCurrentLocale] = useState('en_US');
+  const [currentLocale, setCurrentLocale] = useState(isSupportedLang ? i18n.language : Lang.en_US);
 
 
   const checkUserName = useCallback(async(event) => {
   const checkUserName = useCallback(async(event) => {
     const axios = require('axios').create({
     const axios = require('axios').create({

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików