-
Notifications
You must be signed in to change notification settings - Fork 254
Description
🙂 Looking for an issue? Welcome! This issue is open for contribution. If this is the first time you’re requesting an issue, please:
- Read Contributing guidelines carefully. Pay extra attention to Using generative AI. Pull requests and comments that don’t follow the guidelines won’t be answered.
- Confirm that you’ve read the guidelines in your comment.
Sub-issue of #5060.
Complexity: High
Summary
Remove Vuetify from the channel cards in Channels > Starred.
Currently, ChannelList and ChannelItem that are built with several Vuetify components are used to display the channel list.
To remove these Vuetify dependencies from Starred:
- Move logic related to a single card from
StudioMyChannelsinto a new componentchannelList/views/StudioChannelCard
// StudioChannelCard.vue
<KCard ...>
...
</KCard>- Update
StudioMyChannelsto useStudioChannelCard
// StudioMyChannels.vue
...
<KCardGrid ...>
<StudioChannelCard ...>
...
- Create a new page component
channelList/views/StudioStarredChannels.vueand update
studio/contentcuration/contentcuration/frontend/channelList/router.js
Lines 38 to 43 in 261cc59
| { | |
| name: RouteNames.CHANNELS_STARRED, | |
| path: '/starred', | |
| component: ChannelList, | |
| props: { listType: ChannelListTypes.STARRED }, | |
| }, |
to
{
name: RouteNames.CHANNELS_STARRED,
path: '/starred',
component: StudioStarredChannels,
}Note props: { listType: ChannelListTypes.STARRED } removal (in contrast to the current ChannelList, StudioStarredChannels will only have logic related to starred channels)
- Use
StudioChannelCardinStudioStarredChannels
// StudioStarredChannels.vue
...
<KCardGrid ...>
<StudioChannelCard ...>
...
- Locate shared script logic between
StudioMyChannelsandStudioStarredChannelsrelated to channels loading, sorting, etc. and move it to a new composablechannelList/composables/useChannelList.js. Then utilizeuseChannelListfrom bothStudioMyChannelsandStudioStarredChannels.
Examine carefully the current user experience and related code (ChannelList, ChannelItem), and ensure no features are lost. Do not modifify ChannelList and ChannelItem.
How to get there
- Login as
a@a.comwith passworda - Go to Channels > Starred
Guidance
- Target
channel-cardsbranch - Find detailed guidance with many code examples in KDS documentation
- Read the project for more useful references
Out of Scope
- Do not refactor any other areas of the codebase
- Do not modify
ChannelListandChannelItem
Expected UI/UX changes
- Minor visual differences naturally stemming from the use of KDS
- Aspect ratio and size of card thumbnail area
References
Acceptance criteria
These are general acceptance criteria for the project. For each sub-issue, consider which are relevant.
General
- The specification above is followed.
- Except for "Expected UI/UX changes," there are no functional or visual differences in user experience.
- There are no
::v-deepor/deep/selectors. - All user interactions are manually tested with no regressions.
- Pull request includes screenshots.
a11y and i18n
See the project's "Guidance" for useful references.
- Implementation meets a11y standards
- All components are LTR and RTL compliant (preview with
pnpm run devserversince:hotdoesn't render RTL properly) - User-facing strings are translated (except in Administration)
- The
notranslateclass been added to elements that shouldn't be translated by Google Chrome's automatic translation feature (e.g. user-generated text) - Mobile experience is reasonable
Unit tests
- If there is a unit test suite already, it is meaningfully updated (even if tests don't fail)
- If there is no unit test suite, a new one is created. Do not use obsolete
@vue/test-utilsapproach. Instead, use@testing-library/vue(Vue Testing Library).
