From 3b5ea89a1c6639a2d49583b1475017aee3ce3d03 Mon Sep 17 00:00:00 2001 From: Rebeka Dekany <50901361+rebekadekany@users.noreply.github.com> Date: Thu, 25 Sep 2025 11:46:28 +0200 Subject: [PATCH] Update loading spinner status (#28177) * Update test for the loading spinner component * Create a story for the loading spinner component * Move role and use CSS for spacing instead * Add a classname prop * Reuse LoadingSpinner * Use OLSpinner instead of Spinner * Use data-testid since status role was moved * Wait for journals to load * Use `isLoading` prop instead and fix the button's height * Use `isLoading` prop instead * Use LoadingSpinner instead and remove spacing * Update test for the loading spinner component * Use `isLoading` prop instead * Add aria-describedby to layout button for processing state * Replace `spinner` to `ol-spinner` * Scope status * Remove redundant `div.loading` --------- Co-authored-by: Antoine Clausse GitOrigin-RevId: 8f43b991f8f458b2abd5a4661913ac9b972d892a --- server-ce/test/helpers/project.ts | 7 ++- .../settings/settings-menu-select.tsx | 11 +--- .../components/layout-dropdown-button.tsx | 28 +++------- .../try-new-editor-button.tsx | 13 +---- .../modes/file-tree-import-from-project.tsx | 50 +++--------------- .../members-table/dropdown-button.tsx | 13 +---- .../components/settings/dropdown-setting.tsx | 9 +--- .../toolbar/change-layout-options.tsx | 6 +-- .../components/pdf-preview-hybrid-toolbar.tsx | 11 +--- .../components/pdf-synctex-controls.tsx | 10 ++-- .../components/dropdown/actions-dropdown.tsx | 10 ++-- .../settings/components/emails-section.tsx | 4 +- .../components/select-collaborators.tsx | 12 +---- .../share-project-modal-content.tsx | 13 +---- .../components/transfer-ownership-modal.tsx | 13 +---- .../components/word-count-client.tsx | 4 +- .../components/word-count-loading.tsx | 14 ----- .../components/word-count-server.tsx | 4 +- .../js/shared/components/button/button.tsx | 11 ++-- .../js/shared/components/loading-spinner.tsx | 2 +- .../js/shared/components/ol/ol-spinner.tsx | 11 +++- .../frontend/js/shared/components/select.tsx | 15 ++---- .../stories/loading-spinner.stories.tsx | 52 +++++++++++++++++++ .../components/loading-spinner.scss | 1 + .../stylesheets/pages/editor/toolbar.scss | 1 - .../pdf-preview/pdf-synctex-controls.spec.tsx | 4 +- .../components/shared/select.spec.tsx | 6 +-- 27 files changed, 123 insertions(+), 212 deletions(-) delete mode 100644 services/web/frontend/js/features/word-count-modal/components/word-count-loading.tsx create mode 100644 services/web/frontend/stories/loading-spinner.stories.tsx diff --git a/server-ce/test/helpers/project.ts b/server-ce/test/helpers/project.ts index 107cca0d95..eb64bf37ce 100644 --- a/server-ce/test/helpers/project.ts +++ b/server-ce/test/helpers/project.ts @@ -210,7 +210,7 @@ export function openFile(fileName: string, waitFor: string) { .click({ force: true }) // wait until we've switched to the selected file - cy.findByText('Loading…').should('not.exist') + cy.findByRole('status').should('not.exist') cy.findByText(waitFor) } @@ -230,7 +230,10 @@ export function createNewFile() { .click({ force: true }) // wait until we've switched to the newly created empty file - cy.findByText('Loading…').should('not.exist') + cy.findByRole('textbox', { name: 'Source Editor editing' }).within(() => { + cy.findByRole('status').should('not.exist') + cy.get('.cm-line').should('have.length', 1) + }) cy.get('.cm-line').should('have.length', 1) return fileName diff --git a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-menu-select.tsx b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-menu-select.tsx index 9bba51e28a..30d15fe1ad 100644 --- a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-menu-select.tsx +++ b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-menu-select.tsx @@ -2,8 +2,8 @@ import OLFormGroup from '@/shared/components/ol/ol-form-group' import OLFormLabel from '@/shared/components/ol/ol-form-label' import OLFormSelect from '@/shared/components/ol/ol-form-select' import { ChangeEventHandler, useCallback, useEffect, useRef } from 'react' -import { Spinner } from 'react-bootstrap' import { useEditorLeftMenuContext } from '@/features/editor-left-menu/components/editor-left-menu-context' +import OLSpinner from '@/shared/components/ol/ol-spinner' type PossibleValue = string | number | boolean @@ -82,14 +82,7 @@ export default function SettingsMenuSelect({ > {label} {loading ? ( -

-

+ ) : ( - {processing && ( -
- {t('layout_processing')} -
- )} +
+ {processing ? t('layout_processing') : ''} +
{processing ? ( -