diff --git a/app/app.vue b/app/app.vue index 0df2edf..de1259a 100644 --- a/app/app.vue +++ b/app/app.vue @@ -7,67 +7,21 @@ useHead({ }, }); -const title = 'Nuxt Starter Template'; +const title = 'Tímmál - Privacy-First Time Tracking'; const description = - 'A production-ready starter template powered by Nuxt UI. Build beautiful, accessible, and performant applications in minutes, not hours.'; + 'Track time spent on tickets, generate Excel-compatible reports, and streamline your work report workflow. Built for developers and consultants who value privacy and accuracy.'; useSeoMeta({ title, description, ogTitle: title, ogDescription: description, - ogImage: 'https://ui.nuxt.com/assets/templates/nuxt/starter-light.png', - twitterImage: 'https://ui.nuxt.com/assets/templates/nuxt/starter-light.png', twitterCard: 'summary_large_image', }); diff --git a/app/components/AppLogo.vue b/app/components/AppLogo.vue index edaaa16..95b1fdb 100644 --- a/app/components/AppLogo.vue +++ b/app/components/AppLogo.vue @@ -1,34 +1,3 @@ diff --git a/app/components/AppUser.vue b/app/components/AppUser.vue new file mode 100644 index 0000000..d9b6e76 --- /dev/null +++ b/app/components/AppUser.vue @@ -0,0 +1,5 @@ + + + diff --git a/app/components/TemplateMenu.vue b/app/components/TemplateMenu.vue deleted file mode 100644 index 6f6363e..0000000 --- a/app/components/TemplateMenu.vue +++ /dev/null @@ -1,58 +0,0 @@ - diff --git a/app/components/ui/logout.vue b/app/components/ui/logout.vue new file mode 100644 index 0000000..9b2f5ae --- /dev/null +++ b/app/components/ui/logout.vue @@ -0,0 +1,3 @@ + diff --git a/app/components/ui/sidebar.vue b/app/components/ui/sidebar.vue new file mode 100644 index 0000000..a5007d2 --- /dev/null +++ b/app/components/ui/sidebar.vue @@ -0,0 +1,39 @@ + + + diff --git a/app/composables/usePageTitle.ts b/app/composables/usePageTitle.ts new file mode 100644 index 0000000..d90277a --- /dev/null +++ b/app/composables/usePageTitle.ts @@ -0,0 +1,15 @@ +export const usePageTitle = () => { + const pageName = useState('pageName', () => ''); + const title = computed(() => (pageName.value.length > 0 ? `${pageName.value} - Tímmál` : 'Tímmál')); + + const setPageName = (newName: string) => { + pageName.value = newName; + useHead({ title: title.value }); + }; + + return { + title: readonly(title), + pageName: readonly(pageName), + setPageName, + }; +}; diff --git a/app/layouts/default.vue b/app/layouts/default.vue new file mode 100644 index 0000000..ef06084 --- /dev/null +++ b/app/layouts/default.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/layouts/unauthenticated.vue b/app/layouts/unauthenticated.vue new file mode 100644 index 0000000..457fea8 --- /dev/null +++ b/app/layouts/unauthenticated.vue @@ -0,0 +1,23 @@ +