From a845edb9c745911d41a5288660c79dfcab8da432 Mon Sep 17 00:00:00 2001 From: David Arranz Date: Wed, 17 Jul 2024 13:03:02 +0200 Subject: [PATCH] . --- .../quotes/components/SortableDataTable.tsx | 7 ------- .../editors/QuoteDetailsCardEditor.tsx | 13 ++++++++++-- .../editors/QuoteGeneralCardEditor.tsx | 4 ++-- client/src/app/quotes/create.tsx | 2 -- client/src/app/quotes/edit.tsx | 17 ++++++++++++---- .../components/Forms/FormCurrencyField.tsx | 20 ++++++++----------- .../components/Forms/FormPercentageField.tsx | 12 +++++++---- .../components/Forms/FormQuantityField.tsx | 11 +++++++--- .../Layout/components/UserButton.tsx | 1 - .../ProtectedRoute/ProtectedRoute.tsx | 1 - .../contexts/common/domain/RuleValidator.ts | 1 - .../common/domain/entities/Quantity.test.ts | 1 - 12 files changed, 50 insertions(+), 40 deletions(-) diff --git a/client/src/app/quotes/components/SortableDataTable.tsx b/client/src/app/quotes/components/SortableDataTable.tsx index bd02583..b7a15a6 100644 --- a/client/src/app/quotes/components/SortableDataTable.tsx +++ b/client/src/app/quotes/components/SortableDataTable.tsx @@ -202,13 +202,6 @@ export function SortableDataTable({ columns, data, actions }: SortableDataTableP updateItem: (rowIndex: number, rowData: unknown, fieldName: string, value: unknown) => { // Skip page index reset until after next rerender // skipAutoResetPageIndex(); - console.log({ - rowIndex, - rowData, - fieldName, - value, - }); - actions.update(rowIndex, { ...rowData, [`${fieldName}`]: value }); }, }, diff --git a/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx b/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx index ad8fde6..7e09237 100644 --- a/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx +++ b/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx @@ -7,14 +7,20 @@ import { import { DataTableProvider } from "@/lib/hooks"; import { cn } from "@/lib/utils"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/ui"; -import { CurrencyData, Quantity } from "@shared/contexts"; +import { CurrencyData, Language, Quantity } from "@shared/contexts"; import { t } from "i18next"; import { useCallback, useState } from "react"; import { useFieldArray, useFormContext } from "react-hook-form"; import { useDetailColumns } from "../../hooks"; import { SortableDataTable } from "../SortableDataTable"; -export const QuoteDetailsCardEditor = ({ currency }: { currency: CurrencyData }) => { +export const QuoteDetailsCardEditor = ({ + currency, + language, +}: { + currency: CurrencyData; + language: Language; +}) => { const { control, register, getValues } = useFormContext(); const { fields, ...fieldActions } = useFieldArray({ @@ -75,6 +81,7 @@ export const QuoteDetailsCardEditor = ({ currency }: { currency: CurrencyData }) { required label={t("quotes.form_fields.lang_code.label")} description={t("quotes.form_fields.lang_code.desc")} - disabled={formState.disabled} + //disabled={formState.disabled} placeholder={t("quotes.form_fields.lang_code.placeholder")} {...register("lang_code", { required: true, @@ -112,7 +112,7 @@ export const QuoteGeneralCardEditor = () => { required label={t("quotes.form_fields.currency_code.label")} description={t("quotes.form_fields.currency_code.desc")} - disabled={formState.disabled} + //disabled={formState.disabled} placeholder={t("quotes.form_fields.currency_code.placeholder")} {...register("currency_code", { required: true, diff --git a/client/src/app/quotes/create.tsx b/client/src/app/quotes/create.tsx index 15c5f64..1d46fb3 100644 --- a/client/src/app/quotes/create.tsx +++ b/client/src/app/quotes/create.tsx @@ -44,8 +44,6 @@ export const QuoteCreate = () => { }, [watch, setWarnWhen]); const onSubmit: SubmitHandler = async (formData) => { - console.log(JSON.stringify(formData)); - try { setWarnWhen(false); mutate(formData, { diff --git a/client/src/app/quotes/edit.tsx b/client/src/app/quotes/edit.tsx index 89f04e1..029006b 100644 --- a/client/src/app/quotes/edit.tsx +++ b/client/src/app/quotes/edit.tsx @@ -8,7 +8,7 @@ import { import { calculateItemTotals } from "@/lib/calc"; import { useUrlId } from "@/lib/hooks/useUrlId"; import { Badge, Button, Form, Tabs, TabsContent, TabsList, TabsTrigger } from "@/ui"; -import { CurrencyData, IUpdateQuote_Request_DTO, MoneyValue } from "@shared/contexts"; +import { CurrencyData, IUpdateQuote_Request_DTO, Language, MoneyValue } from "@shared/contexts"; import { t } from "i18next"; import { useEffect, useState } from "react"; import { SubmitHandler, useForm } from "react-hook-form"; @@ -23,9 +23,11 @@ interface QuoteDataForm extends IUpdateQuote_Request_DTO {} export const QuoteEdit = () => { const navigate = useNavigate(); const quoteId = useUrlId(); + const [quoteCurrency, setQuoteCurrency] = useState( CurrencyData.createDefaultCode().object ); + const [quoteLanguage, setQuoteLanguage] = useState(Language.createDefaultCode().object); /*const { data: userIdentity } = useGetIdentity(); console.log(userIdentity); @@ -130,16 +132,23 @@ export const QuoteEdit = () => { const { unsubscribe } = watch((_, { name, type }) => { const value = getValues(); - console.log(value); + console.log("USEEFFECT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + console.log(name); if (name) { if (name === "currency_code") { setQuoteCurrency( - CurrencyData.createFromCode(value.lang_code ?? CurrencyData.DEFAULT_CURRENCY_CODE) + CurrencyData.createFromCode(value.currency_code ?? CurrencyData.DEFAULT_CURRENCY_CODE) .object ); } + if (name === "lang_code") { + setQuoteLanguage( + Language.createFromCode(value.lang_code ?? Language.DEFAULT_LANGUAGE_CODE).object + ); + } + if (name === "items") { const { items } = value; let quoteSubtotal = MoneyValue.create().object; @@ -232,7 +241,7 @@ export const QuoteEdit = () => { - + diff --git a/client/src/components/Forms/FormCurrencyField.tsx b/client/src/components/Forms/FormCurrencyField.tsx index 2aa1299..06ccbec 100644 --- a/client/src/components/Forms/FormCurrencyField.tsx +++ b/client/src/components/Forms/FormCurrencyField.tsx @@ -1,6 +1,6 @@ import { cn } from "@/lib/utils"; import { FormControl, FormDescription, FormField, FormItem, InputProps } from "@/ui"; -import { CurrencyData, MoneyValue } from "@shared/contexts"; +import { CurrencyData, Language, MoneyValue, MoneyValueObject } from "@shared/contexts"; import { cva, type VariantProps } from "class-variance-authority"; import * as React from "react"; import CurrencyInput, { CurrencyInputOnChangeValues } from "react-currency-input-field"; @@ -38,6 +38,7 @@ export type FormCurrencyFieldProps< UseControllerProps & VariantProps & { currency: CurrencyData; + language: Language; scale: number; }; @@ -56,15 +57,16 @@ export const FormCurrencyField = React.forwardRef(""); + const [inputValue, setInputValue] = React.useState(""); const transform = { - input: (value: any) => { + input: (value: MoneyValueObject) => { if (typeof value !== "object") { return value; } @@ -75,19 +77,13 @@ export const FormCurrencyField = React.forwardRef { const { value: amount } = values ?? { value: null }; - setOldValue(amount ?? ""); + setInputValue(amount ?? ""); const moneyOrError = MoneyValue.createFromFormattedValue(amount, currency.code); if (moneyOrError.isFailure) { diff --git a/client/src/components/Forms/FormPercentageField.tsx b/client/src/components/Forms/FormPercentageField.tsx index e10e6f0..5d11d2e 100644 --- a/client/src/components/Forms/FormPercentageField.tsx +++ b/client/src/components/Forms/FormPercentageField.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { cn } from "@/lib/utils"; import { FormControl, FormDescription, FormField, FormItem, InputProps } from "@/ui"; -import { Percentage } from "@shared/contexts"; +import { Percentage, PercentageObject } from "@shared/contexts"; import { cva, type VariantProps } from "class-variance-authority"; import CurrencyInput, { CurrencyInputOnChangeValues } from "react-currency-input-field"; import { FieldPath, FieldValues, UseControllerProps, useFormContext } from "react-hook-form"; @@ -63,8 +63,10 @@ export const FormPercentageField = React.forwardRef< const { control } = useFormContext(); + const [inputValue, setInputValue] = React.useState(""); + const transform = { - input: (value: any) => { + input: (value: PercentageObject) => { if (typeof value !== "object") { return value; } @@ -74,12 +76,14 @@ export const FormPercentageField = React.forwardRef< throw percentageOrError.error; } - return percentageOrError.object.toString(); + const result = percentageOrError.object.toString(); + return inputValue.endsWith(",") ? result.replace(/.0$/, ",") : result; }, output: (value: string | undefined, name?: string, values?: CurrencyInputOnChangeValues) => { - console.log(values); const { value: amount } = values ?? { value: null }; + setInputValue(amount ?? ""); + const percentageOrError = Percentage.createFromFormattedValue(amount); if (percentageOrError.isFailure) { diff --git a/client/src/components/Forms/FormQuantityField.tsx b/client/src/components/Forms/FormQuantityField.tsx index cfcad85..613e99e 100644 --- a/client/src/components/Forms/FormQuantityField.tsx +++ b/client/src/components/Forms/FormQuantityField.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { cn } from "@/lib/utils"; import { FormControl, FormDescription, FormField, FormItem, InputProps } from "@/ui"; -import { Quantity } from "@shared/contexts"; +import { Quantity, QuantityObject } from "@shared/contexts"; import { cva, type VariantProps } from "class-variance-authority"; import CurrencyInput, { CurrencyInputOnChangeValues } from "react-currency-input-field"; import { FieldPath, FieldValues, UseControllerProps, useFormContext } from "react-hook-form"; @@ -60,8 +60,10 @@ export const FormQuantityField = React.forwardRef(""); + const transform = { - input: (value: any) => { + input: (value: QuantityObject) => { if (typeof value !== "object") { return value; } @@ -71,11 +73,14 @@ export const FormQuantityField = React.forwardRef { const { value: amount } = values ?? { value: null }; + setInputValue(amount ?? ""); + const quantityOrError = Quantity.createFromFormattedValue(amount); if (quantityOrError.isFailure) { throw quantityOrError.error; diff --git a/client/src/components/Layout/components/UserButton.tsx b/client/src/components/Layout/components/UserButton.tsx index 42d9a78..8cb7dae 100644 --- a/client/src/components/Layout/components/UserButton.tsx +++ b/client/src/components/Layout/components/UserButton.tsx @@ -33,7 +33,6 @@ export const UserButton = () => { }, }); const { data, status } = useGetProfile(); - console.log(data, status); const openUserMenu = (event: SyntheticEvent) => { event.preventDefault(); diff --git a/client/src/components/ProtectedRoute/ProtectedRoute.tsx b/client/src/components/ProtectedRoute/ProtectedRoute.tsx index 8e77cfa..73a7630 100644 --- a/client/src/components/ProtectedRoute/ProtectedRoute.tsx +++ b/client/src/components/ProtectedRoute/ProtectedRoute.tsx @@ -15,7 +15,6 @@ export const ProtectedRoute = ({ children }: ProctectRouteProps) => { useEffect(() => { if (profileStatus.isSuccess && i18n.language !== profile?.lang_code) { - console.log(profile); i18n.changeLanguage(profile?.lang_code); } }, [profile, profileStatus, i18n]); diff --git a/shared/lib/contexts/common/domain/RuleValidator.ts b/shared/lib/contexts/common/domain/RuleValidator.ts index 01dcffe..35f1426 100644 --- a/shared/lib/contexts/common/domain/RuleValidator.ts +++ b/shared/lib/contexts/common/domain/RuleValidator.ts @@ -53,7 +53,6 @@ export class RuleValidator { public static validateFnc(ruleFnc: (value: any) => any) { return (value: any, helpers) => { const result = ruleFnc(value); - console.log(value); return result.isSuccess ? value : helpers.message({ diff --git a/shared/lib/contexts/common/domain/entities/Quantity.test.ts b/shared/lib/contexts/common/domain/entities/Quantity.test.ts index 3746605..7bd180b 100644 --- a/shared/lib/contexts/common/domain/entities/Quantity.test.ts +++ b/shared/lib/contexts/common/domain/entities/Quantity.test.ts @@ -116,7 +116,6 @@ describe("Quantity Value Object", () => { const quantity = Quantity.create({ amount: 5, scale: 2 }).object; const incrementedQuantity = quantity.increment().object; - console.log(quantity.toNumber()); expect(incrementedQuantity.toNumber()).toBe(0.06); });