diff --git a/src/lib/components/Settings/Profiles.svelte b/src/lib/components/Settings/Profiles.svelte
deleted file mode 100644
index 9b92d9b..0000000
--- a/src/lib/components/Settings/Profiles.svelte
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- Profile
-
-
-
-
-
-
-
-
diff --git a/src/lib/components/Settings/Profiles/ManageProfilesModal.svelte b/src/lib/components/Settings/Profiles/ManageProfilesModal.svelte
new file mode 100644
index 0000000..d7742ad
--- /dev/null
+++ b/src/lib/components/Settings/Profiles/ManageProfilesModal.svelte
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ {#if profileToEdit === item}
+
+ {:else}
+
{item}
+ {/if}
+
+
+ onCopy(item)} />
+ {#if item !== 'Default'}
+ onEditClicked(item)}
+ />
+ onDelete(item)} />
+ {/if}
+
+
+
+
+
diff --git a/src/lib/components/Settings/Profiles/Profiles.svelte b/src/lib/components/Settings/Profiles/Profiles.svelte
new file mode 100644
index 0000000..2e9349d
--- /dev/null
+++ b/src/lib/components/Settings/Profiles/Profiles.svelte
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Profile
+
+
+
+
+
+
+
+
+
diff --git a/src/lib/components/Settings/Settings.svelte b/src/lib/components/Settings/Settings.svelte
index 7af9094..2172ed9 100644
--- a/src/lib/components/Settings/Settings.svelte
+++ b/src/lib/components/Settings/Settings.svelte
@@ -6,7 +6,7 @@
import { promptConfirmation } from '$lib/util';
import AnkiConnectSettings from './AnkiConnectSettings.svelte';
import ReaderSettings from './Reader/ReaderSettings.svelte';
- import Profiles from './Profiles.svelte';
+ import Profiles from './Profiles/Profiles.svelte';
let transitionParams = {
x: 320,
diff --git a/src/lib/settings/settings.ts b/src/lib/settings/settings.ts
index 3683bb0..44be2be 100644
--- a/src/lib/settings/settings.ts
+++ b/src/lib/settings/settings.ts
@@ -166,6 +166,28 @@ export function deleteProfile(profileId: string) {
})
}
+export function renameProfile(oldName: string, newName: string) {
+ if (get(currentProfile) === oldName) {
+ currentProfile.set('Default');
+ }
+
+ profiles.update((profiles) => {
+ delete Object.assign(profiles, { [newName]: profiles[oldName] })[oldName];
+ return profiles
+ })
+}
+
+export function copyProfile(profileToCopy: string, newName: string) {
+ profiles.update((profiles) => {
+ return {
+ ...profiles,
+ [newName]: {
+ ...profiles[profileToCopy]
+ }
+ }
+ })
+}
+
export function changeProfile(profileId: string) {
currentProfile.set(profileId)
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index c6ed2da..9ca74ec 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,15 +1,6 @@
@@ -17,7 +8,5 @@
-
-