From 0442b2d7fc7728f0982d64b69e15d257180c1859 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Tue, 8 Apr 2025 02:53:24 +0530 Subject: [PATCH] sort errors with toasts --- .../Tabs/KeystoreTab/KeystoreManagement.tsx | 15 +++++++-------- .../MembershipTab/MembershipRegistration.tsx | 7 +++---- src/contexts/AppStateContext.tsx | 16 ---------------- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx b/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx index f395ba1..d7d340c 100644 --- a/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx +++ b/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx @@ -47,7 +47,6 @@ export function KeystoreManagement() { getMembershipInfo } = useRLN(); - const { setGlobalError } = useAppState(); const [exportPassword, setExportPassword] = useState(''); const [selectedCredential, setSelectedCredential] = useState(null); const [viewPassword, setViewPassword] = useState(''); @@ -59,14 +58,14 @@ export function KeystoreManagement() { React.useEffect(() => { if (error) { - setGlobalError(error); + toast.error(error); } - }, [error, setGlobalError]); + }, [error]); const handleExportKeystoreCredential = async (hash: string) => { try { if (!exportPassword) { - setGlobalError('Please enter your keystore password to export'); + toast.error('Please enter your keystore password to export'); return; } const keystore = await exportCredential(hash, exportPassword); @@ -74,7 +73,7 @@ export function KeystoreManagement() { setExportPassword(''); setSelectedCredential(null); } catch (err) { - setGlobalError(err instanceof Error ? err.message : 'Failed to export credential'); + toast.error(err instanceof Error ? err.message : 'Failed to export credential'); } }; @@ -83,10 +82,10 @@ export function KeystoreManagement() { const keystore = await readKeystoreFromFile(); const success = importKeystore(keystore); if (!success) { - setGlobalError('Failed to import keystore'); + toast.error('Failed to import keystore'); } } catch (err) { - setGlobalError(err instanceof Error ? err.message : 'Failed to import keystore'); + toast.error(err instanceof Error ? err.message : 'Failed to import keystore'); } }; @@ -94,7 +93,7 @@ export function KeystoreManagement() { try { removeCredential(hash); } catch (err) { - setGlobalError(err instanceof Error ? err.message : 'Failed to remove credential'); + toast.error(err instanceof Error ? err.message : 'Failed to remove credential'); } }; diff --git a/src/components/Tabs/MembershipTab/MembershipRegistration.tsx b/src/components/Tabs/MembershipTab/MembershipRegistration.tsx index e03a8fb..fd126ae 100644 --- a/src/components/Tabs/MembershipTab/MembershipRegistration.tsx +++ b/src/components/Tabs/MembershipTab/MembershipRegistration.tsx @@ -3,7 +3,6 @@ import React, { useState, useEffect } from 'react'; import { RLNImplementationToggle } from '../../RLNImplementationToggle'; import { KeystoreEntity } from '@waku/rln'; -import { useAppState } from '../../../contexts/AppStateContext'; import { useRLN } from '../../../contexts/rln/RLNContext'; import { useWallet } from '../../../contexts/wallet'; import { RLNInitButton } from '../../RLNinitButton'; @@ -11,9 +10,9 @@ import { TerminalWindow } from '../../ui/terminal-window'; import { Slider } from '../../ui/slider'; import { Button } from '../../ui/button'; import { membershipRegistration, type ContentSegment } from '../../../content/index'; +import { toast } from 'sonner'; export function MembershipRegistration() { - const { setGlobalError } = useAppState(); const { registerMembership, isInitialized, isStarted, rateMinLimit, rateMaxLimit, error } = useRLN(); const { isConnected, chainId } = useWallet(); @@ -34,9 +33,9 @@ export function MembershipRegistration() { useEffect(() => { if (error) { - setGlobalError(error); + toast.error(error); } - }, [error, setGlobalError]); + }, [error]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); diff --git a/src/contexts/AppStateContext.tsx b/src/contexts/AppStateContext.tsx index 1f0b25d..c60a422 100644 --- a/src/contexts/AppStateContext.tsx +++ b/src/contexts/AppStateContext.tsx @@ -4,9 +4,7 @@ import React, { createContext, useContext, useState, ReactNode } from 'react'; interface AppState { isLoading: boolean; - globalError: string | null; setIsLoading: (loading: boolean) => void; - setGlobalError: (error: string | null) => void; activeTab: string; setActiveTab: (tab: string) => void; } @@ -15,14 +13,11 @@ const AppStateContext = createContext(undefined); export function AppStateProvider({ children }: { children: ReactNode }) { const [isLoading, setIsLoading] = useState(false); - const [globalError, setGlobalError] = useState(null); const [activeTab, setActiveTab] = useState('membership'); const value = { isLoading, setIsLoading, - globalError, - setGlobalError, activeTab, setActiveTab, }; @@ -38,17 +33,6 @@ export function AppStateProvider({ children }: { children: ReactNode }) { )} - {globalError && ( -
- {globalError} - -
- )} ); }