openedx / openedx/frontend-app-authoring

Merge DraggableList implementations

Open
#2,490 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue help wanted
Dominant language
TypeScript
Stars
17
Forks
218
Avg merge
9d 20h
Merged PRs (30d)
20

Description

This repo has two very similar implementations of DraggableList:

  1. https://github.com/openedx/frontend-app-authoring/blob/fdf98a140/src/generic/DraggableList/DraggableList.jsx
  2. https://github.com/openedx/frontend-app-authoring/blob/fdf98a140/src/course-outline/drag-helper/DraggableList.tsx

The historic reason is that component 1 was part of the editors code, which used to be a separate repo. Now that the editors live in the same repo, there are quite a few redundancies like this.

If possible, they should be merged into a single DraggableList component that works for all the use cases currently covered by both. Make sure the final result uses TypeScript and has no console warnings.

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

Compare the two named implementations: src/generic/DraggableList/DraggableList.jsx and src/course-outline/drag-helper/DraggableList.tsx, then inspect how each is used. Determine the shared component API needed for both current use cases. Done means one TypeScript DraggableList replaces both implementations and the result produces no console warnings.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.