feat(frontend): add API client, layout, and routing
- Create Axios-based API client with sources, jobs, and dashboard endpoints - Add responsive Layout component with navigation sidebar - Set up React Router with Dashboard, Backups, and Settings routes - Configure TanStack Query provider with default options - Use lucide-react for navigation icons
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
import {timeInterval} from "./interval.js";
|
||||
import {durationDay, durationMinute} from "./duration.js";
|
||||
|
||||
export const timeDay = timeInterval(
|
||||
date => date.setHours(0, 0, 0, 0),
|
||||
(date, step) => date.setDate(date.getDate() + step),
|
||||
(start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
|
||||
date => date.getDate() - 1
|
||||
);
|
||||
|
||||
export const timeDays = timeDay.range;
|
||||
|
||||
export const utcDay = timeInterval((date) => {
|
||||
date.setUTCHours(0, 0, 0, 0);
|
||||
}, (date, step) => {
|
||||
date.setUTCDate(date.getUTCDate() + step);
|
||||
}, (start, end) => {
|
||||
return (end - start) / durationDay;
|
||||
}, (date) => {
|
||||
return date.getUTCDate() - 1;
|
||||
});
|
||||
|
||||
export const utcDays = utcDay.range;
|
||||
|
||||
export const unixDay = timeInterval((date) => {
|
||||
date.setUTCHours(0, 0, 0, 0);
|
||||
}, (date, step) => {
|
||||
date.setUTCDate(date.getUTCDate() + step);
|
||||
}, (start, end) => {
|
||||
return (end - start) / durationDay;
|
||||
}, (date) => {
|
||||
return Math.floor(date / durationDay);
|
||||
});
|
||||
|
||||
export const unixDays = unixDay.range;
|
||||
Reference in New Issue
Block a user