feat: replace error state handling with toast in login, register, and subscribe dialogs

This commit is contained in:
Ardeman
2025-03-15 17:25:08 +08:00
parent 4c3a143338
commit e7ef7177ca
4 changed files with 12 additions and 31 deletions
+3 -8
View File
@@ -1,6 +1,7 @@
import { DevTool } from '@hookform/devtools'
import { zodResolver } from '@hookform/resolvers/zod'
import { useEffect, useState } from 'react'
import { useEffect } from 'react'
import toast from 'react-hot-toast'
import { useFetcher, useRouteLoaderData } from 'react-router'
import { RemixFormProvider, useRemixForm } from 'remix-hook-form'
import { z } from 'zod'
@@ -44,7 +45,6 @@ export const DialogRegister = () => {
setIsSuccessOpen,
isRegisterOpen,
} = useNewsContext()
const [error, setError] = useState<string>()
const fetcher = useFetcher()
const loaderData = useRouteLoaderData<typeof loader>('routes/_news')
const { subscribePlanData: subscribePlan } = loaderData || {}
@@ -59,11 +59,10 @@ export const DialogRegister = () => {
useEffect(() => {
if (!fetcher.data?.success) {
setError(fetcher.data?.message)
toast.error(fetcher.data?.message)
return
}
setError(undefined)
setIsRegisterOpen(false)
setIsSuccessOpen('register')
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -126,10 +125,6 @@ export const DialogRegister = () => {
options={subscribePlan}
/>
{error && (
<div className="text-sm text-red-500 capitalize">{error}</div>
)}
<Button
isLoading={fetcher.state !== 'idle'}
disabled={fetcher.state !== 'idle'}