feat(frontend): layout header + drawer + router (9 routes)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 04:12:35 +01:00
parent f29f90a16f
commit 3c5f0d571f
36 changed files with 836 additions and 2 deletions

View File

@@ -0,0 +1,4 @@
import axios from 'axios';
export default axios.create({
baseURL: import.meta.env.VITE_API_URL ?? '',
});

View File

@@ -0,0 +1,11 @@
import client from './client';
export const gardensApi = {
list: () => client.get('/api/gardens').then(r => r.data),
get: (id) => client.get(`/api/gardens/${id}`).then(r => r.data),
create: (g) => client.post('/api/gardens', g).then(r => r.data),
update: (id, g) => client.put(`/api/gardens/${id}`, g).then(r => r.data),
delete: (id) => client.delete(`/api/gardens/${id}`),
cells: (id) => client.get(`/api/gardens/${id}/cells`).then(r => r.data),
measurements: (id) => client.get(`/api/gardens/${id}/measurements`).then(r => r.data),
addMeasurement: (id, m) => client.post(`/api/gardens/${id}/measurements`, m).then(r => r.data),
};

View File

@@ -0,0 +1,10 @@
import client from './client';
export const plantingsApi = {
list: () => client.get('/api/plantings').then(r => r.data),
get: (id) => client.get(`/api/plantings/${id}`).then(r => r.data),
create: (p) => client.post('/api/plantings', p).then(r => r.data),
update: (id, p) => client.put(`/api/plantings/${id}`, p).then(r => r.data),
delete: (id) => client.delete(`/api/plantings/${id}`),
events: (id) => client.get(`/api/plantings/${id}/events`).then(r => r.data),
addEvent: (id, e) => client.post(`/api/plantings/${id}/events`, e).then(r => r.data),
};

View File

@@ -0,0 +1,8 @@
import client from './client';
export const tasksApi = {
list: (params) => client.get('/api/tasks', { params }).then(r => r.data),
get: (id) => client.get(`/api/tasks/${id}`).then(r => r.data),
create: (t) => client.post('/api/tasks', t).then(r => r.data),
update: (id, t) => client.put(`/api/tasks/${id}`, t).then(r => r.data),
delete: (id) => client.delete(`/api/tasks/${id}`),
};

View File

@@ -0,0 +1,8 @@
import client from './client';
export const varietiesApi = {
list: () => client.get('/api/varieties').then(r => r.data),
get: (id) => client.get(`/api/varieties/${id}`).then(r => r.data),
create: (v) => client.post('/api/varieties', v).then(r => r.data),
update: (id, v) => client.put(`/api/varieties/${id}`, v).then(r => r.data),
delete: (id) => client.delete(`/api/varieties/${id}`),
};