From 0f214b6a1760c8d5054cd2d3c1220deea7ee2e20 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sat, 27 Apr 2024 19:02:27 -1000 Subject: [PATCH] refactor: :art: Refactor notes, event system and timelines --- bun.lockb | Bin 494484 -> 494516 bytes components/composer/composer.vue | 46 +++---- components/composer/modal.vue | 19 ++- components/sidebars/navigation.vue | 4 +- components/social-elements/notes/note.vue | 91 +++++-------- .../social-elements/notifications/notif.vue | 4 +- components/social-elements/users/Account.vue | 15 +-- components/timelines/Account.vue | 6 +- components/timelines/Local.vue | 6 +- components/timelines/Public.vue | 6 +- components/timelines/timeline.vue | 13 +- composables/EventBus.ts | 16 +++ composables/NoteData.ts | 66 ++++++++++ composables/ParsedContent.ts | 122 ++++++++++-------- composables/ResolveMentions.ts | 17 ++- layouts/app.vue | 9 ++ nuxt.config.ts | 13 ++ package.json | 1 + 18 files changed, 266 insertions(+), 188 deletions(-) create mode 100644 composables/EventBus.ts create mode 100644 composables/NoteData.ts diff --git a/bun.lockb b/bun.lockb index ac63b836ea0bc9bd9253e2cb534277eeb07342eb..26f9be64b070185febf947bb552a9e3062d57f6e 100755 GIT binary patch delta 25390 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 diff --git a/components/composer/composer.vue b/components/composer/composer.vue index 9a356aa..ce4b90b 100644 --- a/components/composer/composer.vue +++ b/components/composer/composer.vue @@ -32,10 +32,6 @@ const props = defineProps<{ instance: Instance; }>(); -const emits = defineEmits<{ - send: []; -}>(); - const submitting = ref(false); const tokenData = useTokenData(); const client = useMegalodon(tokenData); @@ -43,29 +39,29 @@ const client = useMegalodon(tokenData); const send = async () => { submitting.value = true; - await fetch( - new URL("/api/v1/statuses", client.value?.baseUrl ?? "").toString(), - { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${tokenData.value?.access_token}`, - }, - body: JSON.stringify({ - status: content.value, - content_type: "text/markdown", - }), + fetch(new URL("/api/v1/statuses", client.value?.baseUrl ?? "").toString(), { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${tokenData.value?.access_token}`, }, - ).then((res) => { - if (!res.ok) { - throw new Error("Failed to send status"); - } + body: JSON.stringify({ + status: content.value, + content_type: "text/markdown", + }), + }) + .then(async (res) => { + if (!res.ok) { + throw new Error("Failed to send status"); + } - content.value = ""; - submitting.value = false; - }); - - emits("send"); + content.value = ""; + submitting.value = false; + useEvent("composer:send", await res.json()); + }) + .finally(() => { + useEvent("composer:close"); + }); }; const characterLimit = computed( diff --git a/components/composer/modal.vue b/components/composer/modal.vue index 0f52262..61008d9 100644 --- a/components/composer/modal.vue +++ b/components/composer/modal.vue @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/components/sidebars/navigation.vue b/components/sidebars/navigation.vue index cce384f..453bf5e 100644 --- a/components/sidebars/navigation.vue +++ b/components/sidebars/navigation.vue @@ -47,7 +47,6 @@ -