فهرست منبع

Merge branch 'master' into feat/update-documents-by-reinstall

jam411 3 سال پیش
والد
کامیت
430ebdb9b5
27فایلهای تغییر یافته به همراه132 افزوده شده و 105 حذف شده
  1. 0 0
      .github/dependabot.yml.org
  2. 1 1
      lerna.json
  3. 1 1
      package.json
  4. 11 11
      packages/app/package.json
  5. 3 2
      packages/app/src/components/Admin/App/SiteUrlSetting.tsx
  6. 1 1
      packages/app/src/components/Admin/Customize/CustomizeCssSetting.tsx
  7. 1 1
      packages/app/src/components/Admin/Customize/CustomizeNoscriptSetting.tsx
  8. 1 1
      packages/app/src/components/Admin/Customize/CustomizeScriptSetting.tsx
  9. 2 1
      packages/app/src/components/Common/Dropdown/PageItemControl.tsx
  10. 20 33
      packages/app/src/components/PageEditor/LinkEditModal.jsx
  11. 10 1
      packages/app/src/stores/middlewares/sync-to-storage.ts
  12. 3 0
      packages/app/src/styles/style-app.scss
  13. 11 8
      packages/app/test/cypress/integration/10-install/10-install--install.spec.ts
  14. 2 1
      packages/app/test/cypress/integration/30-search/30-search--search.spec.ts
  15. 37 18
      packages/app/test/cypress/integration/50-sidebar/50-sidebar--access-to-side-bar.spec.ts
  16. 1 0
      packages/app/test/cypress/integration/50-sidebar/50-sidebar--switching-sidebar-mode.spec.ts
  17. 1 1
      packages/codemirror-textlint/package.json
  18. 1 1
      packages/core/package.json
  19. 1 1
      packages/hackmd/package.json
  20. 4 2
      packages/preset-themes/package.json
  21. 1 1
      packages/remark-drawio/package.json
  22. 1 1
      packages/remark-growi-directive/package.json
  23. 4 4
      packages/remark-lsx/package.json
  24. 1 1
      packages/slack/package.json
  25. 2 2
      packages/slackbot-proxy/package.json
  26. 2 2
      packages/ui/package.json
  27. 9 9
      yarn.lock

+ 0 - 0
.github/dependabot.yml → .github/dependabot.yml.org


+ 1 - 1
lerna.json

@@ -1,7 +1,7 @@
 {
   "npmClient": "yarn",
   "useWorkspaces": true,
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "packages": [
     "packages/*"
   ]

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "growi",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "Team collaboration software using markdown",
   "tags": [
     "wiki",

+ 11 - 11
packages/app/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/app",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "license": "MIT",
   "scripts": {
     "//// for production": "",
@@ -64,14 +64,14 @@
     "@elastic/elasticsearch7": "npm:@elastic/elasticsearch@^7.17.0",
     "@godaddy/terminus": "^4.9.0",
     "@google-cloud/storage": "^5.8.5",
-    "@growi/codemirror-textlint": "^6.0.0-RC.9",
-    "@growi/core": "^6.0.0-RC.9",
-    "@growi/hackmd": "^6.0.0-RC.9",
-    "@growi/preset-themes": "^6.0.0-RC.9",
-    "@growi/remark-drawio": "^6.0.0-RC.9",
-    "@growi/remark-growi-directive": "^6.0.0-RC.9",
-    "@growi/remark-lsx": "^6.0.0-RC.9",
-    "@growi/slack": "^6.0.0-RC.9",
+    "@growi/codemirror-textlint": "^6.0.0-RC.12",
+    "@growi/core": "^6.0.0-RC.12",
+    "@growi/hackmd": "^6.0.0-RC.12",
+    "@growi/preset-themes": "^6.0.0-RC.12",
+    "@growi/remark-drawio": "^6.0.0-RC.12",
+    "@growi/remark-growi-directive": "^6.0.0-RC.12",
+    "@growi/remark-lsx": "^6.0.0-RC.12",
+    "@growi/slack": "^6.0.0-RC.12",
     "@promster/express": "^7.0.2",
     "@promster/server": "^7.0.4",
     "@slack/web-api": "^6.2.4",
@@ -164,7 +164,7 @@
     "react-syntax-highlighter": "^15.5.0",
     "react-toastify": "^9.1.1",
     "react-use-ripple": "^1.5.2",
-    "reactstrap": "^8.9.0",
+    "reactstrap": "^8.10.1",
     "reconnecting-websocket": "^4.4.0",
     "redis": "^3.0.2",
     "rehype-katex": "^6.0.2",
@@ -201,7 +201,7 @@
     "handsontable": "v7.0.0 or above is no loger MIT lisence."
   },
   "devDependencies": {
-    "@growi/ui": "^6.0.0-RC.9",
+    "@growi/ui": "^6.0.0-RC.12",
     "@handsontable/react": "=2.1.0",
     "@icon/themify-icons": "1.0.1-alpha.3",
     "@next/bundle-analyzer": "^12.2.3",

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

@@ -18,19 +18,20 @@ type Props = {
 
 const SiteUrlSetting = (props: Props) => {
   const { t } = useTranslation('admin', { keyPrefix: 'app_setting' });
+  const { t: tCommon } = useTranslation('commons');
   const { adminAppContainer } = props;
 
 
   const submitHandler = useCallback(async() => {
     try {
       await adminAppContainer.updateSiteUrlSettingHandler();
-      toastSuccess(t('toaster.update_successed', { target: t('site_url.title') }));
+      toastSuccess(tCommon('toaster.update_successed', { target: t('site_url.title') }));
     }
     catch (err) {
       toastError(err);
       logger.error(err);
     }
-  }, [adminAppContainer, t]);
+  }, [adminAppContainer, t, tCommon]);
 
   return (
     <React.Fragment>

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

@@ -46,7 +46,7 @@ const CustomizeCssSetting = (props: Props): JSX.Element => {
               className="form-control"
               name="customizeCss"
               rows={8}
-              value={adminCustomizeContainer.state.currentCustomizeCss || ''}
+              defaultValue={adminCustomizeContainer.state.currentCustomizeCss || ''}
               onChange={(e) => { adminCustomizeContainer.changeCustomizeCss(e.target.value) }}
             />
             {/* disabled in v6.0.0 temporarily -- 2022.12.19 Yuki Takei

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

@@ -50,7 +50,7 @@ const CustomizeNoscriptSetting = (props: Props): JSX.Element => {
               className="form-control"
               name="customizeNoscript"
               rows={8}
-              value={adminCustomizeContainer.state.currentCustomizeNoscript || ''}
+              defaultValue={adminCustomizeContainer.state.currentCustomizeNoscript || ''}
               onChange={(e) => { adminCustomizeContainer.changeCustomizeNoscript(e.target.value) }}
             />
             {/* disabled in v6.0.0 temporarily -- 2022.12.19 Yuki Takei

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

@@ -47,7 +47,7 @@ const CustomizeScriptSetting = (props: Props): JSX.Element => {
               className="form-control"
               name="customizeScript"
               rows={8}
-              value={adminCustomizeContainer.state.currentCustomizeScript || ''}
+              defaultValue={adminCustomizeContainer.state.currentCustomizeScript || ''}
               onChange={(e) => { adminCustomizeContainer.changeCustomizeScript(e.target.value) }}
             />
             {/* disabled in v6.0.0 temporarily -- 2022.12.19 Yuki Takei

+ 2 - 1
packages/app/src/components/Common/Dropdown/PageItemControl.tsx

@@ -247,9 +247,10 @@ const PageItemControlDropdownMenu = React.memo((props: DropdownMenuProps): JSX.E
   return (
     <DropdownMenu
       data-testid="page-item-control-menu"
-      positionFixed
       modifiers={{ preventOverflow: { boundariesElement: 'viewport' } }}
       right={alignRight}
+      container="body"
+      style={{ zIndex: 1035 }} /* make it larger than $zindex-fixed of bootstrap */
     >
       {contents}
     </DropdownMenu>

+ 20 - 33
packages/app/src/components/PageEditor/LinkEditModal.jsx

@@ -345,7 +345,7 @@ class LinkEditModal extends React.PureComponent {
     return (
       <div className="card well pt-3">
         <form className="form-group mb-0">
-          <div className="form-group row">
+          <div className="form-group mb-0 row">
             <label className="col-sm-3">{t('link_edit.path_format')}</label>
             <div className="col-sm-9">
               <div className="custom-control custom-checkbox custom-checkbox-info custom-control-inline">
@@ -376,36 +376,23 @@ class LinkEditModal extends React.PureComponent {
               </div>
             </div>
           </div>
-          <div className="form-group row mb-0">
-            <label className="col-sm-3">{t('link_edit.notation')}</label>
-            <div className="col-sm-9">
-              <div className="custom-control custom-radio custom-control-inline">
-                <input
-                  type="radio"
-                  className="custom-control-input"
-                  id="markdownType"
-                  value={Linker.types.markdownLink}
-                  checked={this.state.linkerType === Linker.types.markdownLink}
-                  onChange={e => this.handleSelecteLinkerType(e.target.value)}
-                />
-                <label className="custom-control-label" htmlFor="markdownType">
-                  {t('link_edit.markdown')}
-                </label>
-              </div>
-              <div className="custom-control custom-radio custom-control-inline">
-                <input
-                  type="radio"
-                  className="custom-control-input"
-                  id="growiType"
-                  value={Linker.types.growiLink}
-                  checked={this.state.linkerType === Linker.types.growiLink}
-                  onChange={e => this.handleSelecteLinkerType(e.target.value)}
-                />
-                <label className="custom-control-label" htmlFor="growiType">
-                  {t('link_edit.GROWI_original')}
-                </label>
-              </div>
-              {this.isApplyPukiwikiLikeLinkerPlugin && (
+          {this.isApplyPukiwikiLikeLinkerPlugin && (
+            <div className="form-group row mb-0 mt-1">
+              <label className="col-sm-3">{t('link_edit.notation')}</label>
+              <div className="col-sm-9">
+                <div className="custom-control custom-radio custom-control-inline">
+                  <input
+                    type="radio"
+                    className="custom-control-input"
+                    id="markdownType"
+                    value={Linker.types.markdownLink}
+                    checked={this.state.linkerType === Linker.types.markdownLink}
+                    onChange={e => this.handleSelecteLinkerType(e.target.value)}
+                  />
+                  <label className="custom-control-label" htmlFor="markdownType">
+                    {t('link_edit.markdown')}
+                  </label>
+                </div>
                 <div className="custom-control custom-radio custom-control-inline">
                   <input
                     type="radio"
@@ -419,9 +406,9 @@ class LinkEditModal extends React.PureComponent {
                     {t('link_edit.pukiwiki')}
                   </label>
                 </div>
-              )}
+              </div>
             </div>
-          </div>
+          )}
         </form>
       </div>
     );

+ 10 - 1
packages/app/src/stores/middlewares/sync-to-storage.ts

@@ -1,6 +1,10 @@
 import { isClient } from '@growi/core';
 import { Middleware } from 'swr';
 
+import loggerFactory from '~/utils/logger';
+
+const logger = loggerFactory('growi:stores:sync-to-storage');
+
 const generateKeyInStorage = (key: string): string => {
   return `swr-cache-${key}`;
 };
@@ -30,7 +34,12 @@ export const createSyncToStorageMiddlware = (
       // retrieve initial data from storage
       const itemInStorage = storage.getItem(keyInStorage);
       if (itemInStorage != null) {
-        initData = storageSerializer.deserialize(itemInStorage);
+        try {
+          initData = storageSerializer.deserialize(itemInStorage);
+        }
+        catch (e) {
+          logger.warn(`Could not deserialize the item for the key '${keyInStorage}'`);
+        }
       }
 
       config.fallbackData = initData;

+ 3 - 0
packages/app/src/styles/style-app.scss

@@ -10,6 +10,9 @@
 @import '~simplebar/dist/simplebar.min.css';
 @import 'override-simplebar';
 
+// Emoji-mart style
+@import '~emoji-mart/css/emoji-mart.css';
+
 // KaTeX
 @import '~katex/dist/katex.min';
 

+ 11 - 8
packages/app/test/cypress/integration/10-install/10-install--install.spec.ts

@@ -3,22 +3,24 @@ describe('Install', () => {
 
   beforeEach(() => {
     cy.visit('/');
+    cy.getByTestid('installerForm').should('be.visible');
   });
 
   it('Successfully show installer', () => {
-    cy.getByTestid('installerForm').should('be.visible');
     cy.screenshot(`${ssPrefix}-redirect-to-installer-page`);
   });
 
   it('Sccessfully choose languages', () => {
-    cy.getByTestid('installerForm').should('be.visible');
     cy.getByTestid('dropdownLanguage').should('be.visible');
-    // TODO: should not use wait.
-    // eslint-disable-next-line cypress/no-unnecessary-waiting
-    cy.wait(1000); // waiting for load
 
-    cy.getByTestid('dropdownLanguage').click();
-    cy.get('.dropdown-menu').should('be.visible');
+    // open Language Dropdown, wait for language data to load
+    cy.waitUntil(() => {
+      // do
+      cy.getByTestid('dropdownLanguage').click();
+      // wati until
+      return cy.get('.dropdown-menu').then($elem => $elem.is(':visible'));
+    });
+
     cy.getByTestid('dropdownLanguageMenu-en_US').click();
     cy.get('.alert-success').should('be.visible');
     cy.screenshot(`${ssPrefix}-select-en_US`);
@@ -48,8 +50,9 @@ describe('Install', () => {
     cy.getByTestid('btnSubmit').click();
 
     // Redirects to the root page take a long time (more than 10000ms)
+    cy.getByTestid('grw-pagetree-item-container', { timeout: 20000 }).should('be.visible');
+
     cy.waitUntilSkeletonDisappear();
-    cy.getByTestid('grw-pagetree-item-container').should('be.visible');
     cy.screenshot(`${ssPrefix}-installed-redirect-to-root-page`, {
       blackout: ['[data-hide-in-vrt=true]']
     });

+ 2 - 1
packages/app/test/cypress/integration/30-search/30-search--search.spec.ts

@@ -116,6 +116,7 @@ context('Search all pages', () => {
     cy.wait(1500);
     cy.screenshot(`${ssPrefix}3-search-page-results`, { capture: 'viewport'});
 
+    // TODO: chlick three dots bottom, collapse sidebar doesn't working.
     cy.getByTestid('open-page-item-control-btn').eq(1).click();
     cy.getByTestid('search-result-content').should('be.visible');
     cy.get('.wiki').should('be.visible');
@@ -123,7 +124,7 @@ context('Search all pages', () => {
     cy.get('.search-result-content-body-container').scrollTo('top');
     cy.screenshot(`${ssPrefix}4-click-three-dots-menu`, {capture: 'viewport'});
 
-    //Add bookmark
+    // Add bookmark
     cy.getByTestid('add-remove-bookmark-btn').click({force: true});
     cy.get('.btn-bookmark.active').should('be.visible');
     cy.screenshot(`${ssPrefix}5-add-bookmark`, {capture: 'viewport'});

+ 37 - 18
packages/app/test/cypress/integration/50-sidebar/50-sidebar--access-to-side-bar.spec.ts

@@ -13,12 +13,14 @@ describe('Access to sidebar', () => {
       beforeEach(() => {
         cy.visit('/');
         cy.waitUntilSkeletonDisappear();
+        // Since this is a sidebar test, call collapseSidebar in beforeEach.
         cy.collapseSidebar(false);
       });
 
       describe('Test show/collapse button', () => {
         it('Successfully show sidebar', () => {
           cy.getByTestid('grw-pagetree-item-container').should('be.visible');
+
           cy.screenshot(`${ssPrefix}1-sidebar-shown`, {
             capture: 'viewport',
             // Blackout for recalculation of toc content hight
@@ -28,6 +30,7 @@ describe('Access to sidebar', () => {
 
         it('Successfully collapse sidebar', () => {
           cy.getByTestid('grw-navigation-resize-button').click({force: true});
+
           cy.screenshot(`${ssPrefix}2-sidebar-collapsed`, {
             capture: 'viewport',
             // Blackout for recalculation of toc content hight
@@ -40,6 +43,7 @@ describe('Access to sidebar', () => {
         it('Successfully access to page tree', () => {
           cy.getByTestid('grw-contextual-navigation-sub').within(() => {
             cy.getByTestid('grw-pagetree-item-container').should('be.visible');
+
             cy.screenshot(`${ssPrefix}page-tree-1-access-to-page-tree`);
           });
         });
@@ -49,34 +53,37 @@ describe('Access to sidebar', () => {
             cy.get('.grw-pagetree-open').should('be.visible');
 
             // hide page tree tiems
-            cy.get('.grw-pagetree-triangle-btn').eq(0).click();
+            cy.get('.grw-pagetree-triangle-btn').first().click();
+
             cy.screenshot(`${ssPrefix}page-tree-2-hide-page-tree-items`);
           });
         });
 
         it('Successfully click Add to Bookmarks button', () => {
           // click three dots
-          cy.get('.grw-pagetree-item-children').eq(0).within(() => {
-            cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click();
+          cy.get('.grw-pagetree-item-children').first().within(() => {
+            cy.getByTestid('open-page-item-control-btn').find('button').first().invoke('css','display','block').click();
           });
 
           cy.getByTestid('page-item-control-menu').should('have.class', 'show');
+
           cy.screenshot(`${ssPrefix}page-tree-3-before-click-button`, {
             // Blackout for recalculation of toc content hight
             blackout: ['.grw-side-contents-container', '[data-hide-in-vrt=true]'],
           });
 
           // click add remove bookmark btn
-          cy.getByTestid('page-item-control-menu').should('have.class', 'show').within(() => {
-            cy.getByTestid('add-remove-bookmark-btn').click();
-          });
+          cy.getByTestid('page-item-control-menu').should('have.class', 'show')
+          cy.getByTestid('add-remove-bookmark-btn').click();
+
 
           // show dropdown again
-          cy.get('.grw-pagetree-item-children').eq(0).within(() => {
-            cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click();
+          cy.get('.grw-pagetree-item-children').first().within(() => {
+            cy.getByTestid('open-page-item-control-btn').find('button').first().invoke('css','display','block').click();
           });
 
           cy.getByTestid('page-item-control-menu').should('have.class', 'show');
+
           cy.screenshot(`${ssPrefix}page-tree-4-after-click-button`, {
             // Blackout for recalculation of toc content hight
             blackout: ['.grw-side-contents-container', '[data-hide-in-vrt=true]'],
@@ -84,45 +91,50 @@ describe('Access to sidebar', () => {
         });
 
         it('Successfully show duplicate page modal', () => {
-          cy.get('.grw-pagetree-item-children').eq(0).within(() => {
-            cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click();
+          cy.get('.grw-pagetree-item-children').first().within(() => {
+            cy.getByTestid('open-page-item-control-btn').find('button').first().invoke('css','display','block').click();
           });
           cy.get('.dropdown-menu.show').should('be.visible').within(() => {
             cy.getByTestid('open-page-duplicate-modal-btn').click();
           });
           cy.getByTestid('page-duplicate-modal').should('be.visible').within(() => {
             cy.get('.rbt-input-main').type('_test');
+
             cy.screenshot(`${ssPrefix}page-tree-5-duplicate-page-modal`);
+
             cy.get('.modal-header > button').click();
           });
         });
 
         it('Successfully rename page', () => {
           cy.getByTestid('grw-contextual-navigation-sub').within(() => {
-            cy.get('.grw-pagetree-item-children').eq(0).within(() => {
-              cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click()
+            cy.get('.grw-pagetree-item-children').first().within(() => {
+              cy.getByTestid('open-page-item-control-btn').find('button').first().invoke('css','display','block').click()
             });
             cy.get('.dropdown-menu.show').should('be.visible').within(() => {
               cy.getByTestid('open-page-move-rename-modal-btn').click();
             });
-            cy.get('.grw-pagetree-item-children').eq(0).within(() => {
+            cy.get('.grw-pagetree-item-children').first().within(() => {
               cy.getByTestid('closable-text-input').type('_newname');
             });
+
             cy.screenshot(`${ssPrefix}page-tree-6-rename-page`);
           });
         });
 
         it('Successfully show delete page modal', () => {
           cy.getByTestid('grw-contextual-navigation-sub').within(() => {
-            cy.get('.grw-pagetree-item-children').eq(0).within(() => {
-              cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click()
+            cy.get('.grw-pagetree-item-children').first().within(() => {
+              cy.getByTestid('open-page-item-control-btn').find('button').first().invoke('css','display','block').click()
             });
             cy.get('.dropdown-menu.show').should('be.visible').within(() => {
               cy.getByTestid('open-page-delete-modal-btn').click();
             });
           });
           cy.getByTestid('page-delete-modal').should('be.visible').within(() => {
+
             cy.screenshot(`${ssPrefix}page-tree-7-delete-page-modal`);
+
             cy.get('.modal-header > button').click();
           });
         });
@@ -137,6 +149,7 @@ describe('Access to sidebar', () => {
 
           cy.getByTestid('grw-contextual-navigation-sub').within(() => {
             cy.get('.grw-sidebar-content-header.h5').find('a');
+
             cy.screenshot(`${ssPrefix}custom-sidebar-1-access-to-custom-sidebar`);
           });
         });
@@ -146,7 +159,9 @@ describe('Access to sidebar', () => {
 
           cy.get('.grw-sidebar-content-header.h5').find('a').click();
           cy.get('.CodeMirror textarea').type(content, {force: true});
+
           cy.screenshot(`${ssPrefix}custom-sidebar-2-redirect-to-editor`);
+
           cy.getByTestid('save-page-btn').click();
           cy.get('.layout-root').should('not.have.class', 'editing');
         });
@@ -154,6 +169,7 @@ describe('Access to sidebar', () => {
         it('Successfully create custom sidebar content', () => {
           cy.getByTestid('grw-contextual-navigation-sub').within(() => {
             cy.get('.grw-custom-sidebar-content').should('be.visible');
+
             cy.screenshot(`${ssPrefix}custom-sidebar-3-content-created`);
           });
         });
@@ -169,7 +185,7 @@ describe('Access to sidebar', () => {
           cy.getByTestid('grw-recent-changes').should('be.visible');
           cy.get('.list-group-item').should('be.visible');
 
-          // The scope of the capture is not narrowed because the blackout is shifted
+          // The scope of the screenshot is not narrowed because the blackout is shifted
           cy.screenshot(`${ssPrefix}recent-changes-1-access-to-recent-changes`, {
             // Blackout for recalculation of toc content hight
             blackout: ['.grw-side-contents-container', '[data-hide-in-vrt=true]'],
@@ -182,7 +198,7 @@ describe('Access to sidebar', () => {
             cy.get('.list-group-item').should('be.visible');
           });
 
-          // The scope of the capture is not narrowed because the blackout is shifted
+          // The scope of the screenshot is not narrowed because the blackout is shifted
           cy.screenshot(`${ssPrefix}recent-changes-2-switch-content-size`, {
             // Blackout for recalculation of toc content hight
             blackout: ['.grw-side-contents-container', '[data-hide-in-vrt=true]'],
@@ -199,6 +215,7 @@ describe('Access to sidebar', () => {
 
           cy.getByTestid('grw-contextual-navigation-sub').within(() => {
             cy.getByTestid('grw-tags-list').should('be.visible');
+
             cy.screenshot(`${ssPrefix}tags-1-access-to-tags`);
           });
         });
@@ -207,11 +224,12 @@ describe('Access to sidebar', () => {
           cy.get('.grw-container-convertible > div > .btn-primary').click({force: true});
           cy.collapseSidebar(true);
           cy.getByTestid('grw-tags-list').should('be.visible');
+
           cy.screenshot(`${ssPrefix}tags-2-click-all-tags-button`);
         });
       });
 
-      // TODO: No Drafts pages on GROWI version 6
+      // // TODO: No Drafts pages on GROWI version 6
       // it('Successfully access to My Drafts page', () => {
       //   cy.visit('/');
       //   cy.collapseSidebar(true);
@@ -241,6 +259,7 @@ describe('Access to sidebar', () => {
 
           cy.get('.grw-page-path-hierarchical-link').should('be.visible');
           cy.get('.grw-custom-nav-tab').should('be.visible');
+
           cy.screenshot(`${ssPrefix}access-to-trash-page`);
         });
       });

+ 1 - 0
packages/app/test/cypress/integration/50-sidebar/50-sidebar--switching-sidebar-mode.spec.ts

@@ -21,6 +21,7 @@ context('Switch sidebar mode', () => {
 
   it('Switching sidebar mode', () => {
     cy.visit('/');
+    // This test uses collapseSidebar here, because this test for the sidebar.
     cy.collapseSidebar(true, true)
     cy.get('.grw-apperance-mode-dropdown').first().click();
 

+ 1 - 1
packages/codemirror-textlint/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/codemirror-textlint",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "license": "MIT",
   "main": "dist/index.js",
   "scripts": {

+ 1 - 1
packages/core/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/core",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "GROWI Core Libraries",
   "license": "MIT",
   "keywords": [

+ 1 - 1
packages/hackmd/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/hackmd",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "GROWI js and css files to use hackmd",
   "license": "MIT",
   "main": "dist/index.js",

+ 4 - 2
packages/preset-themes/package.json

@@ -1,10 +1,12 @@
 {
   "name": "@growi/preset-themes",
   "description": "GROWI preset themes",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "license": "MIT",
   "main": "dist/libs/index.js",
-  "files": ["dist"],
+  "files": [
+    "dist"
+  ],
   "scripts": {
     "build": "yarn build:libs & yarn build:themes",
     "build:w": "yarn build:libs -w & yarn build:themes -w",

+ 1 - 1
packages/remark-drawio/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/remark-drawio",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "remark plugin to draw diagrams with draw.io (diagrams.net)",
   "license": "MIT",
   "keywords": [

+ 1 - 1
packages/remark-growi-directive/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/remark-growi-directive",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "remark plugin to support GROWI plugin (forked from remark-directive@2.0.1)",
   "license": "MIT",
   "keywords": [

+ 4 - 4
packages/remark-lsx/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/remark-lsx",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "GROWI plugin to list pages",
   "license": "MIT",
   "keywords": ["growi", "growi-plugin"],
@@ -23,9 +23,9 @@
     "test": ""
   },
   "dependencies": {
-    "@growi/core": "^6.0.0-RC.9",
-    "@growi/remark-growi-directive": "^6.0.0-RC.9",
-    "@growi/ui": "^6.0.0-RC.9",
+    "@growi/core": "^6.0.0-RC.12",
+    "@growi/remark-growi-directive": "^6.0.0-RC.12",
+    "@growi/ui": "^6.0.0-RC.12",
     "swr": "^1.3.0"
   },
   "devDependencies": {

+ 1 - 1
packages/slack/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/slack",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "license": "MIT",
   "main": "dist/index.js",
   "typings": "dist/index.d.ts",

+ 2 - 2
packages/slackbot-proxy/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/slackbot-proxy",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "license": "MIT",
   "scripts": {
     "build": "yarn tsc && tsc-alias -p tsconfig.build.json",
@@ -26,7 +26,7 @@
   },
   "dependencies": {
     "@godaddy/terminus": "^4.9.0",
-    "@growi/slack": "^6.0.0-RC.9",
+    "@growi/slack": "^6.0.0-RC.12",
     "@slack/oauth": "^2.0.1",
     "@slack/web-api": "^6.2.4",
     "@tsed/common": "^6.43.0",

+ 2 - 2
packages/ui/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/ui",
-  "version": "6.0.0-RC.9",
+  "version": "6.0.0-RC.12",
   "description": "GROWI UI Libraries",
   "license": "MIT",
   "keywords": ["growi"],
@@ -17,7 +17,7 @@
     "test": "jest --verbose"
   },
   "dependencies": {
-    "@growi/core": "^6.0.0-RC.9"
+    "@growi/core": "^6.0.0-RC.12"
   },
   "devDependencies": {
     "eslint-plugin-regex": "^1.8.0",

+ 9 - 9
yarn.lock

@@ -18284,10 +18284,10 @@ react-toastify@^9.1.1:
   dependencies:
     clsx "^1.1.1"
 
-react-transition-group@^2.3.1:
-  version "2.9.0"
-  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d"
-  integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==
+react-transition-group@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-3.0.0.tgz#36efa4db970d5eec5e3028e0c458931163fa3b9b"
+  integrity sha512-A9ojB/LWECbFj58SNfjK1X9aaAU+1olLS0DFSikvrr2KfMaiBELemHDa5dKNvcTk2t3gUtDL/PJpFrBKDfMpLg==
   dependencies:
     dom-helpers "^3.4.0"
     loose-envify "^1.4.0"
@@ -18316,16 +18316,16 @@ react@^18.2.0:
   dependencies:
     loose-envify "^1.1.0"
 
-reactstrap@^8.9.0:
-  version "8.9.0"
-  resolved "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.9.0.tgz#bca4afa3f5cd18899ef9b33d877a141886d5abae"
-  integrity sha512-pmf33YjpNZk1IfrjqpWCUMq9hk6GzSnMWBAofTBNIRJQB1zQ0Au2kzv3lPUAFsBYgWEuI9iYa/xKXHaboSiMkQ==
+reactstrap@^8.10.1:
+  version "8.10.1"
+  resolved "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.10.1.tgz#43ea596c7f82f88997a9c8aae203417910262d3f"
+  integrity sha512-StjLADa/12yMNjafrSs+UD7sZAGtKpLO9fZp++2Dj0IzJinqY7eQhXlM3nFf0q40YsIcLvQdFc9pKF8PF4f0Qg==
   dependencies:
     "@babel/runtime" "^7.12.5"
     classnames "^2.2.3"
     prop-types "^15.5.8"
     react-popper "^1.3.6"
-    react-transition-group "^2.3.1"
+    react-transition-group "^3.0.0"
 
 read-cmd-shim@^2.0.0:
   version "2.0.0"