From e2126afd06f339a22dbbaea89b834157a5975b96 Mon Sep 17 00:00:00 2001 From: AAGaming Date: Tue, 9 Aug 2022 21:36:32 -0400 Subject: [PATCH] feat(ServerAPI): add Toaster to serverAPI --- src/plugin.tsx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/plugin.tsx b/src/plugin.tsx index 338443d..9aa3144 100644 --- a/src/plugin.tsx +++ b/src/plugin.tsx @@ -1,4 +1,4 @@ -import type { ComponentType } from 'react'; +import type { ComponentType, ReactNode } from 'react'; import { RouteProps } from 'react-router'; export interface Plugin { @@ -22,15 +22,32 @@ type ServerResponse = ServerResponseSuccess | ServerResponseError; type RoutePatch = (route: RouteProps) => RouteProps; -interface RouterHook { +export interface RouterHook { addRoute(path: string, component: ComponentType, props?: Omit): void; addPatch(path: string, patch: RoutePatch): RoutePatch; removePatch(path: string, patch: RoutePatch): void; removeRoute(path: string): void; } +export interface ToastData { + title: ReactNode; + body: ReactNode; + onClick?: () => void; + logo?: ReactNode; + icon?: ReactNode; + className?: string; + contentClassName?: string; + duration?: number + critical?: boolean +} + +export interface Toaster { + toast(toast: ToastData): void; +} + export interface ServerAPI { routerHook: RouterHook; + toaster: Toaster; callPluginMethod(methodName: string, args: TArgs): Promise>; callServerMethod(methodName: string, args: TArgs): Promise>; fetchNoCors(url: RequestInfo, request?: RequestInit): Promise>;