diff --git a/components/user/UserRepos.js b/components/user/UserRepos.js
index 04ab5ed2765..b22485eea46 100644
--- a/components/user/UserRepos.js
+++ b/components/user/UserRepos.js
@@ -13,7 +13,6 @@ import ArrowPathIcon from "@heroicons/react/24/outline/ArrowPathIcon";
import Button from "@components/Button";
export default function UserRepos({ manage = false, confirmDelete, repos }) {
-
const [reposList, setReposList] = useState(repos || []);
const [reorder, setReorder] = useState(false);
const [reposListPrevious, setReposListPrevious] = useState(repos || []);
@@ -31,14 +30,12 @@ export default function UserRepos({ manage = false, confirmDelete, repos }) {
setReposListPrevious(updatedRepos);
setReorder(false);
};
- useEffect(()=>{
- setReposList(repos)
- },[repos]);
+ useEffect(() => {
+ setReposList(repos);
+ }, [repos]);
-
const item = (repo) => (
-
-
- {!reorder && manage && (
+
+ {!reorder && manage && (
)}
{reorder && (
-
- )}
-
+
+ )}
+
- {reposList.map((repo) => (
- {manage ? manageDelete(repo) : item(repo)}
- ))}
+ list={reposList}
+ setList={setReposList}
+ disabled={!reorder}
+ tag="ul"
+ ghostClass="border-2"
+ chosenClass="border-dashed"
+ dragClass="border-red-500"
+ className="divide-y divide-primary-low"
+ >
+ {reposList.map((repo) => (
+ {manage ? manageDelete(repo) : item(repo)}
+ ))}
>
);
diff --git a/pages/account/manage/repos.js b/pages/account/manage/repos.js
index 91955a488e2..89daebc0f46 100644
--- a/pages/account/manage/repos.js
+++ b/pages/account/manage/repos.js
@@ -73,6 +73,7 @@ export default function ManageRepos({ BASE_URL, repos }) {
const listRepos = await resRepos.json();
setRepoList(listRepos);
setUrl("");
+ setIsDisabled(false);
return setShowNotification({
show: true,
type: "success",
diff --git a/pages/api/account/manage/repos.js b/pages/api/account/manage/repos.js
index c88becdde55..5d28ff777f2 100644
--- a/pages/api/account/manage/repos.js
+++ b/pages/api/account/manage/repos.js
@@ -8,16 +8,16 @@ import Profile from "@models/Profile";
export default async function handler(req, res) {
const session = await getServerSession(req, res, authOptions);
- if(!["GET","PATCH"].includes(req.method)){
+ if (!["GET", "PATCH"].includes(req.method)) {
return res.status(400).json({ error: "Invalid request: GET required" });
}
const username = session.username;
let data = [];
- if(req.method === "GET"){
+ if (req.method === "GET") {
data = await getReposApi(username);
}
- if(req.method === "PATCH"){
+ if (req.method === "PATCH") {
data = await updateReposOrderApi(username, req.body);
}
@@ -28,9 +28,9 @@ export async function updateReposOrderApi(username, data) {
await connectMongo();
const log = logger.child({ username });
- const repoList = data.map(async (repo, idx) => {
+ const repoList = data.map(async (repo, idx) => {
try {
- return Profile.findOneAndUpdate(
+ return Profile.findOneAndUpdate(
{
username,
"repos._id": repo._id,
@@ -46,9 +46,9 @@ export async function updateReposOrderApi(username, data) {
}
});
- const repos = await Promise.allSettled(repoList).then(() => {
+ const repos = await Promise.allSettled(repoList).then(() => {
return getReposApi(username);
- })
+ });
return JSON.parse(JSON.stringify(repos));
}