mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 22:30:31 +00:00
feat: validate the given imported sheet whether is empty
This commit is contained in:
53
packages/webapp/src/containers/Import/AlertsManager.tsx
Normal file
53
packages/webapp/src/containers/Import/AlertsManager.tsx
Normal file
@@ -0,0 +1,53 @@
|
||||
import type { ReactNode } from 'react';
|
||||
import { useState, createContext, useContext } from 'react';
|
||||
|
||||
interface AlertsManagerContextValue {
|
||||
alerts: (string | number)[];
|
||||
showAlert: (alert: string | number) => void;
|
||||
hideAlert: (alert: string | number) => void;
|
||||
|
||||
hideAlerts: () => void;
|
||||
isAlertActive: (alert: string | number) => boolean;
|
||||
findAlert: (alert: string | number) => string | number | undefined;
|
||||
}
|
||||
|
||||
const AlertsManagerContext = createContext<AlertsManagerContextValue>(
|
||||
{} as AlertsManagerContextValue,
|
||||
);
|
||||
|
||||
export function AlertsManager({ children }: { children: ReactNode }) {
|
||||
const [alerts, setAlerts] = useState<(string | number)[]>([]);
|
||||
|
||||
const showAlert = (type: string | number): void => {
|
||||
setAlerts([...alerts, type]);
|
||||
};
|
||||
const hideAlert = (type: string | number): void => {
|
||||
alerts.filter((t) => t !== type);
|
||||
};
|
||||
const hideAlerts = (): void => {
|
||||
setAlerts([]);
|
||||
};
|
||||
const isAlertActive = (type: string | number): boolean => {
|
||||
return alerts.some((t) => t === type);
|
||||
};
|
||||
const findAlert = (type: string | number): number | string | undefined => {
|
||||
return alerts.find((t) => t === type);
|
||||
};
|
||||
|
||||
return (
|
||||
<AlertsManagerContext.Provider
|
||||
value={{
|
||||
alerts,
|
||||
showAlert,
|
||||
hideAlert,
|
||||
hideAlerts,
|
||||
isAlertActive,
|
||||
findAlert,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
</AlertsManagerContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export const useAlertsManager = () => useContext(AlertsManagerContext);
|
||||
Reference in New Issue
Block a user