studio icon indicating copy to clipboard operation
studio copied to clipboard

[Remove Vuetify from Studio] Cards in Starred channels

Open MisRob opened this issue 1 month ago • 3 comments

🙂 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 https://github.com/learningequality/studio/issues/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 StudioMyChannels into a new component channelList/views/StudioChannelCard
  // StudioChannelCard.vue
  
  <KCard ...>
    ...
  </KCard>
  • [ ] Update StudioMyChannels to use StudioChannelCard
  // StudioMyChannels.vue
 ...
  <KCardGrid ...>
    <StudioChannelCard ...>
 ... 
   
  • [ ] Create a new page component channelList/views/StudioStarredChannels.vue and update

https://github.com/learningequality/studio/blob/261cc598c4a9e5dd0e2cdd6e66d366e460a01962/contentcuration/contentcuration/frontend/channelList/router.js#L38-L43

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 StudioChannelCard in StudioStarredChannels
  // StudioStarredChannels.vue
 ...
  <KCardGrid ...>
    <StudioChannelCard ...>
 ... 
   
  • [ ] Locate shared script logic between StudioMyChannels and StudioStarredChannels related to channels loading, sorting, etc. and move it to a new composable channelList/composables/useChannelList.js. Then utilize useChannelList from both StudioMyChannels and StudioStarredChannels.

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

Guidance

  • Target channel-cards branch
  • 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 ChannelList and ChannelItem

Expected UI/UX changes

  • Minor visual differences naturally stemming from the use of KDS
  • Aspect ratio and size of card thumbnail area

References

  • Builds on https://github.com/learningequality/studio/issues/5227

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-deep or /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 devserver since :hot doesn't render RTL properly)
  • [ ] User-facing strings are translated (except in Administration)
  • [ ] The notranslate class 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-utils approach. Instead, use @testing-library/vue (Vue Testing Library).

MisRob avatar Nov 03 '25 08:11 MisRob

If still interested, reserved for @yeshwanth235

MisRob avatar Nov 03 '25 09:11 MisRob

Hi @MisRob I would like to work on this issue. please assign this to me

yeshwanth235 avatar Nov 03 '25 10:11 yeshwanth235

Thank you @yeshwanth235

MisRob avatar Nov 03 '25 10:11 MisRob

This is resolved on channel-cards branch. Leaving the issue open until we merge it with other work to unstable.

MisRob avatar Dec 08 '25 16:12 MisRob