-
+
diff --git a/frontend/src/api/families.ts b/frontend/src/api/families.ts
new file mode 100644
index 0000000..ac9bff8
--- /dev/null
+++ b/frontend/src/api/families.ts
@@ -0,0 +1,19 @@
+export interface Family {
+ id: number
+ name: string
+ owner_id: number
+ telegram_chat_id: number | null
+ telegram_chat_name: string | null
+ created_at: string
+ updated_at: string
+}
+
+export async function getFamilyById(id: number): Promise {
+ const response = await fetch(`/api/v1/families/${id}`)
+
+ if (!response.ok) {
+ throw new Error(`Failed to fetch family: ${response.status}`)
+ }
+
+ return response.json() as Promise
+}
diff --git a/frontend/src/components/Header.vue b/frontend/src/components/Header.vue
index a6889d1..8f790b3 100644
--- a/frontend/src/components/Header.vue
+++ b/frontend/src/components/Header.vue
@@ -6,6 +6,13 @@ import { useI18n } from '@/i18n';
const emit = defineEmits<{
navigate: [screen: string];
}>();
+
+const props = withDefaults(defineProps<{
+ familyName?: string;
+}>(), {
+ familyName: '',
+});
+
const { t } = useI18n();
const currentHour = ref(new Date().getHours());
@@ -51,7 +58,7 @@ onBeforeUnmount(() => {
{{ greeting }}
-
{{ t('header.familyName') }}
+
{{ props.familyName || t('header.familyName') }}
diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts
new file mode 100644
index 0000000..36f5022
--- /dev/null
+++ b/frontend/src/vite-env.d.ts
@@ -0,0 +1,9 @@
+///
+
+interface ImportMetaEnv {
+ readonly VITE_FAMILY_ID?: string
+}
+
+interface ImportMeta {
+ readonly env: ImportMetaEnv
+}
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
index d010dc9..a31cb3c 100644
--- a/frontend/vite.config.ts
+++ b/frontend/vite.config.ts
@@ -11,6 +11,14 @@ export default defineConfig({
vue(),
tailwindcss(),
],
+ server: {
+ proxy: {
+ '/api': {
+ target: 'http://localhost:8000',
+ changeOrigin: true,
+ },
+ },
+ },
resolve: {
alias: {
// Alias @ to the src directory