From b23ed66401c538dae7aecce1d1b01cc02bc71683 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Fri, 9 Jan 2026 22:35:46 +0100 Subject: [PATCH] refactor: :recycle: Make auth store require less null checks --- app/app.vue | 8 +-- app/components/composer/composer.vue | 2 +- app/components/editor/emojis-list.vue | 4 +- app/components/editor/suggestion.ts | 4 +- app/components/modals/confirm.vue | 2 +- app/components/notes/actions.vue | 3 +- app/components/notes/menu.vue | 4 +- app/components/preferences/developer.vue | 8 +-- app/components/preferences/dialog.vue | 10 +-- .../preferences/emojis/batch-dropdown.vue | 4 -- .../preferences/emojis/dropdown.vue | 8 --- app/components/preferences/emojis/table.vue | 8 +-- .../preferences/emojis/uploader.vue | 32 ++++----- app/components/preferences/profile.vue | 10 +-- app/components/profiles/profile-actions.vue | 10 +-- app/components/profiles/profile-badges.vue | 2 +- .../profiles/profile-relationship-actions.vue | 4 +- .../sidebars/account/account-manager.vue | 2 +- .../sidebars/footer/footer-actions.vue | 5 +- .../sidebars/instance/instance-header.vue | 7 +- .../DropdownMenuCheckboxItem.vue | 2 +- .../ui/dropdown-menu/DropdownMenuContent.vue | 2 +- .../dropdown-menu/DropdownMenuSubTrigger.vue | 2 +- app/components/ui/table/TableCell.vue | 2 +- app/components/ui/table/TableHead.vue | 2 +- app/composables/CacheRefresh.ts | 4 +- app/composables/Timeline.ts | 6 +- app/layouts/app.vue | 1 - app/stores/auth.ts | 65 ++++++++++++------- app/stores/composer.ts | 6 +- app/utils/urls.ts | 2 +- biome.json | 4 +- 32 files changed, 111 insertions(+), 124 deletions(-) diff --git a/app/app.vue b/app/app.vue index 54da381..4954c7d 100644 --- a/app/app.vue +++ b/app/app.vue @@ -56,13 +56,13 @@ useSeoMeta({ titleTemplate: (titleChunk) => { return titleChunk ? `${titleChunk} ยท Versia` : "Versia"; }, - title: computed(() => authStore.instance?.title ?? ""), - ogImage: computed(() => authStore.instance?.banner?.url), - twitterTitle: computed(() => authStore.instance?.title ?? ""), + title: computed(() => authStore.instanceOptional?.title ?? ""), + ogImage: computed(() => authStore.instanceOptional?.banner?.url), + twitterTitle: computed(() => authStore.instanceOptional?.title ?? ""), twitterDescription: computed(() => convert(description.value?.content ?? ""), ), - twitterImage: computed(() => authStore.instance?.banner?.url), + twitterImage: computed(() => authStore.instanceOptional?.banner?.url), description: computed(() => convert(description.value?.content ?? "")), ogDescription: computed(() => convert(description.value?.content ?? "")), ogSiteName: "Versia", diff --git a/app/components/composer/composer.vue b/app/components/composer/composer.vue index 5bca137..0d1ee53 100644 --- a/app/components/composer/composer.vue +++ b/app/components/composer/composer.vue @@ -141,7 +141,7 @@ const composerKey = props.relation const store = useComposerStore(composerKey)(); const authStore = useAuthStore(); const charactersLeft = computed(() => { - const max = authStore.instance?.configuration.statuses.max_characters ?? 0; + const max = authStore.instance.configuration.statuses.max_characters; return max - store.rawContent.length; }); diff --git a/app/components/editor/emojis-list.vue b/app/components/editor/emojis-list.vue index 8361617..b381af1 100644 --- a/app/components/editor/emojis-list.vue +++ b/app/components/editor/emojis-list.vue @@ -1,6 +1,6 @@