From 2cf7f2a692641c7b980aea067ad77545c2961cea Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Sun, 1 Sep 2024 01:30:45 +0200 Subject: [PATCH] Split profile sections into different pages. --- assets/img/icons/folder-check.svg | 4 + assets/img/icons/folder-minus.svg | 4 + assets/img/icons/folder-minus2.svg | 4 + assets/img/icons/folder-plus.svg | 4 + assets/img/icons/folder-plus2.svg | 4 + assets/img/icons/folder-search.svg | 6 + components/alerts/alerts.vue | 344 +++++++++++++++++++++ components/header/notifications.vue | 10 +- components/stashes/create.vue | 2 +- components/stashes/stashes.vue | 72 +++++ pages/users/@username/+Page.vue | 449 ++++------------------------ pages/users/@username/+route.js | 26 +- 12 files changed, 535 insertions(+), 394 deletions(-) create mode 100755 assets/img/icons/folder-check.svg create mode 100755 assets/img/icons/folder-minus.svg create mode 100755 assets/img/icons/folder-minus2.svg create mode 100755 assets/img/icons/folder-plus.svg create mode 100755 assets/img/icons/folder-plus2.svg create mode 100755 assets/img/icons/folder-search.svg create mode 100644 components/alerts/alerts.vue create mode 100644 components/stashes/stashes.vue diff --git a/assets/img/icons/folder-check.svg b/assets/img/icons/folder-check.svg new file mode 100755 index 0000000..bbe9d0b --- /dev/null +++ b/assets/img/icons/folder-check.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/icons/folder-minus.svg b/assets/img/icons/folder-minus.svg new file mode 100755 index 0000000..7524f21 --- /dev/null +++ b/assets/img/icons/folder-minus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/icons/folder-minus2.svg b/assets/img/icons/folder-minus2.svg new file mode 100755 index 0000000..1fd0071 --- /dev/null +++ b/assets/img/icons/folder-minus2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/icons/folder-plus.svg b/assets/img/icons/folder-plus.svg new file mode 100755 index 0000000..cc2f3ba --- /dev/null +++ b/assets/img/icons/folder-plus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/icons/folder-plus2.svg b/assets/img/icons/folder-plus2.svg new file mode 100755 index 0000000..00da1be --- /dev/null +++ b/assets/img/icons/folder-plus2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/icons/folder-search.svg b/assets/img/icons/folder-search.svg new file mode 100755 index 0000000..dad771e --- /dev/null +++ b/assets/img/icons/folder-search.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/components/alerts/alerts.vue b/components/alerts/alerts.vue new file mode 100644 index 0000000..4b789ea --- /dev/null +++ b/components/alerts/alerts.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/components/header/notifications.vue b/components/header/notifications.vue index 606fb93..75c5d10 100644 --- a/components/header/notifications.vue +++ b/components/header/notifications.vue @@ -13,9 +13,17 @@ + + + + diff --git a/components/stashes/create.vue b/components/stashes/create.vue index a75a1b4..f19d262 100644 --- a/components/stashes/create.vue +++ b/components/stashes/create.vue @@ -40,7 +40,7 @@ async function createStash() { name: stashName.value, public: false, }, { - successFeedback: `Created stash '${stashName.value}'`, + successFeedback: `Stash '${stashName.value}' created`, errorFeedback: `Failed to create stash '${stashName.value}'`, appendErrorMessage: true, }); diff --git a/components/stashes/stashes.vue b/components/stashes/stashes.vue new file mode 100644 index 0000000..ab8796d --- /dev/null +++ b/components/stashes/stashes.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/pages/users/@username/+Page.vue b/pages/users/@username/+Page.vue index a949081..5f51700 100644 --- a/pages/users/@username/+Page.vue +++ b/pages/users/@username/+Page.vue @@ -15,200 +15,25 @@ {{ formatDistanceStrict(Date.now(), profile.createdAt) }} -
-
-

Stashes

- - -
- - - -
    -
  • - -
  • -
-
- -
-
-

Alerts

+ Stashes - -
+ Alerts + - - - -
+ + @@ -217,59 +42,42 @@ import { ref, inject } from 'vue'; import { formatDistanceStrict } from 'date-fns'; -import { get, del } from '#/src/api.js'; - -import StashTile from '#/components/stashes/tile.vue'; -import StashDialog from '#/components/stashes/create.vue'; -import AlertDialog from '#/components/alerts/create.vue'; +import Stashes from '#/components/stashes/stashes.vue'; +import Alerts from '#/components/alerts/alerts.vue'; const pageContext = inject('pageContext'); +const domain = pageContext.routeParams.domain; const user = pageContext.user; const profile = ref(pageContext.pageProps.profile); -const stashes = ref(pageContext.pageProps.stashes); -const alerts = ref(pageContext.pageProps.alerts); - -const done = ref(true); -const showStashDialog = ref(false); -const showAlertDialog = ref(false); - -async function reloadStashes() { - // profile.value = await get(`/users/${profile.value.id}`); - stashes.value = await get(`/users/${profile.value.id}/stashes`); -} - -async function reloadAlerts() { - alerts.value = await get('/alerts'); -} - -async function removeAlert(alert) { - if (done.value === false) { - return; - } - - done.value = false; - - const alertLabel = [ - ...alert.actors.map((actor) => actor.name), - ...alert.tags.map((tag) => tag.name), - ...alert.entities.map((entity) => entity.name), - ...alert.matches.map((match) => match.expression), - ].filter(Boolean).join(', '); - - try { - await del(`/alerts/${alert.id}`, { - undoFeedback: `Removed alert for '${alertLabel}'`, - errorFeedback: `Failed to remove alert for '${alertLabel}'`, - appendErrorMessage: true, - }); - - await reloadAlerts(); - } finally { - done.value = true; - } -} + +