Fix TypeScript errors
Addresses TypeScript errors related to toast implementation and type definitions.
This commit is contained in:
@@ -83,7 +83,6 @@ const ExpenseForm: React.FC<ExpenseFormProps> = ({ onSubmit, onCancel, isSubmitt
|
|||||||
<ExpenseCategorySelector
|
<ExpenseCategorySelector
|
||||||
value={field.value}
|
value={field.value}
|
||||||
onValueChange={(value) => field.onChange(value)}
|
onValueChange={(value) => field.onChange(value)}
|
||||||
disabled={isSubmitting}
|
|
||||||
/>
|
/>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
import { Trash2 } from 'lucide-react';
|
import { Trash2, Loader2 } from 'lucide-react';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
import { useToast } from '@/hooks/useToast.wrapper';
|
import { useToast } from '@/hooks/useToast.wrapper';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
import { useToast, toast } from "@/hooks/use-toast";
|
// useToast.wrapper.ts에서 수정된 toast 함수를 사용하도록 리디렉션
|
||||||
|
import { useToast, toast } from "@/hooks/useToast.wrapper";
|
||||||
|
|
||||||
export { useToast, toast };
|
export { useToast, toast };
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
import * as React from "react"
|
import * as React from "react"
|
||||||
import { ToastProps } from "@/components/ui/toast"
|
import { ToastProps } from "@/components/ui/toast"
|
||||||
|
|
||||||
@@ -68,22 +69,17 @@ export const useToast = () => {
|
|||||||
addToast,
|
addToast,
|
||||||
updateToast,
|
updateToast,
|
||||||
dismissToast,
|
dismissToast,
|
||||||
|
toast: (props: ToasterToast) => addToast(props), // toast 속성 추가
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// 전역 토스트 함수에도 기본 지속 시간 적용
|
// 전역 토스트 함수에도 기본 지속 시간 적용
|
||||||
export const toast = ({
|
export const toast = (props: Omit<ToasterToast, "id">) => {
|
||||||
...props
|
|
||||||
}: ToastActionElement & {
|
|
||||||
title?: React.ReactNode;
|
|
||||||
description?: React.ReactNode;
|
|
||||||
duration?: number;
|
|
||||||
}) => {
|
|
||||||
// 기본 지속 시간을 적용
|
// 기본 지속 시간을 적용
|
||||||
const toastWithDefaults = {
|
const toastWithDefaults = {
|
||||||
...props,
|
...props,
|
||||||
duration: props.duration || DEFAULT_TOAST_DURATION,
|
duration: props.duration || DEFAULT_TOAST_DURATION,
|
||||||
};
|
};
|
||||||
|
|
||||||
return toastStore.getState().addToast(toastWithDefaults);
|
return useToastStore().addToast(toastWithDefaults);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
import { useToast as useOriginalToast, toast as originalToast } from '@/hooks/use-toast';
|
import { useToast as useOriginalToast, toast as originalToast, ToasterToast } from '@/hooks/use-toast';
|
||||||
|
|
||||||
// 토스트 중복 호출 방지를 위한 디바운스 구현
|
// 토스트 중복 호출 방지를 위한 디바운스 구현
|
||||||
let lastToastTime = 0;
|
let lastToastTime = 0;
|
||||||
@@ -7,7 +7,7 @@ let lastToastMessage = '';
|
|||||||
const DEBOUNCE_TIME = 500; // 0.5초 내에 동일 메시지 방지
|
const DEBOUNCE_TIME = 500; // 0.5초 내에 동일 메시지 방지
|
||||||
|
|
||||||
// 중복 토스트 방지 래퍼 함수
|
// 중복 토스트 방지 래퍼 함수
|
||||||
const debouncedToast = (params: Parameters<typeof originalToast>[0]) => {
|
const debouncedToast = (params: Omit<ToasterToast, "id">) => {
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
const currentMessage = params.description?.toString() || '';
|
const currentMessage = params.description?.toString() || '';
|
||||||
|
|
||||||
@@ -26,5 +26,12 @@ const debouncedToast = (params: Parameters<typeof originalToast>[0]) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useToast = useOriginalToast;
|
export const useToast = () => {
|
||||||
export const toast = debouncedToast as typeof originalToast;
|
const toast = useOriginalToast();
|
||||||
|
return {
|
||||||
|
...toast,
|
||||||
|
toast: debouncedToast,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export const toast = debouncedToast;
|
||||||
|
|||||||
@@ -9,5 +9,9 @@ export const showAuthToast = (
|
|||||||
description: string,
|
description: string,
|
||||||
variant: 'default' | 'destructive' = 'default'
|
variant: 'default' | 'destructive' = 'default'
|
||||||
) => {
|
) => {
|
||||||
toast({ title, description, variant });
|
toast({
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
...(variant === 'destructive' ? { variant: 'destructive' } : {})
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user