diff --git a/client/src/api/core/OpenAPI.ts b/client/src/api/core/OpenAPI.ts index 77fa96a..03da729 100644 --- a/client/src/api/core/OpenAPI.ts +++ b/client/src/api/core/OpenAPI.ts @@ -29,4 +29,4 @@ export const OpenAPI: OpenAPIConfig = { PASSWORD: undefined, HEADERS: undefined, ENCODE_PATH: undefined, -}; +}; diff --git a/client/src/api/services/DefaultService.ts b/client/src/api/services/DefaultService.ts index 4ceef98..f1f9076 100644 --- a/client/src/api/services/DefaultService.ts +++ b/client/src/api/services/DefaultService.ts @@ -149,86 +149,6 @@ export class DefaultService { }, }); } - /** - * Get system income categories - * @returns any List of system income categories" - * @throws ApiError - */ - public static getIncomesCategories(): CancelablePromise { - return __request(OpenAPI, { - method: "GET", - url: "/incomes/categories", - }); - } - /** - * Get user's custom income categories - * @returns any List of user's custom income categories - * @throws ApiError - */ - public static getIncomesCustomCategories(): CancelablePromise { - return __request(OpenAPI, { - method: "GET", - url: "/incomes/custom-categories", - }); - } - /** - * Create a new custom income category - * @param requestBody - * @returns any Income category created - * @throws ApiError - */ - public static postIncomesCustomCategories(requestBody: { - category_name: string; - icon_url?: string; - }): CancelablePromise { - return __request(OpenAPI, { - method: "POST", - url: "/incomes/custom-categories", - body: requestBody, - mediaType: "application/json", - }); - } - /** - * Update an income category - * @param id - * @param requestBody - * @returns any Income category updated - * @throws ApiError - */ - public static putIncomesCustomCategories( - id: string, - requestBody: { - category_name: string; - icon_url?: string; - } - ): CancelablePromise { - return __request(OpenAPI, { - method: "PUT", - url: "/incomes/custom-categories/{id}", - path: { - id: id, - }, - body: requestBody, - mediaType: "application/json", - }); - } - /** - * Delete an income category - * @param id - * @returns void - * @throws ApiError - */ - public static deleteIncomesCustomCategories( - id: string - ): CancelablePromise { - return __request(OpenAPI, { - method: "DELETE", - url: "/incomes/custom-categories/{id}", - path: { - id: id, - }, - }); - } /** * List all incomes * @param start @@ -257,10 +177,9 @@ export class DefaultService { */ public static postIncomes(requestBody?: { amount: number; - date?: string; + date: string; source?: string; description?: string; - category_id?: number; }): CancelablePromise { return __request(OpenAPI, { method: "POST", diff --git a/client/src/components/IncomeForm.tsx b/client/src/components/IncomeForm.tsx index eac4750..c6a8ef0 100644 --- a/client/src/components/IncomeForm.tsx +++ b/client/src/components/IncomeForm.tsx @@ -1,7 +1,6 @@ import React, { useState, useEffect } from "react"; import type { Income, IncomeFormData } from "../types/Income"; -import { useIncomeCategories } from "../hooks/useIncomeCategories"; -import { Button, TextField, Select, Dialog, Skeleton } from "../ui"; +import { Button, TextField, Dialog, DatePicker } from "../ui"; import { useMascot } from "../hooks/useMascot"; interface IncomeFormProps { @@ -17,18 +16,16 @@ export const IncomeForm: React.FC = ({ onCancel, open, }) => { - const { categories, loading: categoriesLoading } = useIncomeCategories(); const [saving, setSaving] = useState(false); const { showSuccess, showError } = useMascot(); const [formData, setFormData] = useState({ - amount: income?.amount || 0, + amount: income?.amount || 1, date: income?.date ? new Date(income.date).toISOString().split("T")[0] : new Date().toISOString().split("T")[0], source: income?.source || "", description: income?.description || "", - category_id: income?.category_id || 1, }); useEffect(() => { @@ -38,15 +35,13 @@ export const IncomeForm: React.FC = ({ date: new Date(income.date).toISOString().split("T")[0], source: income.source, description: income.description || "", - category_id: income.category_id, }); } else { setFormData({ - amount: 0, + amount: 1, date: new Date().toISOString().split("T")[0], source: "", description: "", - category_id: 1, }); } }, [income, open]); @@ -72,11 +67,17 @@ export const IncomeForm: React.FC = ({ ) => { setFormData((prev) => ({ ...prev, - [field]: - field === "amount" || field === "category_id" ? Number(value) : value, + [field]: field === "amount" ? Number(value) : value, })); }; + const handleDateChange = (date: Date | null) => { + if (date) { + const formattedDate = date.toISOString().split("T")[0]; + handleChange("date", formattedDate); + } + }; + return ( = ({ onChange={(e) => handleChange("amount", e.target.value)} required fullWidth + min={1} /> - handleChange("date", e.target.value)} - fullWidth + size="medium" + required /> = ({ value={formData.source ?? ""} onChange={(e) => handleChange("source", e.target.value)} fullWidth + required /> - {categoriesLoading ? ( - - ) : ( -
- -