diff --git a/frontend/src/routes/edit/EditableName.svelte b/frontend/src/routes/edit/EditableName.svelte
new file mode 100644
index 0000000..bc30002
--- /dev/null
+++ b/frontend/src/routes/edit/EditableName.svelte
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+ {textFor(status)}
+
+
+
+
+ (status = WordStatus.Favourite)}
+ active={status === WordStatus.Favourite}>Favourite
+ (status = WordStatus.Okay)} active={status === WordStatus.Okay}
+ >Okay
+ (status = WordStatus.Jokingly)}
+ active={status === WordStatus.Jokingly}>Jokingly
+ (status = WordStatus.FriendsOnly)}
+ active={status === WordStatus.FriendsOnly}>Friends only
+ (status = WordStatus.Avoid)}
+ active={status === WordStatus.Avoid}>Avoid
+
+
+
+
diff --git a/frontend/src/routes/edit/EditablePronouns.svelte b/frontend/src/routes/edit/EditablePronouns.svelte
new file mode 100644
index 0000000..cc79a47
--- /dev/null
+++ b/frontend/src/routes/edit/EditablePronouns.svelte
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+ {textFor(pronoun.status)}
+
+
+
+
+ (pronoun.status = WordStatus.Favourite)}
+ active={pronoun.status === WordStatus.Favourite}>Favourite
+ (pronoun.status = WordStatus.Okay)}
+ active={pronoun.status === WordStatus.Okay}>Okay
+ (pronoun.status = WordStatus.Jokingly)}
+ active={pronoun.status === WordStatus.Jokingly}>Jokingly
+ (pronoun.status = WordStatus.FriendsOnly)}
+ active={pronoun.status === WordStatus.FriendsOnly}>Friends only
+ (pronoun.status = WordStatus.Avoid)}
+ active={pronoun.status === WordStatus.Avoid}>Avoid
+
+
+
+
diff --git a/frontend/src/routes/edit/FieldEntry.svelte b/frontend/src/routes/edit/FieldEntry.svelte
new file mode 100644
index 0000000..d03595d
--- /dev/null
+++ b/frontend/src/routes/edit/FieldEntry.svelte
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+ {textFor(status)}
+
+
+
+
+ (status = WordStatus.Favourite)}
+ active={status === WordStatus.Favourite}>Favourite
+ (status = WordStatus.Okay)} active={status === WordStatus.Okay}
+ >Okay
+ (status = WordStatus.Jokingly)}
+ active={status === WordStatus.Jokingly}>Jokingly
+ (status = WordStatus.FriendsOnly)}
+ active={status === WordStatus.FriendsOnly}>Friends only
+ (status = WordStatus.Avoid)}
+ active={status === WordStatus.Avoid}>Avoid
+
+
+
+
diff --git a/frontend/src/routes/edit/profile/+page.svelte b/frontend/src/routes/edit/profile/+page.svelte
index b80382b..04cd432 100644
--- a/frontend/src/routes/edit/profile/+page.svelte
+++ b/frontend/src/routes/edit/profile/+page.svelte
@@ -12,11 +12,21 @@
} from "$lib/api/entities";
import FallbackImage from "$lib/components/FallbackImage.svelte";
import { userStore } from "$lib/store";
- import { Alert, Button, FormGroup, Icon, Input } from "sveltestrap";
+ import {
+ Alert,
+ Button,
+ ButtonDropdown,
+ DropdownToggle,
+ FormGroup,
+ Icon,
+ Input,
+ } from "sveltestrap";
import { encode } from "base64-arraybuffer";
import { apiFetchClient } from "$lib/api/fetch";
import IconButton from "$lib/components/IconButton.svelte";
import EditableField from "../EditableField.svelte";
+ import EditableName from "../EditableName.svelte";
+ import EditablePronouns from "../EditablePronouns.svelte";
const MAX_AVATAR_BYTES = 1_000_000;
@@ -284,56 +294,13 @@
Names
{#each names as _, index}
-
-
-
-
- (names[index].status = WordStatus.Favourite)}
- active={names[index].status === WordStatus.Favourite}
- />
- (names[index].status = WordStatus.Okay)}
- active={names[index].status === WordStatus.Okay}
- />
- (names[index].status = WordStatus.Jokingly)}
- active={names[index].status === WordStatus.Jokingly}
- />
- (names[index].status = WordStatus.FriendsOnly)}
- active={names[index].status === WordStatus.FriendsOnly}
- />
- (names[index].status = WordStatus.Avoid)}
- active={names[index].status === WordStatus.Avoid}
- />
- removeName(index)}
- />
-
+
moveName(index, true)}
+ moveDown={() => moveName(index, false)}
+ remove={() => removeName(index)}
+ />
{/each}