From 94744e01b94819fb4f5d64616ea56857b906c2dd Mon Sep 17 00:00:00 2001 From: Kabir Ramzan Date: Mon, 28 Oct 2024 17:56:02 -0500 Subject: [PATCH] feat: use "copy of" for duplicated schedules and place them under the original schedule #358 (#397) * feat: use "copy of" for duplicated schedules and place them under the original schedule #358 * fix: code style and consistency --- src/pages/background/lib/duplicateSchedule.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/pages/background/lib/duplicateSchedule.ts b/src/pages/background/lib/duplicateSchedule.ts index 753d1b79..1104a958 100644 --- a/src/pages/background/lib/duplicateSchedule.ts +++ b/src/pages/background/lib/duplicateSchedule.ts @@ -10,15 +10,18 @@ import handleDuplicate from './handleDuplicate'; */ export default async function duplicateSchedule(scheduleId: string): Promise { const schedules = await UserScheduleStore.get('schedules'); - const schedule = schedules.find(schedule => schedule.id === scheduleId); + const scheduleIndex = schedules.findIndex(schedule => schedule.id === scheduleId); - if (schedule === undefined) { + if (scheduleIndex === -1) { throw new Error(`Schedule ${scheduleId} does not exist`); } - const updatedName = await handleDuplicate(schedule.name); + const schedule = schedules[scheduleIndex]!; - schedules.push({ + const copyOfName = `Copy of ${schedule.name}`; + const updatedName = await handleDuplicate(copyOfName); + + schedules.splice(scheduleIndex + 1, 0, { id: generateRandomId(), name: updatedName, courses: JSON.parse(JSON.stringify(schedule.courses)),