diff --git a/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx b/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx index adaa719..e75e574 100644 --- a/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx +++ b/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx @@ -8,6 +8,7 @@ import { DataTableProvider } from "@/lib/hooks"; import { cn } from "@/lib/utils"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/ui"; import { CurrencyData, Language, Quantity } from "@shared/contexts"; +import { ColumnDef } from "@tanstack/react-table"; import { t } from "i18next"; import { useCallback, useState } from "react"; import { useFieldArray, useFormContext } from "react-hook-form"; @@ -30,7 +31,7 @@ export const QuoteDetailsCardEditor = ({ name: "items", }); - const columns = useDetailColumns( + const columns: ColumnDef[] = useDetailColumns( [ /*{ id: "row_id" as const, @@ -82,7 +83,7 @@ export const QuoteDetailsCardEditor = ({ header: () => (
{t("quotes.form_fields.items.unit_price.label")}
), - cell: ({ row: { index }, column: { id } }) => { + cell: ({ row: { index } }) => { return ( {t("quotes.form_fields.items.subtotal_price.label")} ), size: 12, - cell: ({ row: { index }, column: { id } }) => { + cell: ({ row: { index } }) => { return ( {t("quotes.form_fields.items.total_price.label")} ), size: 12, - cell: ({ row: { index }, column: { id } }) => { + cell: ({ row: { index } }) => { return ( { }, onSuccess: (data) => { reset(getValues()); - toast("Cotización guardada"); + toast.success("Cotización guardada"); navigate(`/quotes/edit/${data.id}`, { relative: "path", replace: true }); }, }); diff --git a/client/src/app/quotes/edit.tsx b/client/src/app/quotes/edit.tsx index ed37b3d..d941799 100644 --- a/client/src/app/quotes/edit.tsx +++ b/client/src/app/quotes/edit.tsx @@ -15,6 +15,7 @@ import { useEffect, useMemo, useState } from "react"; import { SubmitHandler, useForm } from "react-hook-form"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; + import { QuotePricesResume } from "./components"; import { QuoteDetailsCardEditor, QuoteGeneralCardEditor } from "./components/editors"; import { useQuotes } from "./hooks"; @@ -140,7 +141,7 @@ export const QuoteEdit = () => { //onSettled: () => {}, onSuccess: () => { reset(getValues()); - toast("Cotización guardada"); + toast.success("Cotización guardada"); //clear(); }, }); diff --git a/client/src/app/quotes/hooks/useDetailColumns.tsx b/client/src/app/quotes/hooks/useDetailColumns.tsx index 2f57a66..1dfaff2 100644 --- a/client/src/app/quotes/hooks/useDetailColumns.tsx +++ b/client/src/app/quotes/hooks/useDetailColumns.tsx @@ -9,7 +9,7 @@ import { ColumnDef, Row, Table } from "@tanstack/react-table"; import { useMemo } from "react"; // eslint-disable-next-line @typescript-eslint/no-unused-vars -export function useDetailColumns( +export function useDetailColumns( columns: ColumnDef[], options: { enableDragHandleColumn?: boolean; @@ -17,7 +17,7 @@ export function useDetailColumns( enableActionsColumn?: boolean; rowActionFn?: DataTablaRowActionFunction; } = {} -): ColumnDef[] { +): ColumnDef[] { const { enableDragHandleColumn = false, enableSelectionColumn = false, diff --git a/client/src/app/settings/edit.tsx b/client/src/app/settings/edit.tsx index 088f125..8b987ed 100644 --- a/client/src/app/settings/edit.tsx +++ b/client/src/app/settings/edit.tsx @@ -81,7 +81,7 @@ export const SettingsEditor = () => { //onSettled: () => {}, onSuccess: () => { reset(getValues()); - toast("Ajustes guardados"); + toast.success("Ajustes guardados"); }, }); }; diff --git a/client/src/components/Forms/FormTextAreaField.tsx b/client/src/components/Forms/FormTextAreaField.tsx index 02ac3d2..795c2ea 100644 --- a/client/src/components/Forms/FormTextAreaField.tsx +++ b/client/src/components/Forms/FormTextAreaField.tsx @@ -9,6 +9,7 @@ import { } from "@/ui"; import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; import { FieldErrors, FieldPath, @@ -19,6 +20,19 @@ import { import { FormErrorMessage } from "./FormErrorMessage"; import { FormLabel, FormLabelProps } from "./FormLabel"; +const formTextAreaFieldVariants = cva("", { + variants: { + variant: { + default: "", + outline: + "border-0 focus-visible:border focus-visible:border-input focus-visible:ring-0 focus-visible:ring-offset-0 ", + }, + }, + defaultVariants: { + variant: "default", + }, +}); + export type FormTextAreaFieldProps< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath = FieldPath @@ -30,7 +44,7 @@ export type FormTextAreaFieldProps< } & Partial & UseControllerProps & { errors?: FieldErrors; - }; + } & VariantProps; export const FormTextAreaField = React.forwardRef< HTMLDivElement, @@ -48,6 +62,7 @@ export const FormTextAreaField = React.forwardRef< className, autoSize, + variant, ...props }, @@ -69,7 +84,8 @@ export const FormTextAreaField = React.forwardRef< placeholder={placeholder} className={cn( fieldState.error ? "border-destructive focus-visible:ring-destructive" : "", - "resize-y" + "resize-y", + formTextAreaFieldVariants({ variant, className }) )} {...props} {...field} @@ -79,7 +95,8 @@ export const FormTextAreaField = React.forwardRef< placeholder={placeholder} className={cn( fieldState.error ? "border-destructive focus-visible:ring-destructive" : "", - "resize-y" + "resize-y", + formTextAreaFieldVariants({ variant, className }) )} {...props} {...field} diff --git a/client/src/components/Layout/LayoutContent.tsx b/client/src/components/Layout/LayoutContent.tsx index 96e6b17..9b097ac 100644 --- a/client/src/components/Layout/LayoutContent.tsx +++ b/client/src/components/Layout/LayoutContent.tsx @@ -1,4 +1,5 @@ import { cn } from "@/lib/utils"; +import { Toaster } from "@/ui"; import { PropsWithChildren } from "react"; export const LayoutContent = ({ @@ -8,14 +9,17 @@ export const LayoutContent = ({ className?: string; }>) => { return ( -
- {children} -
+ <> +
+ {children} +
+ + ); }; diff --git a/client/src/lib/hooks/useAuth/useLogin.tsx b/client/src/lib/hooks/useAuth/useLogin.tsx index c51a226..fd14fc4 100644 --- a/client/src/lib/hooks/useAuth/useLogin.tsx +++ b/client/src/lib/hooks/useAuth/useLogin.tsx @@ -3,6 +3,7 @@ import { ILogin_DTO } from "@shared/contexts"; import { UseMutationOptions, useMutation } from "@tanstack/react-query"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; + import { useQueryKey } from "../useQueryKey"; export const useLogin = (params?: UseMutationOptions) => { diff --git a/client/src/lib/hooks/useAuth/useLogout.tsx b/client/src/lib/hooks/useAuth/useLogout.tsx index ae906de..a0eb233 100644 --- a/client/src/lib/hooks/useAuth/useLogout.tsx +++ b/client/src/lib/hooks/useAuth/useLogout.tsx @@ -2,6 +2,7 @@ import { AuthActionResponse, useAuth } from "@/lib/hooks"; import { UseMutationOptions, useMutation } from "@tanstack/react-query"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; + import { useQueryKey } from "../useQueryKey"; export const useLogout = (params?: UseMutationOptions) => { diff --git a/client/src/lib/hooks/useUploadFile/useUploadFile.ts b/client/src/lib/hooks/useUploadFile/useUploadFile.ts index a4f8e29..db6e2ab 100644 --- a/client/src/lib/hooks/useUploadFile/useUploadFile.ts +++ b/client/src/lib/hooks/useUploadFile/useUploadFile.ts @@ -1,5 +1,5 @@ import * as React from "react"; -import { toast } from "sonner"; +import { toast } from "react-toastify"; import { type OurFileRouter } from "@/app/api/uploadthing/core"; import { getErrorMessage } from "@/lib/handle-error";