
馃檪 Looking for an issue? Welcome! This issue is open for contribution. If this is the first time you鈥檙e requesting an issue, please:
- Read Contributing guidelines carefully. Pay extra attention to Using generative AI. Pull requests and comments that don鈥檛 follow the guidelines won鈥檛 be answered.
- Confirm that you鈥檝e read the guidelines in your comment.

Sub-issue of #5060.
Complexity: Medium
Summary
Remove Vuetify from 'Invitations' box in Channels > My Channels.
VCard together with channelList/views/Channel/ChannelInvitation.vue built with several Vuetify components is currently used for the invitations box.
Remove dependencies on Vuetify by:
- (1) Create a new
StudioRaisedBox to replace VCard
- (2) Remove Vuetify components from
ChannelInvitations and instead use the combination of custom Studio implementation and KDS components:
KIconButton for Accept / Decline buttons
KModal for Declining Invitation confirmation dialog
Then replace this part of code:
|
<VCard |
|
v-if="invitationList.length" |
|
v-show="isChannelList" |
|
> |
|
<VList subheader> |
|
<VSubheader> |
|
{{ $tr('invitations', { count: invitationList.length }) }} |
|
</VSubheader> |
|
<ChannelInvitation |
|
v-for="invitation in invitationList" |
|
:key="invitation.id" |
|
:invitationID="invitation.id" |
|
/> |
|
</VList> |
|
</VCard> |
with:
<StudioRaisedBox ...>
<h3>{{ $tr('invitations', { count: invitationList.length }) }}</h3>
<ul>
<ChannelInvitation
v-for="invitation in invitationList"
...
/>
</ul>
</StudioRaisedBox>
(^ just approximate example, more adjustment may be needed - e.g. making <ul> part of ChannelInvitation could make more sense in migrated implementation)
How to get there
- Login as
user@b.com with password b
- Create a new channel
- Share channel with user
a@a.com
- Logout
- Login as
a@a.com with password a
- Go to Channels > My Channels
Guidance
Out of Scope
- Do not refactor any other areas of the codebase
Expected UI/UX changes
- Minor visual differences naturally stemming from the use of KDS
Acceptance criteria
General
a11y and i18n
See the project's "Guidance" for useful references.
Unit tests
馃檪 Looking for an issue? Welcome! This issue is open for contribution. If this is the first time you鈥檙e requesting an issue, please:
Sub-issue of #5060.
Complexity: Medium
Summary
Remove Vuetify from 'Invitations' box in Channels > My Channels.
VCardtogether withchannelList/views/Channel/ChannelInvitation.vuebuilt with several Vuetify components is currently used for the invitations box.Remove dependencies on Vuetify by:
StudioRaisedBoxto replaceVCardtokens.surfacefrom KDS palette. For gray text, usetokens.annotation.2dpdropshadowshared/viewsdirectoryChannelInvitationsand instead use the combination of custom Studio implementation and KDS components:KIconButtonfor Accept / Decline buttonsKModalfor Declining Invitation confirmation dialogThen replace this part of code:
studio/contentcuration/contentcuration/frontend/channelList/views/ChannelListIndex.vue
Lines 91 to 105 in a8476ad
with:
(^ just approximate example, more adjustment may be needed - e.g. making
<ul>part ofChannelInvitationcould make more sense in migrated implementation)How to get there
user@b.comwith passwordba@a.coma@a.comwith passwordaGuidance
Out of Scope
Expected UI/UX changes
Acceptance criteria
General
a11y and i18n
See the project's "Guidance" for useful references.
pnpm run devserversince:hotdoesn't render RTL properly)notranslateclass been added to elements that shouldn't be translated by Google Chrome's automatic translation feature (e.g. user-generated text)Unit tests
@vue/test-utilsapproach. Instead, use@testing-library/vue(Vue Testing Library).