nextcloud / nextcloud/spreed

Use NcLoadingIcon from vue-lib instead of `icon-loading-small` and `icon-loading`

Open
#7,706 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature: frontend 🖌️ medium technical debt
Dominant language
PHP
Stars
2.2k
Forks
587
Avg merge
18h 27m
Merged PRs (30d)
333

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Found occurrences in Directory spreed/src (35 usages found)

  • LocalVideo.vue (1 usage found)
    • 425 .videoWrapper.icon-loading:after {
  • VideoVue.vue (1 usage found)
    • 674 .videoWrapper.icon-loading:after {
  • App.vue (1 usage found)
    • 24 :class="{ 'icon-loading': loading, 'in-call': isInCall }"
  • BotsSettings.vue (1 usage found)
    • 40 <div v-if="isLoading[bot.id]" class="bots-settings__item-loader icon icon-loading-small" />
  • ConversationAvatarEditor.vue (1 usage found)
    • 37 <div v-else class="icon-loading" />
  • ConversationPermissionsSettings.vue (2 usages found)
    • 44 <span v-show="loading && radioValue === 'all'" class="icon-loading-small" />
    • 60 <span v-show="loading && radioValue === 'restricted'" class="icon-loading-small" />
  • EditableTextField.vue (1 usage found)
    • 76 <div v-if="loading" class="icon-loading-small spinner" />
  • EmptyCallView.vue (1 usage found)
    • 128 return 'icon-loading'
  • FilesSidebarTabApp.vue (1 usage found)
    • 24 <div class="icon icon-loading" />
  • LinkShareSettings.vue (1 usage found)
    • 89 <span v-if="isSendingInvitations" class="icon-loading-small spinner" />
  • LoadingComponent.vue (1 usage found)
    • 23 <div class="icon-loading spinner" />
  • LocalVideo.vue (2 usages found)
    • 215 'icon-loading': this.isNotConnected,
    • 231 'icon-loading': this.isNotConnected,
  • MatterbridgeIntegration.vue (1 usage found)
    • 55 <span class="icon icon-loading-small" />
  • MediaDevicesPreview.vue (2 usages found)
    • 39 class="icon icon-loading" />
    • 67 class="icon icon-loading" />
  • Message.spec.js (3 usages found)
    • 686 expect(wrapper.find('.icon-loading-small').exists()).toBe(true)
    • 692 expect(wrapper.find('.icon-loading-small').exists()).toBe(false)
    • 747 expect(wrapper.find('.icon-loading-small').exists()).toBe(true)
  • MessageBody.vue (1 usage found)
    • 108 class="icon-loading-small message-status"
  • MessagesList.vue (1 usage found)
    • 35 <ul v-if="displayMessagesLoader" class="scroller__loading icon-loading" />
  • PermissionsEditor.vue (1 usage found)
    • 71 <span class="icon-loading" />
  • PublicShareAuthRequestPasswordButton.vue (1 usage found)
    • 76 'icon-loading-small-dark': this.isRequestInProgress,
  • PublicShareSidebar.vue (1 usage found)
    • 34 <span v-if="joiningConversation" class="icon icon-loading-small" />
  • RecordingServers.vue (1 usage found)
    • 54 <span v-if="loading" class="icon icon-loading-small" />
  • SignalingServers.vue (1 usage found)
    • 57 <span v-if="loading" class="icon icon-loading-small" />
  • StunServers.vue (1 usage found)
    • 50 <span v-if="loading" class="icon icon-loading-small" />
  • TurnServer.vue (2 usages found)
    • 76 <span v-if="testing" class="icon icon-loading-small" />
    • 196 'icon-loading-small': this.testing,
  • TurnServers.vue (1 usage found)
    • 55 <span v-if="loading" class="icon icon-loading-small" />
  • VideoVue.spec.js (1 usage found)
    • 160 const loadingIcon = wrapper.find('.icon-loading')
  • VideoVue.vue (2 usages found)
    • 318 'icon-loading': this.isLoading,
    • 335 'icon-loading': this.isLoading,
  • WebServerSetupChecks.vue (1 usage found)
    • 44 <span v-else class="icon icon-loading-small" />

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the listed components under spreed/src and the existing loading assertions in Message.spec.js and VideoVue.spec.js. Replace the listed icon-loading and icon-loading-small usages with NcLoadingIcon from vue-lib, preserving each loading state and styling context. Update the affected tests so they verify the new loading component and confirm all listed occurrences are addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.