aboutsummaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/api/preferences/+server.ts20
-rw-r--r--src/routes/user/[user]/+page.svelte29
2 files changed, 44 insertions, 5 deletions
diff --git a/src/routes/api/preferences/+server.ts b/src/routes/api/preferences/+server.ts
index 2d51c87a..151af298 100644
--- a/src/routes/api/preferences/+server.ts
+++ b/src/routes/api/preferences/+server.ts
@@ -1,5 +1,10 @@
import { userIdentity } from '$lib/Data/AniList/identity';
-import { getUserPreferences, toggleHideMissingBadges, setCSS } from '$lib/Database/userPreferences';
+import {
+ getUserPreferences,
+ toggleHideMissingBadges,
+ setCSS,
+ setBiography
+} from '$lib/Database/userPreferences';
const unauthorised = new Response('Unauthorised', { status: 401 });
@@ -28,21 +33,26 @@ export const PUT = async ({ url, cookies, request }) => {
})
).id;
- if (url.searchParams.get('toggleHideMissingBadges') !== null) {
+ if (url.searchParams.get('toggleHideMissingBadges') !== null)
return Response.json(await toggleHideMissingBadges(userId), {
headers: {
'Access-Control-Allow-Origin': 'https://due.moe'
}
});
- }
- if (url.searchParams.get('badgeWallCSS') !== null) {
+ if (url.searchParams.get('badgeWallCSS') !== null)
return Response.json(await setCSS(userId, await request.text()), {
headers: {
'Access-Control-Allow-Origin': 'https://due.moe'
}
});
- }
+
+ if (url.searchParams.get('biography') !== null)
+ return Response.json(await setBiography(userId, (await request.text()).slice(0, 3000)), {
+ headers: {
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ });
return Response.json(await getUserPreferences(Number(url.searchParams.get('id') || 0)), {
headers: {
diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte
index 7cffd647..71d03e37 100644
--- a/src/routes/user/[user]/+page.svelte
+++ b/src/routes/user/[user]/+page.svelte
@@ -63,6 +63,9 @@
const getBadgeWallCSS = () =>
(document.getElementById('badgeWallCSS') as HTMLTextAreaElement).value;
+ const getBiography = () =>
+ (document.getElementById('biography') as HTMLTextAreaElement).value.slice(0, 3000);
+
// 8.5827814569536423841e0
</script>
@@ -211,7 +214,33 @@
<p />
+ Biography
+
+ <button
+ on:click={() => {
+ if (userData)
+ fetch(root(`/api/preferences?id=${userData.id}&biography`), {
+ method: 'PUT',
+ body: getBiography()
+ }).then(() =>
+ fetch(root(`/api/preferences?id=${userData?.id}`))
+ .then((rawPreferences) => rawPreferences.json())
+ .then((JSONpreferences) => (preferences = JSONpreferences))
+ );
+ }}>Save</button
+ >
+ <textarea
+ value={preferences.biography}
+ rows="5"
+ cols="100"
+ id="biography"
+ placeholder="Markdown supported!"
+ />
+
+ <p />
+
Badge Wall Custom CSS
+
<button
on:click={() => {
if (userData)